一种改进的带有动量的随机梯度下降优化算法
2024-07-01黄建勇周跃进
黄建勇 周跃进
【摘 要】 带有动量的随机梯度下降(SGDM)优化算法是目前卷积神经网络(CNNs)训练中最常用的算法之一。然而,随着神经网络模型的复杂化,利用SGDM算法去训练神经网络模型所需时间越来越长,因此,改进SGDM算法的收敛性能是十分必要的。在SGDM算法的基础上,提出了一种新算法SGDMNorm。新算法利用历史迭代的梯度范数对梯度进行校正,在一定程度上提高了SGDM算法的收敛速度。从收敛性的角度对该算法进行分析,证明了SGDMNorm算法具有[O(T)]悔界。通过数值模拟实验和CIFAR-10图片分类应用,表明SGDMNorm算法收敛速度比SGDM算法更快。
【关键词】 梯度下降算法;神经网络;梯度范数;分类
An Improved Stochastic Gradient Descent
Optimization Algorithm with Momentum
Huang Jianyong,Zhou Yuejin*
(Anhui University of Science and Technology, Huainan 232001, China)
【Abstract】 Stochastic gradient descent optimization algorithm with momentum (SGDM) is currently one of the most commonly used optimization algorithms for training convolutional neural networks (CNNs). However, as neural network models become more complex, the time which needs to train them by using the SGDM algorithm also increases. Therefore, it is very necessary to improve the convergence performance of SGDM algorithm. In this paper, we propose a new algorithm called SGDMNorm based on the SGDM algorithm. The new algorithm corrects gradients by using the gradient norm of historical iterations, which improves the convergence speed of the SGDM algorithm. Then, we analyze the algorithm from the perspective of convergence and prove that the SGDMNorm algorithm has a regret bound of [O(T)]. Finally, the numerical simulations and CIFAR-10 image classification applications demonstrate that the SGDMNorm algorithm converges faster than the SGDM algorithm.
【Key words】 gradient descent algorithm; neural networks; gradient norm; classification
〔中图分类号〕 TP183 〔文献标识码〕 A 〔文章编号〕 1674 - 3229(2024)02- 0036 - 09
[收稿日期] 2024-01-08
[基金项目] 深部煤矿采动响应与灾害防控国家重点实验室基金资助项目(SKLMRDPC22KF03)
[作者简介] 黄建勇(1999- ),男,安徽理工大学数学与大数据学院硕士研究生,研究方向:统计机器学习。
[通讯作者] 周跃进(1977- ),男,博士,安徽理工大学数学与大数据学院教授,研究方向:统计机器学习、因果推断。
0 引言
近年来,卷积神经网络(Convolutional Neural Networks,CNNs)已经成为解决计算机视觉问题的主要参数模型[1-3]。然而,随着数据集的增大和神经网络层数的增加,模型的训练愈发困难。所以研究一个收敛性能较好的神经网络模型优化算法尤其重要。CNNs模型通常使用基于小批量样本批处理的随机梯度下降(Stochastic Gradient Descent,SGD)优化算法进行训练。利用SGD算法训练神经网络模型具有操作简单、占用计算机内存小等优点。但是,SGD算法也有缺点,其参数更新仅受当前随机抽取的小批量样本的平均梯度影响[4]。若其中某些样本特性差异较大,参数更新方向可能会不一致,导致在实际应用中SGD优化算法收敛速度慢。
为了改进上述SGD算法,很多基于SGD的优化算法先后被提出。根据是否使用自适应学习率,可以将这些改进的优化算法分为两类。第一类是非自适应学习率优化算法,即所有参数的更新使用同一个学习率。其中,SGDM(SGD with Momentum)优化算法利用每个小批量样本平均梯度的指数滑动平均来更新参数,有效改进了SGD优化算法收敛速度慢、在局部最小值和鞍点处不更新的问题[5]。此外,袁炜和胡飞在SGDM算法的基础上,提出了RSGDM(Rectified SGDM)优化算法,该算法利用差分估计项来修正SGDM算法中一阶动量的偏差和滞后性[6]。第二类是自适应学习率优化算法,即不同参数使用不同的学习率。例如Adam(Adaptive Moment Estimation)优化算法结合了SGDM和RMSProp(Root Mean Square Propogation)的思想,利用一阶动量来更新参数、二阶动量来控制学习率[7]。由于Adam算法较其他算法而言,收敛速度更快,目前已被广泛用于不同的神经网络模型,来解决不同的计算机视觉问题。但是,在实际应用时该算法大多只能收敛到局部最优值点。为了解决该问题,Radam(Rectified Adam)优化算法根据方差分散度,动态地打开或关闭自适应学习率,在一定程度上缓解了Adam优化算法收敛到局部最优解的问题[8]。
目前,很多神经网络模型使用第二类自适应学习率优化算法进行训练。虽然这类算法在训练集上的收敛速度较快,但是在测试集上准确率较差,泛化能力不如SGDM[9-10]。SGDM算法较这些自适应优化算法而言,最大的缺陷是在训练集上收敛速度较慢。因此,本文在SGDM算法的基础上,利用历史迭代的梯度范数对当前梯度进行校正。经过校正,可以有效提高SGDM算法在训练集上的收敛速度。
1 SGDMNorm算法
在基于小批量样本处理的SGDM算法中,首先随机抽取一批样本并计算其平均梯度,即:
[gt=1Bb=1B θtf(xb,θt)], (1)
其中[x1,x2,...,xB]表示在迭代训练中抽取的小批量样本;[B]表示抽取的小批量样本数; [θt]表示第[t]次迭代训练时的模型参数;[?] 表示在[θt]处的梯度;[gt]表示第[t]次迭代训练时小批量样本的平均梯度。
然后,利用平均梯度的指数滑动平均计算动量,即:
[mt=βtmt-1+(1-βt)gt] (2)
其中[mt]是第[t]次迭代训练时的动量,其初始值[m0=0];[βt∈[0,1)]是指数衰减率(一般设为0.9)。
最后,对参数进行更新,即:
[θt+1=θt-αtmt] (3)
其中[αt]表示第[t]次更新参数时所用步长,也称为学习率。
本文所提的SGDMNorm算法在SGDM算法的基础上增加了一个梯度校正项,具体如下所示。首先,计算[gt]的[l2]范数,即:
[gt,norm=i=1kg2t,i] (4)
其中[gt,norm]表示[gt]的[l2]范数;[gt,i]表示[gt]的第[i]个元素;[k]表示向量[gt]中的元素个数。
然后,利用历史梯度范数对当前梯度进行校正,即:
[et=γet-1+(1-γ)gt,norm] (5)
[st=(etgt,norm+ε)ηtgt,if et>gt,normgt ,otherwise] (6)
其中[et]表示第[t]次迭代训练时的历史梯度范数,其初始值[e0=0];[st]表示校正后的梯度; [ηt∈1,2]是参数,随迭代训练次数衰减,默认取[ηt=(1+1t)];[γ∈0,1]是参数,根据经验,[γ]取值为0.95时效果比较好;[ε]是一个任意小的正数,使得[gt,norm+ε≠0]。
以某一函数为例,该函数图像如图1所示,可以看出在A和C点附近梯度及其[l2]范数都比较大;在B和D点附近梯度及其[l2]范数都比较小。因此,根据本文所提出的梯度校正方法,B和D点附近参数将会使用更大的梯度进行更新,从而更快收敛到最小值点。
SGDMNorm算法具体实现步骤如下:
步骤1 选择超参数:[αt=0.01](学习率),[βt=0.9],[γ=0.95],[ηt=(1+1t)],[ε=10-16]。
步骤2 模型初始化:[m0←0],[e0←0],[t←0],[θ0]。
步骤3 判断是否满足终止条件,不满足条件重复执行步骤4-10,满足则输出[θt+1]。
步骤4 更新迭代次数:[t←t+1]。
步骤5 计算平均梯度:[gt=1Bb=1B? f(xb,θt)]。
步骤6 计算当前梯度范数:[gt,norm=i=1kg2t,i]。
步骤7 更新历史梯度范数:[et=γet-1+(1-γ)gt,norm。]
步骤8 判断是否进行梯度校正:
[st=(etgt,norm+ε)ηtgt,if et>gt,normgt ,otherwise]。
步骤9 更新动量:[mt=βtmt-1+(1-βt)st]。
步骤10 更新参数:[θt+1=θt-αtmt]。
2 SGDMNorm算法收敛性分析
利用Zinkevich提出的在线学习框架分析SGDMNorm算法的收敛性[11]。假设任意未知的凸损失函数序列[f1(θ),f2(θ),...,fT(θ)],目的是预测每次迭代(第[t]步)的参数[θt],[t=1,2,...,T],并计算在该点处的函数[ft(θt)]。对于此类未知的凸损失函数序列,算法可基于悔界进行分析计算。从解空间[χ]中计算一个在线猜测损失函数[ft(θt)]和一个期望损失函数[ft(θ*)],其中
[θ*=argminθ∈χt=1Tft(θ)]
并计算二者之间的误差,悔界的定义为误差的总和,其表达式如下所示
[R(T)=t=1T(ft(θt)-ft(θ*))]
在这种情况下,可以证明SGDMNorm算法的悔界为[O(T)]。
定理1 假设函数[ft]的梯度有界且由SGDMNorm算法生成的任意点[θt]之间的距离有界,即对[?θ∈Rd],有[?ft(θ)2≤G], [?ft(θ)∞≤G∞];且对[?m,n∈1,2,...,T],有[θm-θn2≤D2],[θm-θn∞≤D∞]。令[αt=αt],[βt=βt],则有[R(T)≤D2∞2(1-β1)i=1d1αT+KG∞D∞1-β1][i=1dt=1Tβt+]
[K2G2∞2(1-β1)i=1dt=1Tαt]。
证明:由文献[7]中引理10.2有
[ft(θt)-ft(θ*)≤(gTt,θt-θ*)=i=1dgt,i(θt,i-θ*i)],
其中[gt,i]是[θ]的第[i]个元素在第[t]次迭代训练时的梯度。
根据算法1的更新规则有
[θt+1=θt-αtmt=θt-αt[βtmt-1+(1-βt)st)] 。]
根据梯度校正规则,可以得到
[et=γet-1+(1-γ)gt,norm =γ[γet-2+(1-γ)gt-1,norm]+(1-γ)gt,norm =j=1t(1-γ)γt-jgj,norm 。]
根据梯度有界假设,经过放缩后得到[et≤(1-γt)G≤G]。
令[lt=(etgt,norm+ε)ηt,if et>gt,norm1 ,otherwise]。因为[gt,norm≤G],[1≤ηt≤2],均是有界量,所以[lt]有界。假设上界为[K],由此可得[1≤lt≤K]。
将参数向量[θt+1]第[i]个元素与[θ*]的第[i]个元素做差,并平方可得
[(θt+1,i-θ*i)2=(θt,i-θ*i)2-2αt[βtmt-1,i+(1-βt)st,i](θt,i-θ*i)][+α2tm2t,i],
其中[mt,i]是[mt]的第[i]个元素在第[t]次迭代训练时的动量。
因为[st,i=ltgt,i],所以上式可以表示成
[(θt+1,i-θ*i)2=(θt,i-θ*i)2-2αt[βtmt-1,i+(1-βt)ltgt,i](θt,i-θ*i)][+α2tm2t,i],
将上式整理后,得到[gt,i(θt,i-θ*i)=]
[(θt,i-θ*i)2-(θt+1,i-θ*i)22αt(1-βt)lt+βtmt-1,i(θt,i-θ*i)(1-βt)lt+][αtm2t,i2(1-βt)lt]。
对[ft(θt)-ft(θ*)]在[i∈1,...,d]的上界在[t=1,2,...,T]的累加求和,得出悔界满足
[R(T)≤i=1dt=1T(θt,i-θ*i)2-(θt+1,i-θ*i)22αt(1-βt)lt+] [i=1dt=1Tβtmt-1,i(θt,i-θ*i)(1-βt)lt][+i=1dt=1Tαtm2t,i2(1-βt)lt] (7)
接下来依次对上式右边三个单项式分别进行放缩。
1)首先对(7)式中的第一个单项式放缩,因为[lt≥1],[β1>βT]所以有
[i=1dt=1T(θt,i-θ*i)2-(θt+1,i-θ*i)22αt(1-βt)lt≤i=1dt=1T(θt,i-θ*i)2-(θt+1,i-θ*i)22αt(1-βt)≤i=1dt=1T(θt,i-θ*i)2-(θt+1,i-θ*i)22αt(1-β1), ]
接着使用错位相减进行放缩,得到
[i=1dt=1T(θt,i-θ*i)2-(θt+1,i-θ*i)22αt(1-β1)=i=1dt=1T(θt,i-θ*i)22αt(1-β1)-t=1T(θt+1,i-θ*i)22αt(1-β1)]
[=i=1d[(θ1,i-θ*i)22α1(1-β1)+t=1T-1((θt+1,i-θ*i)22αt+1(1-β1)-(θt+1,i-θ*i)22αt(1-β1))-(θT+1,i-θ*i)22αT(1-β1)]≤i=1d[D2∞2α1(1-β1)+D2∞1-β1t=1T-1(12αt+1-12αt)]=D2∞i=1d12αT(1-β1)=D2∞2(1-β1)i=1d1αT 。]
在对第二和第三个单项式放缩前,首先对[mt,i]进行放缩,根据[mt,i]的更新方式可以得到
[mt,i=βtmt-1,i+(1-βt)st,i=βt[βt-1mt-2,i+(1-βt-1)st-1,i]+(1-βt)st,i=k=1t(1-βk)sk,ij=k+1tβj ],
根据[lt≤K]和梯度有界假设,显然[sk,i≤KG∞],所以可得
[mt,i≤k=1t(1-βk)KG∞j=k+1tβj=KG∞(1-k=1tβk)≤KG∞]。
2)然后对(7)式中第二个单项式放缩,根据[lt≥1]和[β1>βT]可得
[i=1dt=1Tβtmt-1,i(θt,i-θ*i)(1-βt)lt≤i=1dt=1Tβtmt-1,i(θt,i-θ*i)1-βt≤i=1dt=1Tβtmt-1,i(θt,i-θ*i)1-β1≤KG∞D∞1-β1i=1dt=1Tβt。 ]
3)最后对(7)式中第三个单项式放缩,根据[lt≥1]和[β1>βT]可得
[i=1dt=1Tαtm2t,i2(1-βt)lt≤i=1dt=1Tαtm2t,i2(1-βt)≤i=1dt=1Tαtm2t,i2(1-β1)=K2G2∞2(1-β1)i=1dt=1Tαt , ]
最终经过整理后得到
[R(T)≤D2∞2(1-β1)i=1d1αT+KG∞D∞1-β1i=1dt=1Tβt+K2G2∞2(1-β1)i=1dt=1Tαt]。
推论1 假设函数[ft]的梯度有界且由SGDMNorm算法生成的任意点[θt]之间的距离有界,即对[?θ∈Rd],有[?ft(θ)2≤G],[?ft(θ)∞≤G∞];且对[?m,n∈1,2,...,T],有[θm-θn2≤D2],[θm-θn∞≤D∞]。若假设成立,则SGDMNorm算法对[?T≥1]有[R(T)T=O(1T)],因此,[limT→∞R(T)T=0]。
3 仿真实验
下面通过仿真实验来验证SGDNorm算法的收敛性能。首先基于python语言sklearn库中的make_classification函数生成一个分类数据集,类别数是10个。数据集共有40 000个数据,每个数据均有32个特征。make_classification函数中具体参数设置如表1所示,表中未出现参数均使用默认参数。
基于pytorch深度学习框架,搭建如表2所示的5层全连接神经网络模型,将SGDM算法与SGDMNorm算法在该模型上进行实验对比。其中激活函数均使用Relu,学习率设为0.001,批样本量设为256,其余参数使用前文默认参数,迭代训练1580次。每迭代训练一次就计算一次损失函数值,并在训练集上计算一次准确率。最后绘制出训练损失和准确率曲线,如图2所示。
图2(a)是训练损失曲线,横轴表示迭代次数,纵轴表示损失函数值。可以看出两种优化算法的损失曲线几乎重合,都有较大波动性。图2(b)是训练准确率曲线,横轴表示迭代次数,纵轴表示训练准确率。可以看出在迭代400次后,SGDMNorm算法的训练准确率开始高于SGDM算法,直到训练结束,而且很明显SGDMNorm算法的训练准确率比SGDM算法更稳定,波动程度较小。所以,SGDMNorm算法收敛速度比SGDM算法快。
4 实例应用
为了进一步探究SGDMNorm优化算法在实际应用中的有效性,以及学习率和小批量样本数的大小对该算法的影响,通过CIFAR-10图片分类应用比较SGDMNorm算法与SGDM算法的性能。
4.1 数据集介绍
本文实验所使用的数据集是CIFAR-10数据集。该数据集共有10个不同类别的6万张RGB彩色图像(图片尺寸为32×32×3),其中有飞机、轮船、猫、狗和鸟类等。每个类别各有6000张RGB图像,每个类别中取出5000张作为训练集(共50 000张),余下1000张作为测试集(共10 000张)。
4.2 模型设计
VGG16卷积神经网络模型共包括13个卷积层、5个池化层以及3个全连接层。整个网络均采用宽高尺寸为3×3的小卷积核来提取特征,激活函数均使用Relu[12]。本文在VGG16卷积神经网络模型的基础上,使用pytorch框架,基于CIFAR-10数据集搭建了以下两种不同的模型。
模型1是轻量化模型,采用了5个卷积层、5个池化层以及3个全连接层。整个网络全部使用宽高尺寸为3×3的小卷积核来提取特征,激活函数均使用Relu。模型如图3所示。
模型2则是一个较为复杂的模型,卷积层和池化层均和标准VGG16模型一样,即13个卷积层和5个池化层,全连接层则只有一层,激活函数均使用Relu。模型如图4所示。
4.3 实验结果与结论
为了探究不同学习率和小批量样本数对SGDMNorm算法的影响,以及该算法在不同神经网络模型中的适用性,设置以下两组对比实验。
(1)实验1(探究不同小批量样本数对SGDMNorm算法的影响):将小批量样本数分别设为64、128和256,学习率均设为0.001,指数衰减率均设为0.9,其他参数均使用前文所提默认值,分别迭代训练780次,使用模型1进行实验。
(2)实验2(探究不同学习率对SGDMNorm算法的影响):将学习率分别设为0.001、0.005和0.01,小批量样本数均设为256,指数衰减率均设为0.9,其他参数均使用前文所提默认值,分别迭代训练980次,使用模型2进行实验。
通过以上两组实验的设计,对SGDMNorm算法和SGDM算法进行实验对比。每迭代训练一次就计算一次损失函数值,并在训练集上计算一次准确率,绘制出训练损失和准确率曲线,如图5-8所示。训练结束后,在测试集进行上测试,测试准确率在表3中给出。
图5给出了不同小批量样本数的训练损失曲线,a、b、c三个子图分别对应小批量样本数为64、128和256时的训练数据,横轴均表示迭代次数,纵轴均表示损失函数值。从a、b、c三图可以看出两种算法的损失函数值收敛速度大体相同。但是,很明显SGDMNorm算法的损失函数值的波动性更小、更稳定。
图6给出了不同小批量样本数的训练准确率曲线,a、b、c三个子图分别对应小批量样本数为64、128和256时的训练数据,横轴均表示迭代次数,纵轴均表示训练准确率。对于a图,可以看出在迭代50次后,SGDMNorm算法的训练准确率开始高于SGDM算法,直到训练结束。对于b和c图,可以看出在整个迭代训练过程中,两种算法的收敛速度差不多,但是,SGDMNorm算法的训练准确率大多时候略优于SGDM算法。总的来说,在不同小批量样本数下,都是SGDMNorm算法准确率更高、收敛速度更快且稳定性更好。此外,可以看出较SGDM算法而言,SGDMNorm算法可以有效避免样本数过小而导致的模型训练过程中的不稳定。
图7给出了不同学习率的训练损失曲线,a、b、c三个子图分别对应学习率为0.001、0.005和0.01时的训练数据,横轴均表示迭代次数,纵轴均表示损失函数值。从a和b图可以看出,对于较小的学习率,两种算法的训练损失函数值收敛速度大体相同,两种算法的损失曲线几乎重合。从c图可以看出,对于较大的学习率,SGDMNorm算法损失函数值收敛速度略快于SGDM算法,且波动性较小。
图8给出了不同学习率的训练准确率曲线,a、b、c三个子图分别对应学习率为0.001、0.005和0.01时的训练数据,横轴均表示迭代次数,纵轴均表示训练准确率。对于a图,可以看出两种算法的训练准确率曲线在整个迭代训练过程几乎重合。对于b图,可以看出在迭代200次前,SGDMNorm算法的训练准确率和SGDM算法相差不大;在迭代200次后,SGDMNorm算法的训练准确率略高于SGDM算法;在迭代900次后,两种算法收敛速度几乎相同。对于c图,可以看出在迭代50次后,SGDMNorm算法训练准确率开始高于SGDM算法,直到训练结束,而且很明显SGDMNorm算法的稳定性更好,准确率曲线波动性更小。总的来说,可以看出在学习率较大的情况下,两种算法的差距较为明显,SGDMNorm算法的优化性能比SGDM算法的优化性能更好,在训练过程中的波动性更小。在学习率较小的情况下,两种算法差距较小,优化性能几乎相同。
表3给出了两种优化算法在CIFAR-10测试集上的测试准确率。通过实验1可以看出在同一学习率、不同小批量样本数的条件下,都是SGDMNorm算法测试准确率更高。在小批量样本数为64的情况下,两种算法的测试准确率差距最大,SGDMNorm算法测试准确率比SGDM算法提高了1.44个百分点。通过实验2可以看出在不同学习率、相同小批量样本数的条件下,两种算法测试准确率差距不大。当学习率较小时,SGDMNorm算法测试准确率略高于SGDM算法。当学习率较大时,SGDMNorm算法可能有过拟合的风险,导致其测试准确率稍低于SGDM算法。
5 结语
近年来,面对越来越多且越来越复杂的数据,深度神经网络模型因其良好的数据处理能力引起学界的广泛关注。但是,随着数据集的增大、神经网络模型层数的增加以及模型的不断复杂化,高效快速地训练一个高精度的模型变得愈发困难。因此一个好的优化算法对模型的训练有着至关重要的作用。首先,本文在SGDM算法的基础上,利用历史迭代的梯度范数对梯度进行校正,提出了SGDMNorm算法。其次,证明了SGDMNorm优化算法具有[O(T)]悔界。再次,在CIFAR-10数据集上进行图像分类实验,实验结果进一步表明SGDMNorm算法具有更好的收敛性能。在未来,也可将这种基于历史梯度范数对梯度进行校正的思想应用到一些自适应梯度下降优化算法中。
[参考文献]
[1] Lecun Y,Bengio Y,Hinton G. Deep learning [J]. Nature,2015,521(7553):436-444.
[2] Jaffeux L,Schwarzenb?ck A,Coutris P,et al. Ice crystal images from optical array probes: classification with convolutional neural networks[J]. Atmospheric Measurement Techniques,2022,15(17):5141-5157.
[3]Ren S,He K,Girshick R,et al. Faster r-cnn: towards real-time object detection with region proposal networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,2017,39(6):1137-1149.
[4] Bottou L. Large-scale machine learning with stochastic gradient descent[A]. Peter M. The Nineteenth International Conference on Computational Statistics[C]. Amsterdam:Elsevier Press,2010:177-186.
[5] Qian N. On the momentum term in gradient descent learning algorithms[J]. Neural Networks the Official Journal of the International Neural Network Society,1999,12(1):145-151.
[6] 袁炜,胡飞.基于差分修正的SGDM算法[J].计算机系统应用,2021,30(7):220-224.
[7] Kingma D P,Ba J. Adam: a method for stochastic optimization[A]. Bengio Y. The third International Conference on Learning Representations[C]. London:Academic Press,2015:1142-1156.
[8] Liu L,Jiang H,He P,et al. On the variance of the adaptive learning rate and beyond[A]. Lecun Y. The Eighth International Conference for Learing Repre sentations[C]. London:Academic Press,2020:1358-1371.
[9] 姜志侠,宋佳帅,刘宇宁.一种改进的自适应动量梯度下降算法[J].华中科技大学学报(自然科学版),2023,51(5):137-143.
[10] Dubey S R,Chakraborty S,Roy S K,et al. Diffgrad: an optimization method for convolutional neural networks[J]. IEEE Transactions on Neural Networks and Learning Systems,2019,19(31):4500-4511.
[11] Zinkevich M. Online convex programming and generalized infinitesimal gradient ascent[A]. Tom F. The Twentieth International Conference on Machine Learning[C]. Menlo Park:Association for the Advancement of Artificial Intelligence Press,2003:928-936.
[12] Simonyan K,Zisserman A. Very deep convolutional networks for large-scale image recognition[A]. Bengio Y. The Third International Conference on Learning Representations[C]. London:Academic Press,2015:637-649.