本发明涉及大数据分析处理领域,尤其涉及一种用于二维数据分类的动态神经网络模型的训练方法和装置。
背景技术:
当前,数据处于一种爆炸的时代,互联网每日均有大量的文本、语音、图像、视频等数据生成。即使对于个别互联网公司而言,每日生成的数据都可以用海量来形容。如何对数据进行分类、检索、管理,从数据中挖掘、发现事物内在联系及规律,是信息科学一个非常有价值的研究课题。然而,由于过于庞大的数据量增加了分析与处理的难度,该问题成为大数据分析领域一个公开的具有挑战性的问题。在大数据处理过程中,当前主要的研究手段为机器学习及深度学习,通过对研究对象的相关特征进行提取,建立若干规则进行索引或映射,用以实现相关研究对象的辨识或分类。无论机器学习抑或深度学习,研究对象的特征提取对于研究效果具有重大意义,因此,研究对象的特征提取是数据挖掘及数据处理过程中一个十分关键的环节。
当前,数据特征提取的方法主要有核技巧法、图像分割法、降维法、以及神经网络等。其中,神经网络是当前数据特征提取的一个非常重要的方法,是大数据处理一个最得力的工具之一,其研究思想为将每个神经元均建模为静态神经元,即y=wx+b,然后通过一个sigmoid函数来实现数据的特征提取,其中x为神经元输入,y为神经元输出,w为连接输入与输出之间的权重系数,b为截距项。神经网络的一个最重要的变体——卷积神经网络,主要思想为在上述人工神经网络每层之后增加卷积层与池化层,逐层实现图像、视频等数据的特征提取,并针对最后一层提取到的特征,通过一个全连接层来建立特征与目标对象所属类别之间的关系。在该模型中,模型的深度以及卷积函数与池化函数的设计均为极其困难的问题,很大程度上依赖于研究人员的经验与直觉。此外,神经网络及其各种变体均为将神经元建模为静态神经元,静态神经元仅能刻画输入与输出之间的关系,无法有效刻画系统输入内部之间的关系。
如何更加高效地实现数据特征提取,从而提高神经网络模型的训练效果,是大数据研究领域技术人员迫切解决的一个技术问题。
技术实现要素:
为了解决上述问题,本发明针对图像数据等二维数据,提供了一种动态神经网络模型的训练方法,与人工神经网络相比,该方法一个突出的特点为将单个神经元建模为动态神经元,同时同一层上的神经元具有相同的结构,用于最大限度降低模型的设计难度,减少现有模型的训练强度,提高学习效率。
为了实现上述目的,本发明采用如下技术方案:
一种基于二维数据的动态神经网络模型的训练方法,包括以下步骤:
步骤一:将原始二维图像数据作为第一层神经元的输入,经过动态神经网络的处理,相应的输出值即该层特征;
步骤二:增加神经元层数,将上层输出的特征作为下一层神经元的输入,得到相应层的特征,重复该步骤直至层数达到某个预设值;
步骤三:在最终的输出特征与分类的类别之间建立全连接层,通过bp反向传播算法确定全连接层间的连接系数;
步骤四:评价模型性能,若性能已达到预期则模型深度不再增加;反之,继续在生成的网络模型中增加新的神经元层,直至模型深度达到预设阈值;
其中,所述神经元被建模为动态神经元;所述动态神经元的结构为:
进一步地,所述预设值为k/2,k为模型深度的预设阈值;所述步骤四中,每次增加的神经网络层数为k/2r,r表示增加神经元层次数的计数,
进一步地,所述神经网络模型中,同一层神经元具有相同的动态结构,不同层的神经元的动态结构可以相同也可以不同;同一层神经元之间没有连接,不同层的神经元之间连接方式为稀疏连接,每个神经元仅与上层相邻的若干神经元有连接。
进一步地,所述神经元对输入数据进行的处理如下:输入数据经过一层神经元
进一步地,所述二维数据为图像数据,所述神经网络模型可用于图像数据的分类、描述或聚类。
根据本发明的另一方面,本发明还提供了一种基于二维数据的动态神经网络模型的训练装置,包括:
模型构建模块,用于模型的初始化,将原始二维图像数据作为第一层神经元的输入,经过动态神经网络的处理,相应的输出值即该层特征;增加神经元层数,将上层输出的特征作为下一层神经元的输入,得到相应层的特征,重复该步骤直至层数达到某个预设值;在最终的输出特征与分类的类别之间建立全连接层,通过bp反向传播算法确定全连接层间的连接系数;
模型评价模块,用于评价模型性能;
模型优化模块,用于所述神经网络模型的优化,若性能已达到预期,则模型深度不再增加;反之,继续在生成的网络模型中增加新的神经元层,直至模型深度达到预设阈值;
其中,所述神经元被建模为动态神经元;所述动态神经元的结构为:
进一步地,所述预设值为k/2,k为模型深度的预设阈值;所述模型优化模块中,每次增加的神经网络层数为k/2r,r表示增加神经元层次数的计数,
进一步地,所述神经网络模型中,同一层神经元具有相同的动态结构,不同层的神经元的动态结构可以相同也可以不同;同一层神经元之间没有连接,不同层的神经元之间连接方式为稀疏连接,每个神经元仅与上层相邻的若干神经元有连接。
进一步地,所述神经元对输入数据进行的处理如下:输入数据经过一层神经元
进一步地,所述二维数据为图像数据,所述神经网络模型可用于图像数据的分类、描述或聚类。
本发明的有益效果:
1、本发明使用动态神经网络模型,同层之间建模为相同的神经元,降低了模型的设计难度。
2、模型训练的参数仅为最后全连接层对应的参数,因此训练的参数个数大大减少,降低了模型的训练难度,提高了算法效率,对于图像等二维数据的特征提取起到非常重要的作用,具有很强的实用性。
3、根据不同的分类需求,本发明训练的神经网络模型可用于图像数据的分类、图像描述、图像聚类等多个任务。
附图说明
图1动态神经网络模型层数训练图;
图2为单个神经元的模型的结构图;
图3动态神经网络的模型结构图;
图4多层动态神经网络特征提取过程流程图;
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
图1是动态神经网络的模型结构图。
本实施例提供了一种动态神经网络模型的训练方法,
传统的神经网络模型将神经元建模为静态神经元来展开相关研究,即y=wx+b,其中x为神经元输入,y为神经元输出,w为连接输入与输出之间的权重系数,b为截距项。静态神经元仅能刻画输入与输出之间的关系,无法刻画系统输入内部之间的关系。
本发明的实施例中,将神经元建模为动态神经元:
其中,所述状态矩阵,指该神经元内部各个状态之间的关联矩阵,该矩阵要保证稳定,即满足特征根具有负实部;拓扑连接是指输入数据与神经元各个状态之间的拓扑连接。
神经元的状态反映该神经元处理信息的能力,而其状态个数关系到一次能处理的数据长度,神经元状态个数越多,一次能处理的数据长度就越长。
第一个公式表示对该层输入数据进行处理;处理后的结果按照第二个式子进行组合,降低了上一层的特征数;第三个式子表示将得到的特征作为下一层神经网络的输入,从而实现特征个数逐层减少的目的。
该神经网络模型的训练包括以下步骤:
一种基于二维数据的动态神经网络模型的训练方法,包括以下步骤:
步骤一:将原始二维图像数据作为第一层神经元的输入,经过动态神经网络的处理,相应的输出值即该层特征;
可选地,还可以将原始二维数据划分为训练集与验证集,所述训练集用于神经网络模型的训练,所述验证集用于后续模型性能的评价。
步骤二:增加神经元层数,将上层输出的特征作为下一层神经元的输入,得到相应层的特征,重复该步骤直至层数达到某个预设值;
比如预设值可设置为k/2;k为模型深度的预设阈值,通常取k=2d。本实施例中,预设值设置为32,也可设置为其他值。
所述神经网络模型中,同一层神经元具有相同的动态结构,不同层的神经元的动态结构可以相同也可以不同;同一层神经元之间没有连接,不同层的神经元之间连接方式为稀疏连接,每个神经元仅与上层相邻的若干神经元有连接。如图2所示,同一层上的神经元之间没有连接、不同层之间的神经元采用稀疏连接,即每个神经元与上一层n(l)×n(l)个神经元相连接。
步骤三:在最终的输出特征与分类的类别之间建立全连接层,通过bp反向传播算法确定全连接层间的连接系数;
步骤四:评价模型性能,若性能已达到预期,则模型深度不再增加;反之,继续在生成的网络模型中增加新的神经元层直至模型深度达到预设阈值。
所述步骤四中,每次增加k/2r层神经网络层,r表示增加神经元层次数的计数,
具体地,首先在验证集上的验证模型性能;继续在生成的网络模型中增加k/2r层神经元,此时r=2,重复步骤二、三,验证模型性能,若模型性能未达到预期,继续增加k/2r层神经元,此时r=3……直至模型性能达到预期,停止增加新的神经元层。
为更清楚的描述步骤四,如图2、图3所示,通过k/2层神经网络之后,获取若干特征(k值越大,所提炼得到的特征越少)。通过bp反向传播算法在训练集上学习特征与分类之间的权重参数,在验证集上进行测试性能,然后再增加k/2r层神经元获取新的特征,使用bp反向传播算法训练相应的权重参数,在验证集上测试性能,若训练集与测试集上的性能均为达到预期,则模型很可能仍处于欠拟合阶段,继续增加神经网络层,若验证集上的性能较训练集上的性能想去较大,则模型已处于过拟合阶段,停止增加模型层数。
可选地,所述性能是否达到预期的方式为:判断最后一次增加神经元层后的模型性能较前一次是否有显著改善。
所述神经元提取特征的过程如下:输入数据经过一层神经元
所述二维数据多为图像数据,所述神经网络模型可用于图像数据的分类、图像描述、图像聚类等。
实施例2:
基于实施例1的方法,本发明还提供了一种动态神经网络模型的训练装置,所述装置包括模型构建模块、模型评价模块和模型优化模块。其中:
模型构建模块,用于神经网络模型的初始化,将原始二维图像数据作为第一层神经元的输入,经过动态神经网络的处理,相应的输出值即该层特征;增加神经元层数,将上层输出的特征作为下一层神经元的输入,得到相应层的特征,重复该步骤直至层数达到某个预设值;在最终的输出特征与分类的类别之间建立全连接层,通过bp反向传播算法确定全连接层间的连接系数;
其中,预设值为k/2;k为模型深度的预设阈值,通常取k=2d。本实施例中,预设值设置为32,也可设置为其他值。
所述神经网络模型中,同一层神经元具有相同的动态结构,不同层的神经元的动态结构可以相同也可以不同;同一层神经元之间没有连接,不同层的神经元之间连接方式为稀疏连接,每个神经元仅与上层相邻的若干神经元有连接。
还可以将原始二维数据划分为训练集与验证集,所述训练集用于神经网络模型的训练,所述验证集用于后续模型性能的评价。
模型评价模块,用于评价生成的神经网络模型;
模型优化模块,用于所述神经网络模型的优化,若性能已达到预期,则模型深度不再增加;反之,继续在生成的网络模型中增加新的神经元层直至模型深度达到预设阈值。
所述模型优化模块中,每次增加k/2r层神经网络层,r表示增加神经元层次数的计数,
具体地,如图2、图3所示,通过k层神经网络之后,获取若干特征(k值越大,所提炼得到的特征越少)。通过bp反向传播算法在训练集上学习特征与分类之间的权重参数,在验证集上进行测试性能,然后再增加k/2r层神经元获取新的特征,使用bp反向传播算法训练相应的权重参数,在验证集上测试性能,若训练集与测试集上的性能均为达到预期,则模型很可能仍处于欠拟合阶段,继续增加神经网络层,若验证集上的性能较训练集上的性能想去较大,则模型已处于过拟合阶段,停止增加模型层数。
可选地,所述性能是否达到预期的方式为:判断最后一次增加神经元层后的模型性能较前一次是否有显著改善。
所述模型构建模块将神经元建模为动态神经元:
所述模型构建模块中,神经元提取特征的过程如下:输入数据经过一层神经元
该方法基于实施例1提供的方法,具体细节可参照实施例1。
实施例3:
以图像数据作为训练数据训练神经网络模型为例,图像数据为一个二维矩阵。
将图像数据输入初始化后的神经网络模型,逐层将该矩阵的大小进行缩短至某个值(比如为20×20),然后使用bp反向传播来确定该层与讨论主题种类个数的全连接权重系数;测试在验证集上的性能,然后增加k/2r层神经元获取新的特征,使用bp反向传播算法训练相应的权重参数,在验证集上测试性能,若训练集与测试集上的性能均为达到预期,则模型很可能仍处于欠拟合阶段,继续增加神经网络层,若验证集上的性能较训练集上的性能想去较大,则模型已处于过拟合阶段,停止增加模型层数。调整各层之间的结构矩阵,先逐层固定其他层,调整一层后测试性能的变化,记录下最好的一次,固定下来,依次调整其他层结构矩阵。
与现有的特征提取方法相比,本发明将神经网络中每个神经元由静态神经元建模为动态神经元,通过同层之间建模为相同的神经元,大大降低了模型设计的难度。通过多层传递逐渐将低层特征融合为高层特征,实现最终的特征提取,通过bp反向传播算法训练特征层与分类之间的参数权值。本发明可用于图像数据的分类、图像描述、图像聚类等多个任务,实现什么样的目的重要的是看图像素材以及需求。
本领域技术人员应该明白,上述本发明的各模块或各步骤可以用通用的计算机装置来实现,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。本发明不限制于任何特定的硬件和软件的结合。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。