Deep Residual Learning for Image Recognition
研究动机

如上图所示,单纯的堆叠卷积层有时候并不能取得更好的效果,比如上图中56层的卷积网络比20层的卷积网络在训练集和测试集上的error更多了。
因为梯度消失和梯度爆炸的原因,阻碍了网络的收敛,该问题通过加入了中间层的正则化有所缓解,但是随着网络的深入,导至网络不按照预期进行收敛。并且该问题不是因为网络的过拟合产生的,仅仅堆叠网络层数并不能解决。
作者提出了残差网络,来解决该问题。
网络模型
残差模块
假设网络学习的拟合目标是。我们改变非线性层转而去拟合一个新的函数:。
原始的映射。相比于原始的映射,这种新的映射更容易去学习。
因为残差的引入,导至随着网络的叠加,深层的网络不会出现梯度过小而产生的训练不动的问题。
模块实现

如上图所示,残差模块实际上就是在input进入前,引一条边到output,进行相加,这个操作叫做Shortcut Connections。
实线的连接表示的是两个层之间的通道数相同,虚线连接表示的是两层之间通道数不同。该通道数可以通过的卷积核来处理。
左图在论文中成为BasicBlock,右图称为Bottleneck,通过有图这种通道数的变换,可以有效的降低运算复杂度。
卷积核可以参考该文章 残差网络(Deep Residual Learning for Image Recognition)
代码
先摸了