技术领域
[0001] 本发明属于深度学习算法领域,特别涉及到一种深度学习算法的选择方法及深度学习算法的选择装置。
相关背景技术
[0002] 目前卷积神经网络(Convolutional Neural Network,CNN)作为计算器视觉的工具,应用非常广泛。针对任一数据库均可设计出合适的CNN算法模型,该CNN算法模型可以用于训练数据库中的样本,从而得到数据库中的样本与样本的卷标之间的联系。然而,从多个CNN算法中找出一种合适的算法,通常需要具备专业背景的专业人员通过大量的分析实验获得,对普通人员来说比较困难。
具体实施方式
[0037] 为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行详细描述。需要说明的是,在不冲突的情况下,本申请的实施方式及实施方式中的特征可以相互组合。
[0038] 在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施方式仅是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施方式,都属于本发明保护的范围。
[0039] 除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施方式的目的,不是旨在限制本发明。
[0040] 本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
[0041] 请参照图1,本发明提供了一种深度学习算法的选择装置100,用于降低选择解决特定问题的深度学习算法的难度。
[0042] 其中,深度学习(Deep Learning,DL)是机器学习的技术和研究领域之一,通过建立具有阶层结构的人工神经网络(Artifitial Neural Networks,ANNs),在计算系统中实现人工智能的卷积神经网络(Convolutional Neural Networks,CNN),是深度学习(deep learning)的代表算法之一。
[0043] 以下仅以卷积神经网络为例说明,但本方法不限于卷积神经网络。
[0044] 深度学习算法的选择装置100包括存储器10、处理器20、显示单元30和输入单元40,显示单元30、存储器10分别和处理器20电性连接。
[0045] 存储器10用于存储深度学习算法的选择装置100中的各种数据,例如各种深度学习算法等。在本实施例中,存储器10可以包括但不限于只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、一次可编程只读存储器(One-time Programmable Read-Only Memory,OTPROM)、电子擦除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
[0046] 处理器20可以为中央处理器(CPU,Central Processing Unit)、微处理器、数字处理芯片或任何能够执行数据处理功能的处理器芯片。
[0047] 显示单元30用于显示训练数据或测试数据的输出结果等。例如显示深度学习算法模型的测试结果,在本实施例中,显示单元30可以是但不限于触摸显示屏、液晶显示屏等显示装置。
[0048] 输入单元40用于供用户输入各种信息和控制指令,例如确认算法要解决的问题类型等。在本实施例中,输入单元40可以是但不限于遥控器、鼠标、语音输入装置、触摸屏等。
[0049] 请参照图2,深度学习算法的选择装置100中还运行有深度学习算法的选择系统6。图2为本发明一个实施例中的深度学习算法的选择系统6的功能模块示意图。在本实施例中,深度学习算法的选择系统6包括一个或多个程序形式的计算机指令,该一个或多个程序形式的计算机指令储存于存储器10中,并由处理器20执行。深度学习算法的选择系统6包括信息获取模块61、选择模块62、相似度计算模块63、调整模块64、训练模块65和验证模块66。
[0050] 信息获取模块61用于获取深度学习算法需要解决的问题类型,所述问题类型包括图片分类、对象分割及对象辨识,但不限于此。
[0051] 选择模块62用于依据问题类型选择相应的数据集,并将所选数据集分为训练数据和测试数据,还用于依据问题类型选择所有相应的深度学习算法。
[0052] 相似度计算模块63用于计算训练数据的相似度。
[0053] 在一实施例中,利用结构相似性计算训练数据的相似度。
[0054] 其中结构相似性(structural similarity index,SSIM),是一种衡量两幅图像相似度的指标,它分别从亮度、对比度、结构三方面度量图像相似性。相似度的范围为0到1,两幅图像的相似度的值越大,两幅图像的相似性越大,当两张图像一模一样时,相似度SSIM的值等于1。
[0055] 在一实施例中,训练数据有100张图,随机抽取20组样本图像,每组两张,共40张,利用结构相似性分別计算所述20组样本图像的相似度,然后计算20组样本图像相似度的平均值,将平均值设定为训练数据的相似度。
[0056] 可以理解,实际操作中,根据实际场景中训练数据的数量,灵活选取样本数量,分别计算各个样本组的相似度,然后计算所选样本组的相似度的平均值。
[0057] 可以理解,在其他实施例中,还包括其他计算训练数据的方法。
[0058] 调整模块64用于依据相似度调整对应的训练数据批次大小。
[0059] 训练模块65用于利用训练数据训练深度学习算法,以获取算法模型。
[0060] 验证模块66利用测试数据验证算法模型,以获取验证结果最优的深度学习算法。
[0061] 请参照图3,本发明还提供了一种深度学习算法的选择方法,图3为该深度学习算法的选择方法的流程示意图,该深度学习算法的选择方法包括如下步骤:
[0062] 步骤301,获取待处理的问题类型。
[0063] 具体地,信息获取模块61获取待处理的问题类型,所述问题类型包括但不限于图片分类、对象分割及对象辨识。
[0064] 步骤302,依据问题类型选择相应的数据集,并将所选数据集分为训练数据和测试数据。
[0065] 具体地,选择模块62依据问题类型选择相应的数据集,并将所选数据集分为训练数据和测试数据。
[0066] 例如,Common Object in Context(COCO)是一个由微软维护的图像数据集,可进行图片分类,包括:超过30万幅图像、超过200万个实例、80多类对像等。
[0067] 其中训练数据用于训练深度学习的算法,获取算法模型,测试数据用于验证算法模型的准确性。
[0068] 训练数据和测试数据的比例一般为4:1,可以理解,可以根据实际的场景具体调整训练数据和测试数据之间的比例,例如但不限于,比例为3:1或5:1。
[0069] 步骤303,计算训练数据的相似度。
[0070] 具体地,相似度计算模块63计算训练数据的相似度。
[0071] 在一实施例中,相似度计算模块63利用结构相似性计算训练数据的相似度。
[0072] 相似度的范围为0到1,两幅图像的相似度的值越大,两幅图像的相似性越大,当两张图像一模一样时,相似度的值等于1。
[0073] 具体地,随机选取训练数据中的多个样本组,每个样本组包括两张图像,分别计算各个样本组的相似度,然后计算各个样本组相似度的平均值。
[0074] 步骤304,依据相似度调整训练数据的批次大小。
[0075] 具体地,调整模块64依据相似度调整对应的训练数据的批次大小,从而可以利用调整后的训练数据精准训练深度学习算法的权重。
[0076] 在一实施例中,相似度为SSIM的值,相似度与批次大小对应关系如表1所示。批次(batch)大小,即每一次输入CNN算法中训练数据的数量。
[0077] 表1相似度与批次数量对应关系1
[0078]SSIM相似度范围 批次大小
0≤SSIM<0.2 64
0.2≤SSIM<0.4 32
0.4≤SSIM<0.6 16
0.6≤SSIM<0.8 8
0.8≤SSIM≤1 4
[0079] 即批次大小与相似度成反比,相似度越大,批次大小越小,相似度越小,批次大小越大。
[0080] 可以理解,在其他实施例中,批次大小为一个范围,如表2所示。
[0081] 表2相似度与批次数量对应关系2
[0082]SSIM相似度范围 批次大小
0≤SSIM<0.2 33~64
0.2≤SSIM<0.4 17~32
0.4≤SSIM<0.6 9~16
0.6≤SSIM<0.8 5~8
0.8≤SSIM≤1 1~4
[0083] 可以根据实际的场景,依据相似度的大小,灵活选择调整批次大小。
[0084] 步骤305,依据问题类型选择多种深度学习算法,并利用训练数据训练所选择的深度学习算法以获取相应的算法模型。
[0085] 具体地,选择模块62依据问题类型选择多种深度学习算法,训练模块65利用训练数据训练所选择的深度学习算法,分别获取相应的算法模型。
[0086] 在一实施例中,用来处理图像分类问题的CNN的算法包括ResNet、AlexNet、VGG、Inception等。
[0087] 步骤306,利用测试数据验证所有的算法模型,并选择验证结果最优的深度学习算法。
[0088] 具体地,验证模块66利用测试数据验证所有的算法模型,并选择验证结果最优的深度学习算法。
[0089] 可以理解,步骤304之后还包括步骤,
[0090] 计算所述测试数据的相似度。
[0091] 具体地,相似度计算模块63计算测试数据的相似度;
[0092] 依据相似度调整测试数据的批次大小。
[0093] 具体地,调整模块64依据相似度调整对应的训练数据批次大小。
[0094] 本发明提供的深度学习算法的选择方法,利用训练数据的相似度灵活调整训练数据的批次大小,通过训练数据训练选择的深度学习算法,精准的得出相应算法模型,并通过测试数据验证算法模型,获取最优的深度学习算法的选择方法。
[0095] 本发明能够利用训练数据的相似度灵活调整训练数据的批次大小,从而提高训练数据的质量,使通过训练数据获取的算法模型更加精准,然后利用验证测试数据验证算法模型,选出解决特定问题的最优的算法,上述方法降低了深度学习算法选择的难度,且通用性强。
[0096] 另外,在本发明各个实施例中的各功能单元可以集成在相同数据处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在相同单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
[0097] 对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。计算机装置权利要求中陈述的多个单元或计算机装置也可以由同一个单元或计算机装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
[0098] 最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。