科普知识
ICML 是 International Conference on Machine Learning的缩写,即国际机器学习大会。ICML如今已发展为由国际机器学习学会(IMLS)主办的年度机器学习国际顶级会议。
# 前言
SEP.
在上一篇深度学习理论篇文章中我们在一次学习了具有深度代表性的网络-GoogLeNet,该网络通过提出的Inception模块构建了一个更深层次的网络。今天,我们将走进深度学习之深层网络中最具代表性的网络-ResNet网络,其与之前的网络结构有什么不同呢?该网络又为什么而提出呢?请看后文分解。
ResNet 网络
本次分享论文的标题是:Deep Residual Learning for Image Recognition,标题翻译过来的意思是:用于图像识别的深度残差学习。该网络一经提出就彻底刷新了计算机视觉领域对深层次网络的认知,随后在多个领域衍生出多个残差网络的变体,其深远的影响一直延续的到今天,有一种比较夸张的说法是:在图像识别领域,只知残差网络,却不知其他网络,虽然有点言过,但却反映出残差网络受到广大研究者的热捧。
论文截图:
论文地址:https://arxiv.org/pdf/1512.03385.pdf
1.残差网络提出的缘由
以上两图为之前的反向传播与梯度下降算法的推导过程,详细文章见:深度学习理论篇之 (五) -- 梯度下降算法的数学推导, 深度学习理论篇之 (七) -- 反向传播
对于残差网络的提出的缘由,作者在摘要开头就提出了,即当前越深的神经网络训练越困难,but why?之前我们不是说越深层次的网络提取到的特征越多,越深层,代表的信息越多吗?是的,通常来说的确是这样,但是,这句话要加一个限制,那就是在一定网络层数的范围内,这个范围多大呢?通常来说可以向之前的VGG网络和GoogLeNet网络看齐,这两个网络已经足够深了,如果再深下去,网络就可能无法训练了,为啥呢?这需要从梯度的角度去解释,还记得我们最开始的深度学习文章中分享的,网络参数的更新依赖于反向传播算法,而反向传播算法通常用梯度下降算法吗?那神经网络的深度和梯度下降算法有啥关系呢?我们知道,梯度下降算法是在整个网络中进行链式法则求导,问题就出现在这里,网络深度在一定范围内,链子法则完全没问题,但是随着网络深度的增加,链式法则的连乘项就越多,而这些梯度值(连乘项)很多情况下都是浮点数,越来越多的乘法会导致最后得到的梯度值很小很小,以至于到最后梯度为0,也就出现了梯度消失的情况,当出现梯度消失的时候,根据梯度下降公式,上一次梯度为0,则当前梯度的值不变,由此网络参数不再更新,也就无法进行下一步训练了。因此,随着网络深度的加深,导致出现了梯度消失的问题,由此,越深的网络训练越难,这通常可以解释为残差网络提出的原因。
2.网络结构
上图为文章中提出的残差学习快,也是残差网络的基本模块,仔细观察发现与之前的网络有啥不一样吗?其实很简单,就是多了一个跳跃式连接,将输入端直接与输出端连接,这一点看似简单,却仅有凯明何大神提出来了,研究领域中往往最经典的地方往往是最容易让人忽略的。普通网络在多了一步与输入x的相加后有两个好处:
高层信息融合了低层信息,使得特征表达更加丰富。
由于输入x的出现,使得在进行反向传播的时候,梯度下降算法中始终会会多一项对当前的x的求导,这使得梯度永远不会出现很小的情况,也就解决了梯度消失的问题,进而更深层次的网络可以得到训练。
论文中的网络结构配置:从18层--152层
其中一个例子:32层残差网络结构
由于基本的残差块比较简单,我们就不仔细讲解每一层的结构了,在实战分享的时候,我们再来详细解读。
END
结语
本期的分享到此结束了,残差网络的出现引领了深度学习的进程,这也在一定程度上指引我们,更好的解决办法并不是更难的,也许很小的一个改动就会出现更大的改进,这需要我们从基本的原理出发,如此才能走得更远。
下期,我们实战见!
编辑:玥怡居士|审核:小圈圈居士
IT进阶之旅
往期回顾
深度学习理论篇之 ( 十六) -- GoogLeNet之再探深度之谜
深度学习理论篇之 ( 十四) -- AlexNet之更上一楼
过去的一年,我们都做了啥:
点个"赞"再走吧~