公开了一种用于训练神经网络的计算机实现的方法。该方法包括确定与神经网络的参数相关联的梯度。该方法还包括确定梯度范数与参数范数的比率,并将该比率与阈值进行比较。响应于确定该比率超过阈值,减小梯度的值,使得该比率等于或低于阈值。基于减小的梯度值来更新参数的值。参数的值。参数的值。
【技术实现步骤摘要】
【国外来华专利技术】利用自适应梯度裁剪的神经网络
[0001]本说明书涉及用于使用自适应梯度裁剪技术(adaptive gradient clipping technique)训练神经网络的系统和方法。
技术介绍
[0002]神经网络是采用一层或多层非线性单元来预测接收的输入的输出的机器学习模型。一些神经网络除了输出层之外还包括一个或多个隐藏层。每个隐藏层的输出被用作网络中的下一层(即,下一隐藏层或输出层)的输入。网络的每个层根据相应参数集的当前值从接收的输入生成输出。
[0003]一些神经网络是循环(recurrent)神经网络。循环神经网络是接收输入序列并从输入序列生成输出序列的神经网络。特别地,循环神经网络可以在计算当前时间步的输出时使用来自先前时间步的网络的内部状态中的一些或全部。循环神经网络的示例是长短期记忆(LSTM)神经网络,其包括一个或多个LSTM记忆块。每个LSTM记忆块可以包括一个或多个单元,每个单元包括输入门、遗忘门和输出门,其允许单元存储单元的先前状态,例如,用于在生成当前激活时使用或提供给LSTM神经网络的其他组件。
技术实现思路
[0004]本说明书总体上描述了实现为在一个或多个位置中的一个或多个计算机上的计算机程序的系统如何可以执行训练神经网络(即,调整神经网络的参数)的方法。
[0005]在一个方面,提供了一种用于训练神经网络的计算机实现的方法,包括确定与神经网络的参数相关联的梯度。确定梯度范数与参数范数的比率并将其与阈值进行比较。响应于确定该比率超过阈值,减小梯度的值,使得该比率等于或低于阈值。然后基于减小的梯度值来更新参数的值。
[0006]该方法提供了一种确保稳定的参数更新的自适应梯度裁剪技术。在一些神经网络中,例如,在具有数百或数千层的非常深的神经网络中,需要批次归一化来进行有效训练。本方法使得能够有效地训练这种神经网络,而不需要批次归一化层,在本文中称为“无归一化器”神经网络。批次归一化引入了批次内的训练数据项之间的依赖性,这使得在并行或分布式处理系统上的实现更加困难。批次归一化也是计算上昂贵的操作。
[0007]通过使用本文描述的自适应梯度裁剪技术来确保梯度范数与参数范数的比率在训练期间保持在可接受的范围内,可以提供具有与批次归一化网络相同的属性的无归一化器网络,以在无归一化器网络中复制批次归一化的有利效果。这在无归一化器网络中提供了更稳定的参数更新,并且这种稳定性使得能够以大批次大小进行训练,这减少了总训练时间,同时维持了任务性能。去除批次归一化和批次内训练项的依赖性还使得训练能够在并行或分布式处理系统上更容易地实现。训练数据项的独立性对于序列建模任务也是重要的。
[0008]常规梯度裁剪方法仅考虑梯度的大小,它们不考虑参数本身的大小以及梯度范数
与参数范数的比率。在无归一化器网络中使用常规梯度裁剪方法不赋予通过使用本自适应梯度裁剪方法提供的全部益处。特别地,使用常规梯度裁剪进行训练,裁剪阈值对深度、批次大小和学习速率敏感,并且在更改这些因素中的任何一个时需要细粒度调谐。当使用常规的梯度裁剪时,对于较大的网络也观察到收益递减。针对梯度裁剪的比率的使用在参数更新中提供了改进的稳定性,其复制了常规梯度裁剪未能做到的批次归一化的属性和优点。
[0009]在一些现有技术方法中,比率用于适配学习速率,其还具有在执行参数更新步骤时缩放梯度的效果。然而,在本自适应梯度裁剪方法中,仅当比率在可接受范围之外时才减小梯度值。这对网络泛化和维持任务性能的能力具有显著影响。在计算资源有限并且必须使用较小的批次大小的情况下尤其如此。
[0010]梯度范数与参数范数的比率可以被定义为梯度范数除以参数范数。
[0011]所述方法还可以包括:响应于确定所述比率低于所述阈值,维持所述梯度的值并且基于维持的梯度值来更新所述参数的值。也就是说,当比率低于阈值时,梯度可以不变。
[0012]减小梯度的值可以包括将梯度的值乘以比例因子以减小梯度的值。比例因子可以基于该比率,并且减小梯度的值可以包括将梯度的值乘以基于该比率的比例因子以减小梯度的值。例如,比例因子可以基于比率的倒数。替代地或附加地,比例因子可以基于阈值。例如,阈值可以是在0.01至0.16范围内的值,包括0.01和0.16。比例因子可以基于比率和阈值的组合。例如,比例因子可以基于阈值乘以比率的倒数。
[0013]可替代地,阈值的值可以基于学习速率。例如,阈值可以与学习速率的倒数成比例。阈值的值还可以基于批次大小。例如,可以为较大批次大小选择阈值的小值(其提供更强的裁剪)。
[0014]梯度范数和参数范数可基于与神经网络的一个神经元相关联的参数来确定。也就是说,一个神经元可以仅是单个神经元,并且梯度范数和参数范数可以是单位范数。
[0015]神经网络的参数可以是连接到神经网络的神经元的权重,并且梯度范数可基于与连接到神经元的每个相应权重相关联的梯度来确定,并且参数范数可基于连接到神经元的每个相应权重的权重值来确定。
[0016]梯度范数和参数范数可以基于Frobenius(弗罗贝尼乌斯)范数来确定。也就是说,与神经网络层相关联的梯度或参数矩阵的Frobenius范数可以被定义为矩阵的每个单独元素的平方和的平方根。
[0017]梯度范数可被计算为在与连接到神经元的相应权重相关联的梯度上计算的Frobenius范数,并且参数范数可被计算为在连接到神经元的相应权重上计算的Frobenius范数。
[0018]减小梯度的值可以基于以下方程式:
[0019]如果则
[0020]其中,W
l
是第l层的权重矩阵,i是第l层中的神经元的索引(并且因此可以是W
l
的行向量),是对应于参数的梯度,λ是标量阈值,并且||.||
F
是Frobenius范数。也可以被计算为max(),这可以防止零初始化参数将其梯度裁剪为零。ε可以是
10
‑3或其他适当的小值。
[0021]神经网络可以是深度残差神经网络。神经网络可以包括残差块,并且其中残差块是无归一化层的。也就是说,残差块可以不包括批次归一化或其他类型的归一化层。残差块可以包括卷积、池化和/或非线性操作,但没有诸如批次归一化的激活归一化操作。非线性可以是高斯误差线性单元(GELU)或修正线性单元(ReLU)。卷积操作可以是分组卷积。例如,3
×
3卷积的组宽度可以是128。
[0022]参数可以是与卷积层相关联的参数。在参数是卷积滤波器的权重的情况下,可以在包括通道和空间维度的扇入范围上计算梯度和参数范数。自适应梯度裁剪方法可以应用于网络的所有层。然而,可以排除最终输出层。还可以排除初始卷积层。
[0023]神经网络可以是包括四级(stage)骨干(backbone)的深度残差神经网络。级可以包括具有恒定宽度和分辨率的激活的残差块序列。骨干可以包括从第一级开始到第四级的比率为1:2:6:3的残差块。也就是说,第本文档来自技高网...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】1.一种用于训练神经网络的计算机实现的方法,包括:确定与所述神经网络的参数相关联的梯度;确定梯度范数与参数范数的比率;将所述比率与阈值进行比较;响应于确定所述比率超过所述阈值,减小所述梯度的值,使得所述比率等于或低于所述阈值;以及基于减小的梯度值来更新所述参数的值。2.根据权利要求1所述的方法,还包括:响应于确定所述比率低于所述阈值,维持所述梯度的值并且基于维持的梯度值来更新所述参数的值。3.根据任一前述权利要求所述的方法,其中,减小所述梯度的值包括将所述梯度的值乘以基于所述阈值的比例因子以减小所述梯度的值。4.根据任一前述权利要求所述的方法,其中,减小所述梯度的值包括将所述梯度的值乘以基于所述比率的比例因子以减小所述梯度的值。5.根据任一前述权利要求所述的方法,包括基于与所述神经网络的一个神经元相关联的参数来确定所述梯度范数和所述参数范数。6.根据权利要求5所述的方法,其中,所述神经网络的参数是连接到所述神经网络的所述神经元的权重,所述方法包括基于与连接到所述神经元的每个相应权重相关联的梯度来确定所述梯度范数,以及基于连接到所述神经元的每个相应权重的权重值来确定所述参数范数。7.根据权利要求6所述的方法,还包括将所述梯度范数计算为与连接到所述神经元的相应权重相关联的梯度上的Frobenius范数,并且将所述参数范数计算为连接到所述神经元的相应权重上的Frobenius范数。8.根据任一前述权利要求所述的方法,其中,减小所述梯度的值基于以下方程式:如果则其中,W
l
是第l层的权重矩阵,i是第l层中的神经元的索引,是对应于参数的梯度,λ是标量阈值,并且||.||
F
是Frobenius范数。9.根据任一前述权利要求所述的方法,其中,所述神经网络包括残差块,并且其中,所述残差块是无归一化层的。10.根据任一前述权利要求所述的方法,其中,所述神经网络是包括四级骨干的深度残差神经网络。11.根据权利要求10所述的方法,其中,所述骨...
【专利技术属性】
技术研发人员:A,
申请(专利权)人:渊慧科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。