随着科技的进步和时代的发展,计算机的运算能力得到了指数级提升.面对越来越庞大且复杂的数据,神经网络算法因其良好的数据处理能力,近些年来得到了大量关注与研究,并在人脸识别[1]、语音识别[2]、语音增强[3]和路径规划[4]等领域得到了广泛应用,具有十分重要的现实意义.在此背景下,梯度下降类算法作为神经网络模型中最重要的优化算法,近些年也得到了飞跃发展.随机梯度下降法(SGD)是梯度类算法中基础的优化算法.在SGD算法的基础上,将迭代下降过程视为一个物理系统,文献[5]提出NAG算法,这种算法会在更新梯度之前增加前一次更新向量,成为一个动量,使其在相同的更新方向上速度累加,在不同的更新方向上速度减小.另一方面,在SGD算法的基础上,出现了使用之前的更新信息来自适应调整学习率的算法,如AdaGrad算法[6]、AdaDelta算法[7]和RMSPorp算法[8].而Adam算法[9]同时应用动量和自适应两种技巧,通过结合两者的优势,使之成为目前神经网络模型中常用的优化算法之一.在此基础上,AdamW[10],AMSGrad[11],DiffGrad[12]和AdaBelief[13]等大量改进算法被提出,极大提高了神经网络模型的性能.本研究在Adam算法的基础上,利用两次连续梯度之间的角度信息,提出了一个新的AngleAdam算法.该算法对于角度信息变化大的梯度更新,给予更大的步长;对于角度信息变化小的梯度更新,给予更小的步长,从而在一定程度上改善了文献[11]所提出的Adam算法中出现的不能收敛到最优解的问题;然后对所提算法从遗憾界的角度进行了收敛性分析,给出了相应的证明;最后在建立的三个非凸函数和深度神经网络上进行实验分析,与其他优化算法进行比较.实验结果表明:所提的AngleAdam算法有较好的全局收敛性和优化性能.1 Adam和AngleAdam算法1.1 Adam算法Adam算法作为神经网络模型中常用的优化算法之一,结合了动量梯度法和RMSPorp算法的优点,同时保存了动量梯度算法的梯度指数衰减平均值和RMSPorp算法的梯度平方指数衰减平均值.二者在Adam算法中分别被定义为一阶矩mt和二阶矩vt,表达式为mt=β1mt-1+(1-β1)gt;(1)vt=β2vt-1+(1-β2)gt2,(2)式中:β1和β2分别为一阶矩和二阶矩的指数衰减率;mt-1和vt-1分别为第t-1步中的一阶矩和二阶矩;gt为第t步的梯度,计算公式为gt=∇θft(θt),(3)其中,θt为第t步更新的参数向量,ft(θ)为神经网络中第t次迭代的损失函数,∇θft(θt)为神经网络第t次迭代的损失函数关于参数的梯度.Adam算法参数更新公式为θt+1=θt-αv^t+εm^t,(4)式中:α为学习率;m^t和v^t分别为一阶矩和二阶矩的偏置校正;ε为一个大于0的充分小值.Adam算法具体实现步骤如下.步骤1 初始化:β1,β2,α,ε,θ0,m0=0,v0=0,迭代次数t=1和终止条件.步骤2 根据式(3)计算梯度gt.步骤3 根据式(1)计算一阶矩mt.步骤4 根据式(2)计算二阶矩vt.步骤5 计算一阶矩的偏置校正m^t,即m^t=mt/(1-β1t).步骤6 计算二阶矩的偏置校正v^t,即v^t=vt/(1-β2t).步骤7 根据式(4)更新参数,若满足终止条件,则算法结束;否则令t=t+1,转至步骤2.虽然Adam算法结合了两种算法的优点,具有良好的性能,但是仍会出现即使在一维非凸函数上也不能收敛到全局最优解的问题[11].AMSGrad算法提出一种通过二阶矩选取的方法来解决Adam算法存在的问题,因此提出一种利用梯度间的角度信息来动态调整学习率的优化算法,从而得到更好的全局收敛性.1.2 AngleAdam算法本研究提出一个新的自适应动量梯度下降法,在优化过程中考虑了两个连续梯度之间的角度,将角度信息用到参数向量的更新中.具体来说,引入角系数Φt,设Φt,i为Φt的第i个分量,计算方法为Φt,i=(1/2)Nor(tanAt,i)+1/2,(5)式中:At,i可理解为gt,i和gt-1,i之间的角度;Nor为一个非线性函数.计算方法分别为:At,i=arctan(gt,i-gt-1,i)/(1+gt,igt-1,i);(6)Nor(x)=-2e-x2/(2σ2)/2πσ+1,(7)式中σ取值为0.8.利用角系数Φt动态调整学习率,提出AngleAdam算法.当At,i取值趋近于0时,Φt,i趋近于0.5;当At,i取值趋近于π/2时,Φt,i趋近于1,从而利用角系数使得当梯度变化剧烈时,有更大的步长;反之,当梯度变化缓慢时,有更小的步长,如图1所示.因此,AngleAdam算法的参数更新公式为θt+1=θt-αtΦtv^t+εm^t.(8)10.13245/j.hust.239004.F001图1角系数Φt,i的变化曲线AngleAdam算法具体实现步骤如下.步骤1 初始化:β1,β2,α,ε,θ0,m0=0,v0=0,λ=1-1×10-8,迭代次数t=1和终止条件.步骤2 计算衰减的学习率αt和衰减的一阶矩指数衰减率β1,t,即:αt=α/t;β1,t=β1λt-1.步骤3 根据式(3)计算梯度gt.步骤4 根据式(6)计算gt,i和gt-1,i之间的角度At,i.步骤5 根据式(7)和式(5)计算角系数Φt.步骤6 计算一阶矩mt,即mt=β1,tmt-1+(1-β1,t)gt.步骤7 根据式(2)计算二阶矩vt.步骤8 计算一阶矩的偏置校正m^t,即m^t=mt/(1-β1t).步骤9 计算二阶矩的偏置校正v^t,即v^t=vt/(1-β2t).步骤10 根据式(8)更新参数,若满足终止条件,则算法结束;否则令t=t+1,转至步骤3.2 收敛性分析设T次迭代对应的未知凸损失函数序列f1(θ),f2(θ),…,fT(θ),从解空间χ中计算一个在线猜测损失ft(θt)和一个期望损失ft(θ*),其中θ*=argminθ∈χ∑t=1Tft(θ).遗憾就是在线损失与离线算法的最小损失之间的差值,即R(T)=∑t=1T[ft(θt)-ft(θ*)].可以证明AngleAdam算法的遗憾界为Ο(T),Ο(T)表示与T同阶.定义g1:t,i=[g1,i,g2,i,…,gt,i]∈Rt,γ≜β12/β2.定理 1 设函数ft(θ)的梯度有界,即存在G和G∞,使得∇θft(θ)2≤G,∇θft(θ)∞≤G∞,θ∈Rd,并且由AngleAdam算法生成的任何θt之间的距离都是有界的,即存在D和D∞,使得θn-θm2≤D,θn-θm∞≤D∞, m,n∈ {1 ,2,…,T},则有RT≤D2α(1-β1)∑t=1TT(v^T,i+ε)+α(1+β1)G∞(1-β1)1-β2(1-γ)2∑i=1dg1:T,i2+∑i=1dD∞2G∞1-β22α(1-β1)(1-γ)2.证明 由文献[9]中的引理10.2,有ft(θt)-ft(θ*)≤gtT(θt-θ*)=∑i=1dgt,i(θt,i-θ,i*).根据AngleAdam算法的更新规则式(8),有θt+1=θt-αtΦt(v^t+ε)m^t=θt-αtΦt1-β1tβ1,tv^t+εmt-1+(1-β1,t)v^t+εgt,其第i个元素可以表示为(θt+1,i-θ,i*)2=(θt,i-θ,i*)2-2αtΦt,i1-β1t⋅β1,tv^t,i+εmt-1,i+1-β1,tv^t,i+εgt,i(θt,i-θ,i*)+αt2Φt,i2m^t,i/v^t,i+ε2. (9)重新排列式(9),得到gt,i(θt,i-θ,i*)=(1-β1t)v^t,i+ε2αtΦt,i(1-β1,t)[(θt,i-θ,i*)2-(θt+1,i-θ,i*)2]+β1,t1-β1,t(θ,i*-θt,i)mt-1,i+αtΦt,i(1-β1t)2(1-β1,t)m^t,i2v^t,i+ε.利用杨氏不等式得到gt,i(θt,i-θ,i*)≤12αtΦt,i(1-β1)[(θt,i-θ,i*)2-(θt+1,i-θ,i*)2]v^t,i+ε+β1,t[2αt-1(1-β1,t)]-1⋅(θ,i*-θt,i)2v^t-1,i+ε+β1αt-1m^t-1,i22(1-β1)v^t-1,i+ε+αtΦt,i2(1-β1)m^t,i2v^t,i+ε. (10)根据式(5)得0.5Φt,i1,则式(10)可表示为gt,i(θt,i-θ,i*)≤12αtΦt,i(1-β1)[(θt,i-θ,i*)2-(θt+1,i-θ,i*)2]v^t,i+ε+β1,t[2αt-1(1-β1,t)]-1⋅(θ,i*-θt,i)2v^t-1,i+ε+β1αt-1m^t-1,i22(1-β1)v^t-1,i+ε+αt2(1-β1)m^t,i2v^t,i+ε.由文献[9]中的引理10.4,对ft(θt)-ft(θ*)在i=1,2,…,d和t=1,2,…,T上累加求和,得出遗憾界满足R(T)≤∑i=1d12α1Φ1,i(1-β1)(θ1,i-θ,i*)2⋅v^1,i+ε+∑i=1d∑t=2T12(1-β1)(θt,i-θ,i*)2⋅v^t,i+εαtΦt,i-v^t-1,i+εαt-1Φt-1,i+(β1+1)αG∞(1-β1)1-β2(1-γ)2∑i=1dg1:T,i2+∑i=1d∑t=2Tβ1,t2αt(1-β1,t)(θ,i*-θt,i)2v^t,i+ε.根据假设,θn-θm2≤D,θn-θm∞≤D∞,m,n∈{1,2,…,T},得到R(T)≤D22α(1-β1)∑i=1d(v^T,i+ε)TΦ1,i+(1+β1)αG∞(1-β1)1-β2(1-γ)2∑i=1dg1:T,i2+D∞22α⋅∑i=1d∑t=1Tβ1,t1-β1,tt(v^t,i+ε)≤D22α(1-β1)⋅∑i=1d(v^T,i+ε)TΦ1,i+(β1+1)αG∞(1-β1)1-β2(1-γ)2⋅∑i=1dg1:T,i2+D∞2G∞1-β22α∑i=1d∑t=1Tβ1,t1-β1,tt. (11)在式(11)的最后一项中,有∑t=1Tβ1,t1-β1,tt≤∑t=1T11-β1λt-1t≤∑t=1T11-β1λt-1t≤1(1-β1)(1-λ)2.所以,遗憾界可以进一步表示为R(T)≤D22α(1-β1)∑i=1d(v^T,i+ε)TΦ1,i+(β1+1)αG∞(1-β1)1-β2(1-γ)2∑i=1dg1:T,i2+D∞2G∞1-β22α(1-β1)(1-λ)2≤D2α(1-β1)⋅∑i=1d(v^T,i+ε)T+(β1+1)αG∞(1-β1)1-β2(1-γ)2⋅∑i=1dg1:T,i2+∑i=1dD∞2G∞1-β22α(1-β1,t)(1-λ)2.推论1 设函数ft(θ)的梯度有界,即存在G和G∞,使得∇θft(θ)2≤G,∇θft(θ)∞≤G∞,θ∈Rd,并且由AngleAdam算法生成的任何θt之间的距离都是有界的,即存在D和D∞,使得θn-θm2≤D,θn-θm∞≤D∞,m,n∈{1,2,…,T},则AngleAdam算法对大于等于1的任意T有R(T)/T=Ο(1/T),因此limT→∞R(T)/T=0,即AngleAdam算法具有次线性的遗憾.3 实验及分析3.1 非凸函数实验建立三个非凸函数,应用SGDM[14],Adam,diffGrad,AdaBelief和AngleAdam算法对其进行优化,并对结果进行比较.三个非凸函数F1,F2和F3分别定义为:F1(x)=(x+0.3)2 (x≤0), (x-0.2)2+0.05 (x0);F2(x)=-40x-35.15 (x≤-0.9),x3+xsin(8x)+0.85 (x-0.9);F3(x)=x2 (x≤-0.5),0.75+x (-0.5x≤-0.4),-7x/8 (-0.4x≤0),7x/8 (0x≤0.4),0.75-x (0.4x≤0.5),x2 (x0.5).三个非凸函数的函数图如图2所示.图2(a)中有两个局部极小点,图2(b)和图2(c)中有三个局部极小点.实验中所有的优化算法都进行如下设置:β1=0.950,β2=0.999;m和v的初始值为0;学习率α=0.1.所有优化算法的迭代次数t=300,记录不同优化算法在测试函数上的收敛结果和误差.10.13245/j.hust.239004.F002图2构造的三个测试用非凸函数如图3和图4所示,在图2(a)所示的函数上,Adam和AdaBelief陷入了局部极小点,误差并不能收敛到零;在图2(b)所示的函数上,SGDM和10.13245/j.hust.239004.F003图3不同优化算法的收敛结果10.13245/j.hust.239004.F004图4不同优化算法的误差Adam陷入了局部极小点,误差不能收敛到零,而AngleAdam算法在两个函数上均达到了全局最优点,并且误差均收敛到零;在图2(c)所示的函数上,实验中所有的优化算法都收敛到全局最优点,误差皆收敛到零,但是AngleAdam算法在全局最优点附近震荡较小,且误差能够更快收敛到零.可见AngleAdam算法的收敛效果更好.3.2 深度神经网络实验在CIFAR10数据集上,将SGD,RMSProp,Adam,AdamW,diffGrad,AdaBelief,AMSGrad和AngleAdam算法应用于VGG16,ResNet18和ResNet34三个深度神经网络模型中,并对结果进行比较,如图5和图6所示.10.13245/j.hust.239004.F005图5不同优化算法在不同网络中的训练误差10.13245/j.hust.239004.F006图6不同优化算法在不同网络中的测试准确率实验中所有的优化算法都进行如下设置:β1=0.900,β2=0.999;m和v的初始值为0;学习率α=1×10-3.所有优化算法的迭代次数t=50,记录不同优化算法在不同深度神经网络上的训练误差和测试精度,并记录测试精度的最佳结果.由图5和图6可知:AngleAdam算法在三个不同的深度神经网络模型中的训练误差低于其他优化算法,而测试精度高于其他优化算法,可见其在训练误差和测试精度方面均取得了较好的结果.如表1所示,将这些优化算法应用于三个不同的深度神经网络中,通过比较不同优化算法的最佳测试精度可以看出:AngleAdam算法均稍高于其他优化算法,因此AngleAdam算法具有较好的优化性能.10.13245/j.hust.239004.T001表1不同优化算法的最佳测试精度优化算法VGG16ResNet18ResNet34SGD75.7966.9570.03RMSProp66.0274.3273.61Adam79.0780.6977.23AdamW78.8780.3277.85diffGrad78.7580.4776.89AdaBelief78.8781.8378.92AMSGrad78.4079.8576.22AngleAdam80.3482.8580.37注:加粗的数字为每列最优值.%综上所述,从非凸函数实验中可以看出:AngleAdam算法和其他优化算法相比,不易陷入局部极小点,且会更快收敛到全局最小点.从深度神经网络实验可以看出:AngleAdam算法在CIFAR10数据集上和其他优化算法相比,训练误差和测试精度均有更好的表现.4 结语本研究针对梯度下降类算法存在的全局收敛性较差的问题,利用连续梯度间的角度信息,动态调整学习率,提出AngleAdam算法,从而对梯度下降类算法的全局收敛性问题进行了一定程度改善,证明了AngleAdam算法具有次线性的遗憾.在构建的三个非凸函数和深度神经网络上,对AngleAdam算法的收敛能力和优化性能进行了实验,实验结果表明AngleAdam算法具有较好的全局收敛性和优化能力.
使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,
确定继续浏览么?
复制成功,请在其他浏览器进行阅读