一种神经网络的训练方法、系统、设备以及介质技术方案

技术编号:33042421 阅读:9 留言:0更新日期:2022-04-15 09:24
本发明专利技术公开了一种神经网络的训练方法,包括以下步骤:创建结构相同的第一神经网络和第二神经网络;每次对第一神经网络和第二神经网络训练时,随机将训练batch中的若干个图像输入到第一神经网络,并将剩余数据输入到第二神经网络中;根据第一神经网络和第二神经网络的逻辑回归层的输出计算损失值;根据损失值,利用反向传播更新第二神经网络中编码器和多层感知器的网络参数并利用第二神经网络中编码器和多层感知器的网络参数的均值更新第一神经网络中编码器和多层感知器的网络参数,以再次训练,或者结束训练并利用第二神经网络中的编码器和逻辑回归层进行推理。本发明专利技术还公开了一种系统、计算机设备以及可读存储介质。计算机设备以及可读存储介质。计算机设备以及可读存储介质。

【技术实现步骤摘要】
一种神经网络的训练方法、系统、设备以及介质


[0001]本专利技术涉及神经网络领域,具体涉及一种神经网络的训练方法、系统、设备以及存储介质。

技术介绍

[0002]对于给定任务,使用足够的数据标签,监督学习可以很好地解决问题。要想实现良好的性能,通常需要相当数量的数据标记,但是收集手工标记数据的成本很高(如ImageNet),并且难以扩展,因此,自监督学习为解决数据标签不足带来的一种解决方案为监督学习方式提供了巨大的机会,可以更好地利用未标记的数据来进行预训练。
[0003]目前自监督网络实现主要有两种方式,一种是通过对比学习的方式,经典算法包括MoCo系列,第二种是通过BYOL这种蒸馏学习方式来进行自监督,二者的网络结构形式非常相似,同样是双路网络结构,同样是对于最终的双路网络输出计算loss。不同的是,蒸馏学习往往是固定一个teacher网络,student网络规模要小于teacher,对比学习中,两个网络结构常常一致,并且是共同更新网络参数,而在蒸馏学习中teacher网络的参数固定。当然还有输入、loss、参数更新等不同,但蒸馏网络提供给了理解对比学习架构的另一种思考方式。在对比学习中常用的momentum update(动量更新)的更新方法和stop gradient(在网络训练中梯度停止)技巧,可以理解成蒸馏学习的缓慢更新teacher版本和变体,由此可以将对比网络理解成双路网络互相学习,左右互搏。
[0004]在整个蒸馏方式实现的自监督网络中,模型坍缩问题成为实现自监督网络首先要考虑的问题,模型坍缩是指映射函数将特征映射到单位超球面时,无论是正例还是负例,都无差别的映射到球面上的一个点。
[0005]一个好的自监督网络需要通过Uniformity和Alignment来防止模型坍缩,Alignment是指使特征相近的物体尽量保持距离相近,而Uniformity指特征不相近物体尽量保持远距离且均匀分布在单位超球面。
[0006]目前常用的自监督网络防止模型坍缩的手段主要有通过对比loss函数、增加Predictor、增加centering(通过移动平均保留静态统计量以此来保留更多信息)等手段来实现Uniformity和Alignment而防止模型坍缩,这些方法虽然能够防止模型坍缩,但存在各种各样的问题,例如对比loss函数需要手动分来正例和负例,增加centering需要调节参数等,而且没有完全实现防止模型坍缩的效果,当自监督训练的样本数不平衡时,自监督模型的精度会受到损失。
[0007]现有的技术方案通过各种各样的方法来防止模型坍缩,SimCLR通过对比loss函数来将相同特征拉近(Alignment)、不同特征推远(Uniformity)的方式来实现防止模型坍缩,BYOL通过增加Predictor使得模型分支不对称以此来防止模型坍缩,DINO通过增加centering以及对蒸馏温度的调节来实现Uniformity和Alignment以此来防止模型坍缩。
[0008]SimCLR这种通过对比loss函数方式实现的自监督算法需要大的batch size并且需要大量的负例才能够达到很好的预防模型退化的效果,而BYOL和DINO虽然能够解决不使
用负例就能够达到防止模型退化的目的,但以上自监督算法没有考虑到样本数不均衡条件下的模型退化情况,当训练的样本数不平衡时,以上模型由于可能存在的模型坍缩现象会导致自监督算法训练的模型精度不高。

技术实现思路

[0009]有鉴于此,为了克服上述问题的至少一个方面,本专利技术实施例提出一种神经网络的训练方法,包括以下步骤:
[0010]创建结构相同的第一神经网络和第二神经网络,其中所述第一神经网络和所述第二神经网络均包括编码器、多层感知器以及逻辑回归层;
[0011]每次对所述第一神经网络和所述第二神经网络训练时,随机将训练batch中的若干个图像输入到第一神经网络,并将剩余数据输入到所述第二神经网络中;
[0012]根据所述第一神经网络和所述第二神经网络的逻辑回归层的输出计算损失值;
[0013]响应于所述损失值不符合预设要求,利用反向传播更新所述第二神经网络中编码器和多层感知器的网络参数并利用所述第二神经网络中编码器和多层感知器的网络参数的均值更新所述第一神经网络中编码器和多层感知器的网络参数,以再次训练;
[0014]响应于所述损失值达到预设值,结束训练并利用所述第二神经网络中的编码器和逻辑回归层进行推理。
[0015]在一些实施例中,还包括:
[0016]创建训练数据集并将训练数据集分为多个batch;
[0017]对每一个batch中的若干个图像数据进行预处理。
[0018]在一些实施例中,对每一个batch中的若干个数据进行预处理,进一步包括:
[0019]对若干个图像数据进行随机裁剪并resize、进行随机水平翻转、进行对比度和饱和度的修改、进行高斯模糊以及进行正则化中一个或多个处理。
[0020]在一些实施例中,利用所述第二神经网络中编码器和多层感知器的网络参数的均值更新所述第一神经网络中编码器和多层感知器的网络参数,进一步包括通过下式更新所述第一神经网络中的编码器和多层感知器的网络参数:
[0021][0022]g
r,t
=m
t
g
r,t
‑1+(1

m
t
)g
l
[0023]其中,矩阵g
r,t
为第一神经网络的编码器或多层感知器当前次训练时的网络参数;矩阵g
r,t
‑1为第一神经网络的编码器或多层感知器前一次训练时的网络参数;矩阵g
l
为第二神经网络对应的编码器或多层感知器当前次训练时的网络参数;m
t
和m
t
‑1分别为当前次训练时的权重和前一次训练时的权重,初始值为预设值;G
l,ii
为对角矩阵,其中元素(i,i)为矩阵g
l
对应的第i行的梯度平方和。
[0024]在一些实施例中,根据所述第一神经网络和所述第二神经网络的逻辑回归层的输出计算损失值,进一步包括:
[0025]对所述第一神经网络的逻辑回归层的输出进行Qz函数变换后与所述第二神经网络的逻辑回归层的输出计算损失值。
[0026]基于同一专利技术构思,根据本专利技术的另一个方面,本专利技术的实施例还提供了一种神经网络的训练系统,包括:
[0027]创建模块,配置为创建结构相同的第一神经网络和第二神经网络,其中所述第一神经网络和所述第二神经网络均包括编码器、多层感知器以及逻辑回归层;
[0028]输入模块,配置为每次对所述第一神经网络和所述第二神经网络训练时,随机将训练batch中的若干个图像输入到第一神经网络,并将剩余数据输入到所述第二神经网络中;
[0029]计算模块,配置为根据所述第一神经网络和所述第本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种神经网络的训练方法,其特征在于,包括以下步骤:创建结构相同的第一神经网络和第二神经网络,其中所述第一神经网络和所述第二神经网络均包括编码器、多层感知器以及逻辑回归层;每次对所述第一神经网络和所述第二神经网络训练时,随机将训练batch中的若干个图像输入到第一神经网络,并将剩余数据输入到所述第二神经网络中;根据所述第一神经网络和所述第二神经网络的逻辑回归层的输出计算损失值;响应于所述损失值不符合预设要求,利用反向传播更新所述第二神经网络中编码器和多层感知器的网络参数并利用所述第二神经网络中编码器和多层感知器的网络参数的均值更新所述第一神经网络中编码器和多层感知器的网络参数,以再次训练;响应于所述损失值达到预设值,结束训练并利用所述第二神经网络中的编码器和逻辑回归层进行推理。2.如权利要求1所述的方法,其特征在于,还包括:创建训练数据集并将训练数据集分为多个batch;对每一个batch中的若干个图像数据进行预处理。3.如权利要求2所述的方法,其特征在于,对每一个batch中的若干个数据进行预处理,进一步包括:对若干个图像数据进行随机裁剪并resize、进行随机水平翻转、进行对比度和饱和度的修改、进行高斯模糊以及进行正则化中一个或多个处理。4.如权利要求1所述的方法,其特征在于,利用所述第二神经网络中编码器和多层感知器的网络参数的均值更新所述第一神经网络中编码器和多层感知器的网络参数,进一步包括通过下式更新所述第一神经网络中的编码器和多层感知器的网络参数:g
r,t
=m
t
g
r,t
‑1+(1

m
t
)g
l
其中,矩阵g
r,t
为第一神经网络的编码器或多层感知器当前次训练时的网络参数;矩阵g
r,t
‑1为第一神经网络的编码器或多层感知器前一次训练时的网络参数;矩阵g
l
为第二神经网络对应的编码器或多层感知器当前次训练时的网络参数;m
t
和m
t
‑1分别为当前次训练时的权...

【专利技术属性】
技术研发人员:孙红岩
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1