神经网络模型训练方法、装置、存储介质及终端设备与流程

文档序号:15934182发布日期:2018-11-14 02:07阅读:210来源:国知局

本发明涉及人工智能技术领域,尤其是涉及一种神经网络模型训练方法、装置、存储介质及终端设备。

背景技术

神经网络具有很强的拟合能力,现在已经广泛的应用在图像分类、语音识别和人脸识别等领域,并带来了相关领域的革命性进步,但是网络参数量的庞大以及推理时间慢等因素仍然限制了神经网络模型的发展。

目前,在常用的神经网络模型训练方法中,因为神经网络模型中的参数向量之间的冗余较多和相关性较大,使得需要大量的训练样本进行训练和较长的训练时间,直接导致神经网络模型的训练效率较低。



技术实现要素:

本发明针对现有方式的缺点,提出了一种神经网络模型训练方法、装置、存储介质及终端设备,用于解决现有技术中不能有效去除模型参数向量之间的相关性问题,提高模型运行效率。

本发明提供一种神经网络模型训练方法,包括如下步骤:

获取训练数据集;

设置待训练神经网络模型的初始损失函数,采用正则化项对所述初始损失函数进行更新;

将所述训练数据集输入更新初始损失函数后的待训练神经网络模型进行特征学习训练,直至收敛。

可选的,所述待训练神经网络模型为深度神经网络模型、残缺神经网络模型或卷积神经网络模型中的一种;

在所述设置待训练神经网络模型的初始损失函数之前还包括:

对所述待训练神经网络模型中的每一层网络的输出节点压缩至预设比例。

可选的,所述初始损失函数为交叉熵损失函数;

所述采用正则化项对所述初始损失函数进行更新,包括:

对所述待训练神经网络模型中所有层参数向量进行正则化,获取所有层参数向量的正则化项;

根据所述所有层参数向量的正则化项对所述初始损失函数进行更新。

可选的,在对所述待训练神经网络模型中所有层参数向量进行正则化,获取所有层参数向量的正则化项之前,还包括:

对所述待训练神经网络模型的每一层参数向量进行正则化,获取每一层参数向量对应的正则化项。

可选的,所述训练数据集包括训练样本数据集、测试样本数据集和与测试样本数据集对应的标注数据。

可选的,所述将所述训练数据集中的训练样本数据集输入更新损失函数后的待训练神经网络模型进行特征学习训练,直至收敛,包括:

将所述训练数据集中的训练样本数据集输入更新损失函数后的待训练神经网络模型进行特征学习训练,得到训练后的神经网络模型;

将所述训练数据集中的测试样本数据集输入所述训练后的神经网络模型,输出分类标注数据;

计算所述分类标注数据与所述测试样本数据集对应的标注数据的匹配概率;

判断所述匹配概率的值是否大于预设阈值,若是,则训练结束;

若否,采用反向传播算法对所述训练后的神经网络模型所有层参数向量的系数进行重置,并采用所述训练数据集中的训练样本数据集进行重新训练。

可选的,在所述采用反向传播算法对所述训练后的神经网络模型所有层参数向量的系数进行重置,对所述训练后的神经网络模型所有层参数向量的系数进行重置的公式如下:

其中,为训练后的神经网络模型中第i参数向量和第j参数向量的更新后系数,wij为训练后的神经网络模型中第i参数向量和第j参数向量的系数,lr为学习速率,weight_decay为权重衰减系数,momentum为冲量,为更新后的损失函数。

本发明还提供一种神经网络模型训练装置,其包括:

数据获取模块:用于获取训练数据集;

损失函数更新模块:用于设置待训练神经网络模型的初始损失函数,采用正则化项对所述初始损失函数进行更新;

模型训练模块:用于将所述训练数据集输入更新损失函数后的待训练神经网络模型进行特征学习训练,直至收敛。

可选的,所述待训练神经网络模型为深度神经网络模型、残缺神经网络模型或卷积神经网络模型中的一种;

在所述损失函数更新模块之前还包括:

节点压缩模块:用于对所述待训练神经网络模型中的每一层网络的输出节点压缩至预设比例。

可选的,所述初始损失函数为交叉熵损失函数;

所述损失函数更新模块包括:

第二正则化单元:用于对所述待训练神经网络模型中所有层参数向量进行正则化,获取所有层参数向量的正则化项;

损失函数更新单元:用于根据所述所有层参数向量的正则化项对所述初始损失函数进行更新。

可选的,在所述第二正则化单元之前还包括:

第一正则化单元:用于对所述待训练神经网络模型的每一层参数向量进行正则化,获取每一层参数向量对应的正则化项。

可选的,所述训练数据集包括训练样本数据集、测试样本数据集和与测试样本数据集对应的标注数据。

可选的,所述模型训练模块包括:

特征学习单元:用于将所述训练数据集中的训练样本数据集输入更新损失函数后的待训练神经网络模型进行特征学习训练,得到训练后的神经网络模型;

测试单元:用于将所述训练数据集中的测试样本数据集输入所述训练后的神经网络模型,输出分类标注数据;

计算单元:用于计算所述分类标注数据与所述测试样本数据集对应的标注数据的匹配概率;

判断单元:用于判断所述匹配概率的值是否大于预设阈值,若是,则训练结束,若否,则进入下一步;

重置单元:用于采用反向传播算法对所述训练后的神经网络模型所有层参数向量的系数进行重置,并采用所述训练数据集中的训练样本数据集进行重新训练。

可选的,在所述重置单元中,对所述训练后的神经网络模型所有层参数向量的系数进行重置的公式如下:

其中,为训练后的神经网络模型中第i参数向量和第j参数向量的更新后系数,wij为训练后的神经网络模型中第i参数向量和第j参数向量的系数,lr为学习速率,weight_decay为权重衰减系数,momentum为冲量,为更新后的损失函数。

本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述中任意一项所述的神经网络模型训练方法。

本发明还提供一种终端设备,其包括:

一个或多个处理器;

存储器;

一个或多个应用程序其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行上述中任意一项所述的神经网络模型训练方法。

本发明还提供了一种计算机应用程序,其运行在计算机上,该计算机应用程序用于执行上述中任意一项所述的神经网络模型训练方法。

在本发明具体实施过程中,通过设置待训练神经网络模型的初始损失函数,采用正则化项对所述初始损失函数进行更新,再进行模型训练,可以使得模型更为紧凑,除去模型参数向量之间的相关性,减少了模型的参数向量,提高模型的运行效率。

本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1为本发明实施例中的神经网络模型训练方法的流程示意图;

图2为本发明另一实施例中的神经网络模型训练方法的流程示意图;

图3为本发明实施例中的更新损失函数步骤的流程示意图;

图4为本发明实施例中的特征学习训练步骤的流程示意图;

图5为本发明实施例中的神经网络模型训练装置的结构组成示意图;

图6为本发明另一实施例中的神经网络模型训练装置的结构组成示意图;

图7为本发明实施例中的终端设备的结构示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。

实施例:

请参阅图1,图1为本发明第一实施例中的神经网络模型训练方法的流程示意图。

如图1所示,一种神经网络模型训练方法,包括如下步骤:

s11:获取训练数据集。

在本发明具体实施过程中,训练数据集是通过在imagenet上下载获取,imagenet为计算机视觉系统识别项目名称,是目前世界上图像识别最大的数据库,是美国斯坦福的计算机科学家,模拟人类的识别系统建立的。

imagenet的结构基本是金字塔型:目录->子目录->图片集;即在imagenet下载一个图片集作为训练数据集即可,因在imagenet中会对每一个图片均有对应的标注数据,便于后续的训练;在下载训练数据集时,对应下载与训练数据集的标注数据。

其中,训练数据集包括训练样本数据集、测试样本数据集和与测试样本数据集对应的标注数据;训练样本数据集、测试样本数据集之比应该大于1:1。

采用imagenet上下载的数据作为训练数据可以更加完整,全面的训练数据信息和测试数据信息,imagenet上的数据均进行了相应的标注,无需后续人工标注,减少工作量,提高后续的神经网络模型的训练效率。

s12:设置待训练神经网络模型的初始损失函数,采用正则化项对所述初始损失函数进行更新。

在本发明具体实施过程中,首先在待训练神经网络模型中,设定初始损失函数,该初始损失函数为交叉熵损失函数,然后在待训练神经网络模型中对所有层的参数向量进行正则化获取正则化项,将所有层的参数向量之间的正则化项引入到交叉熵损失函数中,采用所有层的正则化后获取的正则化项对交叉熵损失函数进行更新。

通过对所有层的参数向量进行正则化,并引进到交叉熵损失函数中,去除参数向量与参数向量之间的相关性,可以防止神经网络模型在训练过程中的过度拟合、减少神经网络模型在训练过程中所需要的训练样本数据、提升神经网络模型的训练速度。

请参考图3,图3为本发明实施例中的更新损失函数步骤的流程示意图,如图3所示,步骤如下:

s31:对所述待训练神经网络模型中所有层参数向量进行正则化,获取所有层参数向量的正则化项。

首先是获取待训练神经网络模型中的所有层参数向量,然后对这些所有层参数向量进行正则化,通过正则化来获取到所有层参数向量的正则化项,则对所有层参数向量正则化,获取所有层参数向量正则化项的公式如下:

s32:根据所述所有层参数向量的正则化项对所述初始损失函数进行更新。

根据s31中获取的所有层参数向量的正则化项对待训练神经网络模型中的初始损失函数进行更新,更新公式如下:

l=lcross-entropy+λr;

对应的,

其中针对上述s31、s32步骤中的公式的字母所表示的意义如下:r为所有层参数向量的正则化项,nl为第l层参数向量的个数,nl=1,2,3,…,,m为待训练神经网络模型的层数,m=1,2,3,…,,l=1,2,3,…,m,w为待训练神经网络模型参数,wli为待训练神经网络模型参数中第l层的第i个参数向量,wlj为待训练神经网络模型参数中第l层的第j个参数向量,lcross-entropy为交叉熵损失函数,λ为超参数,l为更新后的损失函数。

其中,在s31之前还包括以下步骤:

对所述待训练神经网络模型的每一层参数向量进行正则化,获取每一层参数向量对应的正则化项;

对每一层参数向量进行正则化,获取每一层参数向量的正则化项公式如下:

对应的,

其中,rl为第l层参数向量的正则化项,r为所有层参数向量的正则化项,nl为第l层参数向量的个数,nl=1,2,3,…,,l=1,2,3,…,m,w为待训练神经网络模型参数,wli为待训练神经网络模型参数中第l层的第i个参数向量,wlj为待训练神经网络模型参数中第l层的第j个参数向量。

通过在待训练神经网络模型中引入对参数向量正则化,获取正则化项,采用正则化项更新初始损失函数,可以防止神经网络模型在训练中过度拟合,可以有效的减少待训练神经网络模型在后续训练时的训练样本的数量。

s13:将所述训练数据集输入更新初始损失函数后的待训练神经网络模型进行特征学习训练,直至收敛。

在具体实施过程中,将训练数据集中的训练样本数据集输入到更新损失函数后的待训练神经网络模型中进行特征学习训练,获取训练后的神经网络模型;在此特征学习训练为对输入的训练数据集中的训练样本数据集的特征进行学习训练,通过对这些特征进行学习训练从而顺向更新所有层参数向量的系数,完成神经网络模型的训练而获得训练后的神经网络模型;然后将训练数据集中的测试样本数据集输入到训练后的神经网络模型中进行分类识别,获取输出的分类识别结果;计算所述分类标注数据与所述测试样本数据集对应的标注数据的匹配概率,判断相互匹配的概率是否大于预设阈值,在这里预设阈值为99.9%,若是,则训练结束;若否,采用反向传播算法对所述训练后的神经网络模型所有层参数向量的系数进行重置,并采用所述训练数据集中的训练样本数据集进行重新训练,直至收敛。

其中,在所述采用反向传播算法对所述训练后的神经网络模型所有层参数向量的系数进行重置,对所述训练后的神经网络模型所有层参数向量的系数进行重置的公式如下:

其中,为训练后的神经网络模型中第i参数向量和第j参数向量的更新后系数,wij为训练后的神经网络模型中第i参数向量和第j参数向量的系数,lr为学习速率,weight_decay为权重衰减系数,momentum为冲量,为更新后的损失函数;l为更新后的损失函数。

在具体实施过程中,lr学习习速率、weight_decay权重衰减系数和momenturn冲量可以根据具体情况和需求进行设置,可选的,lr为0.01,weight_decay为0.0005,momentum为0.09。

由于在测试过程中,输出的测试结果与实际效果存在较大的偏差,通过反向算法计算测试结果与实际值之间的误差,并将误差从训练后的神经网络模型中的输出层向隐藏层反向传播直至传播到输入层,在反向传播过程中,根据误差调整训练后的神经网络模型中各参数向量之间的系数,更有利于在重新训练时,更快速的使得神经网络模型达到收敛。

具体请参详图4,图4为本发明实施例中的特征学习训练步骤的流程示意图。

如图4所示,特征学习训练步骤如下:

s41:将所述训练数据集中的训练样本数据集输入更新初始损失函数后的神经网络模型进行特征学习训练,得到训练后的神经网络模型。

将训练数据集中的训练样本数据集输入更新初始损失函数后的神经网络模型进行特征学习训练,在训练过程中不断更新该神经网络模型中的参数向量的系数,最终参数向量的系数趋于稳定之后,获取训练后的神经网络模型。

在此特征学习训练为对输入的训练数据集中的训练样本数据集的特征进行学习训练,通过对这些特征进行学习训练从而顺向更新所有层参数向量的系数,最终参数向量的系数趋于稳定之后,完成神经网络模型的训练而获得训练后的神经网络模型。

s42:将所述训练数据集中的测试样本数据集输入训练后的神经网络模型,输出分类标注数据。

在本发明实施过程中,将训练数据集中的测试样本数据集输入到训练后的神经网络模型中进行测试分类,获取训练后的神经网络模型对测试样本数据集的分类标注数据。

s43:计算所述分类标注数据与所述测试样本数据集对应的标注数据的匹配概率。

在本方具体实施过程中,通过概率的计算方式来计算分类标注数据与测试样本数据集对应的标注数据之间的匹配概率。

s44:判断所述匹配概率的值是否大于预设阈值。

判断相互匹配的匹配概率是否大于预设阈值,在本发明实施例中,不限制预设阈值的具体数值,根据不同应用场景的神经网络,其对应的预设阈值不同。例如,预设阈值设置可以为99.9%,通过判断匹配概率是否大于99.9%,若是大于则跳转至s45,若否,则进入s44。

s45:若否,则采用反向传播算法对所述训练后的神经网络模型所有层参数向量的系数进行重置,并采用所述训练数据集中的训练样本数据集进行重新训练。

采用反向传播算法对训练后的神经网络模型所有层参数向量的系数进行更新,更新之后返回s41进行重新训练。

因为测试输出的结果与实际结果存在误差,则计算输出结果与实际结果之间的误差,并将该误差从输出层向隐藏层反向传播,直至传播至输入层,在反向传播过程中,根据误差调整所有层参数向量的系数。

在所述采用反向传播算法对所述训练后的神经网络模型所有层参数向量的系数进行重置,对所述训练后的神经网络模型所有层参数向量的系数进行重置的公式如下:

其中,为训练后的神经网络模型中第i参数向量和第j参数向量的更新后系数,wij为训练后的神经网络模型中第i参数向量和第j参数向量的系数,lr为学习速率,weight_decay为权重衰减系数,momentum为冲量,为更新后的损失函数。

在具体实施过程中,lr学习习速率、weight_decay权重衰减系数和momenturn冲量可以根据具体情况和需求进行设置,可选的,lr为0.01,weight_decay为0.0005,momentum为0.09。

通过设置学习速率、权重衰减系数和冲量实现在采用反向算法重置所有层参数向量的系数时保证后续再重新训练时的学习速率、学习的加速度和避免模型的过度拟合。

s45:若是,训练结束。

当相互匹配的概率大于预设阈值时,训练结束,神经网络模型训练至收敛。

在本发明具体实施过程中,通过设置待训练神经网络模型的初始损失函数,采用正则化项对所述初始损失函数进行更新,再进行模型训练,可以使得模型更为紧凑,除去模型参数向量之间的相关性,减少了模型的参数量,提高模型的运行效率,本发明中的训练的神经网络模型可以运行在嵌入式设备中,扩大了神经网络模型的应用范围。

可选的,在本发明的另一种实施方式中,请参详图2,图2为本发明另一实施例中的神经网络模型训练方法的流程示意图。

如图2所示,一种神经网络模型训练方法,包括如下步骤:

s21:获取训练数据集。

具体实施方式请参详实施例中的s11,再此不再赘述。

s22:对所述待训练神经网络模型中的每一层网络的输出节点压缩至预设比例。

在神经网络模型中,至少存在输入层、隐藏层和输出层,每一层都存在着大量的输出节点,在本发明实施例中,需要将每一层的网络的输出节点压缩至预设的比例;以vgg网络模型为例,在原模型的基础上,对每一层网络的输出节点数压缩至原来的1/2,具体的压缩过程为采用原节点数除以2即可获得。

神经网络模型处理vgg网络模型之外,还可以为resnet网络模型或googlenet网络模型中的一种,因此预设比例也可以为1/3,或者1/4等,具体需要根据不同的神经网络模型而定。

其中,vgg网络模型为深度神经网络模型,resnet网络模型为残缺神经网络模型,googlenet网络模型为卷积神经网络模型。

通过对待训练神经网络模型中的每一层的输出节点进压缩,可以有效的去除待训练神经网络模型中的部分冗余数据。

s23:设置待训练神经网络模型的初始损失函数,采用正则化项对所述初始损失函数进行更新。

具体实施方式请参详实施例中的s12,再此不再赘述。

s24:将所述训练数据集输入更新初始损失函数后的待训练神经网络模型进行特征学习训练,直至收敛。

具体实施方式请参详实施例中的s13,再此不再赘述。

在本发明具体实施过程中,通过对待训练神经网络模型中的每一层网络的输出节点压缩至预设比例,通过设置待训练神经网络模型的初始损失函数,采用正则化项对所述初始损失函数进行更新,再进行模型训练,可以使得模型更为紧凑,除去模型参数向量之间的相关性,减少了模型的参数量,提高模型的运行效率,本发明中的训练后的神经网络模型可以运行在嵌入式设备中,扩大了神经网络模型的应用范围。

可选的,在本发明的另一种实施方式中,请参详图5,图5为本发明实施例中的神经网络模型训练装置的结构组成示意图。

如图5所示,一种神经网络模型训练装置,包括:

数据获取模块11:用于获取训练数据集;

在本发明具体实施过程中,训练数据集是通过在imagenet上下载获取,imagenet为计算机视觉系统识别项目名称,是目前世界上图像识别最大的数据库,是美国斯坦福的计算机科学家,模拟人类的识别系统建立的。

imagenet的结构基本是金字塔型:目录->子目录->图片集;即在imagenet下载一个图片集作为训练数据集即可,因在imagenet中会对每一个图片均有对应的标注数据,便于后续的训练;在下载训练数据集时,对应下载与训练数据集的标注数据。

其中,训练数据集包括训练样本数据集、测试样本数据集和与测试样本数据集对应的标注数据;训练样本数据集、测试样本数据集之比应该大于1:1。

采用imagenet上下载的数据作为训练数据可以更加完整,全面的训练数据信息和测试数据信息,imagenet上的数据均进行了相应的标注,无需后续人工标注,减少工作量,提高后续的神经网络模型的训练效率。

损失函数更新模块12:用于设置待训练神经网络模型的初始损失函数,采用正则化项对所述初始损失函数进行更新;

在本发明具体实施过程中,首先在待训练神经网络模型中,设定初始损失函数,该初始损失函数为交叉熵损失函数,然后在待训练神经网络模型中对所有层的参数向量进行正则化获取正则化项,将所有层的参数向量之间的正则化项引入到交叉熵损失函数中,采用所有层的正则化后获取的正则化项对交叉熵损失函数进行更新。

其中,损失函数更新模块12包括:

第二正则化单元:用于对所述待训练神经网络模型中所有层参数向量进行正则化,获取所有层参数向量的正则化项;

首先是获取待训练神经网络模型中的所有层参数向量,然后对这些所有层参数向量进行正则化,通过正则化来获取到所有层参数向量的正则化项,则对所有层参数向量正则化,获取所有层参数向量正则化项的公式如下:

损失函数更新单元:用于根据所述所有层参数向量的正则化项对所述初始损失函数进行更新;

根据第二正则化单元中获取的所有层参数向量的正则化项对待训练神经网络模型中的初始损失函数进行更新,更新公式如下:

l=lcross-entropy+λr;

对应的,

其中针对上述第二正则化单元和损失函数更新单元中的公式的字母所表示的意义如下:为所有层参数向量的正则化项,nl为第l层参数向量的个数,nl=1,2,3,…,,m为待训练神经网络模型的层数,m=1,2,3,…,,l=1,2,3,…,m,w为待训练神经网络模型参数,wli为待训练神经网络模型参数中第l层的第i个参数向量,wlj为待训练神经网络模型参数中第l层的第j个参数向量,lcross-entropy为

交叉熵损失函数,λ为超参数,l为更新后的损失函数。

在本发明实施过程中,在第二正则化单元之前还包括:

第一正则化单元:用于对所述待训练神经网络模型的每一层参数向量进行正则化,获取每一层参数向量对应的正则化项;

对每一层参数向量进行正则化,获取每一层参数向量的正则化项公式如下:

对应的,

其中,rl为第l层参数向量的正则化项,nl为第l层参数向量的个数,nl=1,2,3,…,,m为待训练神经网络模型的层数,m=1,2,3,…,,l=1,2,3,…,m,w为待训练神经网络模型参数,wli为待训练神经网络模型参数中第l层的第i个参数向量,wlj为待训练神经网络模型参数中第l层的第j个参数向量。

通过在待训练神经网络模型中引入对参数向量正则化,获取正则化项,采用正则化项更新初始损失函数,可以防止神经网络模型在训练中过度拟合,可以有效的减少待训练神经网络模型在后续训练时的训练样本的数量。

模型训练模块13:用于将所述训练数据集输入更新初始损失函数后的待训练神经网络模型进行特征学习训练,直至收敛。

在具体实施过程中,将训练数据集中的训练样本数据集输入到更新损失函数后的待训练神经网络模型中进行特征学习训练,获取训练后的神经网络模型;在此特征学习训练为对输入的训练数据集中的训练样本数据集的特征进行学习训练,通过对这些特征进行学习训练从而顺向更新所有层参数向量的系数,完成神经网络模型的训练而获得训练后的神经网络模型;然后将训练数据集中的测试样本数据集输入到训练后的神经网络模型中进行分类识别,获取输出的分类识别结果;计算所述分类标注数据与所述测试样本数据集对应的标注数据的匹配概率,判断相互匹配的概率是否大于预设阈值,在这里预设阈值为99.9%,若是,则训练结束;若否,采用反向传播算法对所述训练后的神经网络模型所有层参数向量的系数进行重置,并采用所述训练数据集中的训练样本数据集进行重新训练,直至收敛。

其中,在所述采用反向传播算法对所述训练后的神经网络模型所有层参数向量的系数进行重置,对所述训练后的神经网络模型所有层参数向量的系数进行重置的公式如下:

其中,为训练后的神经网络模型中第i参数向量和第j参数向量的更新后系数,wij为训练后的神经网络模型中第i参数向量和第j参数向量的系数,lr为学习速率,weight_decay为权重衰减系数,momentum为冲量,为更新后的损失函数。

在具体实施过程中,lr学习习速率、weight_decay权重衰减系数和momenturn冲量可以根据具体情况和需求进行设置,可选的,lr为0.01,weight_decay为0.0005,momentum为0.09。

由于在测试过程中,输出的测试结果与实际效果存在较大的偏差,通过反向算法计算测试结果与实际值之间的误差,并将误差从训练后的神经网络模型中的输出层向隐藏层反向传播直至传播到输入层,在反向传播过程中,根据误差调整训练后的神经网络模型中各参数向量之间的系数,更有利于在重新训练时,更快速的使得神经网络模型达到收敛。

其中,模型训练模块13包括:

特征学习训练单元:用于将所述训练数据集中的训练样本数据集输入更新初始损失函数后的神经网络模型进行特征学习训练,得到训练后的神经网络模型;

将训练数据集中的训练样本数据集输入更新损初始失函数后的神经网络模型进行特征学习训练,在训练过程中不断更新该神经网络模型中的参数向量的系数,最终参数向量的系数趋于稳定之后,获取训练后的神经网络模型。

在此特征学习训练为对输入的训练数据集中的训练样本数据集的特征进行学习训练,通过对这些特征进行学习训练从而顺向更新所有层参数向量的系数,最终参数向量的系数趋于稳定之后,完成神经网络模型的训练而获得训练后的神经网络模型。

测试单元:用于将所述训练数据集中的测试样本数据集输入训练后的神经网络模型,输出分类标注数据;

在本发明实施过程中,将训练数据集中的测试样本数据集输入到训练后的神经网络模型中进行测试分类,获取训练后的神经网络模型对测试样本数据集的分类标注数据。

计算单元:用于计算所述分类标注数据与所述测试样本数据集对应的标注数据的匹配概率;

在本方具体实施过程中,通过概率的计算方式来计算分类标注数据与测试样本数据集对应的标注数据之间的匹配概率。

判断单元:用于判断所述匹配概率的值是否大于预设阈值,若是,则训练结束;若否,进入下一步;

判断相互匹配的匹配概率是否大于预设阈值,在本发明实施例中,预设阈值设置为99.9%,通过判断匹配概率是否大于99.9%,若大于,则训练结束,训练后的神经网络模型收敛,若否,则进入下一步的重置单元

重置单元:用于采用反向传播算法对所述训练后的神经网络模型所有层参数向量的系数进行重置,并采用所述训练数据集中的训练样本数据集进行重新训练。

采用反向传播算法对所述训练后的神经网络模型所有层参数向量的系数进行重置,并采用所述训练数据集中的训练样本数据集进行重新训练。

因为测试输出的结果与实际结果存在误差,则计算输出结果与实际结果之间的误差,并将该误差从输出层向隐藏层反向传播,直至传播至输入层,在反向传播过程中,根据误差调整所有层参数向量的系数。

在所述采用反向传播算法对所述训练后的神经网络模型所有层参数向量的系数进行重置,对所述训练后的神经网络模型所有层参数向量的系数进行重置的公式如下:

其中,为训练后的神经网络模型中第i参数向量和第j参数向量的更新后系数,wij为训练后的神经网络模型中第i参数向量和第j参数向量的系数,lr为学习速率,weight_decay为权重衰减系数,momentum为冲量,为更新后的损失函数。

在具体实施过程中,lr学习习速率、weight_decay权重衰减系数和momenturn冲量可以根据具体情况和需求进行设置,可选的,lr为0.01,weight_decay为0.0005,momentum为0.09。

通过设置学习速率、权重衰减系数和冲量实现在采用反向算法重置所有层参数向量的系数时保证后续再重新训练时的学习速率、学习的加速度和避免模型的过度拟合。

在本发明具体实施过程中,通过设置待训练神经网络模型的初始损失函数,采用正则化项对所述初始损失函数进行更新,再进行模型训练,可以使得模型更为紧凑,除去模型参数向量之间的相关性,减少了模型的参数量,提高模型的运行效率,本发明中的训练的神经网络模型可以运行在嵌入式设备中,扩大了神经网络模型的应用范围。

可选的,在本发明的另一种实施方式中,请参详图6,图6为本发明另一实施例中的神经网络模型训练装置的结构组成示意图。

如图6所示,一种神经网络模型训练装置,包括:

数据获取模块21:用于获取训练数据集;

节点压缩模块22:用于对所述待训练神经网络模型中的每一层网络的输出节点压缩至预设比例;

在神经网络模型中,至少存在输入层、隐藏层和输出层,每一层都存在着大量的输出节点,在本发明实施例中,需要将每一层的网络的输出节点压缩至预设的比例;以vgg网络模型为例,在原模型的基础上,对每一层网络的输出节点数压缩至原来的1/2,具体的压缩过程为采用原节点数除以2即可获得。

神经网络模型处理vgg网络模型之外,还可以为resnet网络模型或googlenet网络模型中的一种,因此预设比例也可以为1/3,或者1/4等,具体需要根据不同的神经网络模型而定。

其中,vgg网络模型为深度神经网络模型,resnet网络模型为残缺神经网络模型,googlenet网络模型为卷积神经网络模型。

通过对待训练神经网络模型中的每一层的输出节点进压缩可以有效的去除模型中的部分冗余数据。

损失函数更新模块23:用于设置待训练神经网络模型的初始损失函数,采用正则化项对所述初始损失函数进行更新;

模型训练模块24:用于将所述训练数据集输入更新初始损失函数后的待训练神经网络模型进行特征学习训练,直至收敛。

数据获取模块21、损失函数更新模块23和模型训练模块24的具体实施方式请参详上述的实施方式,再次不再赘述。

在本发明具体实施过程中,通过对待训练神经网络模型中的每一层网络的输出节点压缩至预设比例,通过设置待训练神经网络模型的初始损失函数,采用正则化项对所述初始损失函数进行更新,再进行模型训练,可以使得模型更为紧凑,除去模型参数向量之间的相关性,减少了模型的参数向量,提高模型的运行效率,本发明中的训练后的神经网络模型可以运行在嵌入式设备中,扩大了神经网络模型的应用范围。

本发明实施例提供的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述实施例中任意一个实施例的神经网络模型训练方法。其中,所述计算机可读存储介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、cd-rom、和磁光盘)、rom(read-onlymemory,只读存储器)、ram(randomaccessmemory,随即存储器)、eprom(erasableprogrammableread-onlymemory,可擦写可编程只读存储器)、eeprom(electricallyerasableprogrammableread-onlymemory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,存储设备包括由设备(例如,计算机、手机)以能够读的形式存储或传输信息的任何介质,可以是只读存储器,磁盘或光盘等。

本发明实施例还提供了一种计算机应用程序,其运行在计算机上,该计算机应用程序用于执行上述中任意一个实施例的神经网络模型训练方法。

此外,本发明实施例还提供了一种终端设备,如图7所示。本实施所示的终端设备可以为pc设备、服务器、平板电脑或者移动终端等设备。所述计算机设备包括处理器702、存储器703、输入单元704以及显示单元705等器件。本领域技术人员可以理解,图7示出的设备结构器件并不构成对所有设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件。存储器703可用于存储应用程序701以及各功能模块,处理器702运行存储在存储器703的应用程序701,从而执行设备的各种功能应用以及数据处理。存储器可以是内存储器或外存储器,或者包括内存储器和外存储器两者。内存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦写可编程rom(eeprom)、快闪存储器、或者随机存储器。外存储器可以包括硬盘、软盘、zip盘、u盘、磁带等。本发明所公开的存储器包括但不限于这些类型的存储器。本发明所公开的存储器只作为例子而非作为限定。

输入单元704用于接收信号的输入,以及接收用户输入的关键字。输入单元704可包括触控面板以及其它输入设备。触控面板可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并根据预先设定的程序驱动相应的连接装置;其它输入设备可以包括但不限于物理键盘、功能键(比如播放控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。显示单元705可用于显示用户输入的信息或提供给用户的信息以及终端设备的各种菜单。显示单元705可采用液晶显示器、有机发光二极管等形式。处理器702是终端设备的控制中心,利用各种接口和线路连接整个设备的各个部分,通过运行或执行存储在存储器702内的软件程序和/或模块,以及调用存储在存储器内的数据,执行各种功能和处理数据。

作为一个实施例,所述计算机设备包括:一个或多个处理器702,存储器703,一个或多个应用程序701,其中所述一个或多个应用程序701被存储在存储器703中并被配置为由所述一个或多个处理器702执行,所述一个或多个程序701配置用于执行上述实施例中的任意一实施例中对的神经网络模型训练方法。

在本发明具体实施过程中,通过对待训练神经网络模型中的每一层网络的输出节点压缩至预设比例,通过设置待训练神经网络模型的初始损失函数,采用正则化项对所述初始损失函数进行更新,再进行模型训练,可以使得模型更为紧凑,除去模型参数向量之间的相关性,减少了模型的参数向量,提高模型的运行效率,本发明中的训练后的神经网络模型可以运行在嵌入式设备中,扩大了神经网络模型的应用范围。

应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1