ResNet(Residual Neural Network)
一. 简要概括
ResNet的结构可以极快的加速神经网络的训练,模型的准确率也有比较大的提升。同时ResNe的推广性非常好,甚至可以直接用到InceptionNet网络中
ResNet的主要思想是在网络中增加了直连通道,即Highway Network的思想。此前的网络结构是性能输入做一个非线性变换,而Highway Network则允许保留之前网络层的一定比例的输出。ResNet的思想和way Network的思想也十分类似,允许原始输入信息直接传到后面的层中:
这样的话这一层的神经网络可以不用学习整个的输出,而是学习上一个网络输出的残差,因此ResNet又叫做残差网络
二. 创新点
提出残差学习的思想。传统的卷积网络或者全连接网络在信息传递的时候或多或少会存在信息丢失,损耗等问题,同时还有导致梯度消失或者梯度爆炸,导致很深的网络无法训练。ResNet在一定程度上解决了这个问题,通过直接将输入信息绕道传到输出,保护信息的完整性,整个网络只需要学习输入、输出差别的那一部分,简化学习目标和难度。VGGNet和ResNet的对比:
ResNet最大的区别在于有很多的旁路将输入直接连接到后面的层,这种结构也被称为shortcut或者skip connection
三. 深度残差学习(Deep Residual Learning)
残差学习
若将输入设为x,将某一有参网络层设为H,那么以X为输入的此层的输出将为H(X)。一般的CNN网络如Alexnet/VGG等会直接通过训练学习出参数函数H的表达,从而直接学习 X -> H(X)
而残差学习则是致力于使用多个有参网络层来学习输入、输出之间的残差,即H(X) - X,即学习 X -> (H(X) - X) + X。其中X这一部分为直接的Identity mapping,而H(X) - X则为有参网络层要学习的输入输出间残差。
Identity mapping
残差学习单元通过Identity mapping的引入在输入、输出之间建立了一条直接的关联通道,从而使得强大的有参层集中精力学习输入、输出之间的残差。一般我们用 来表示残差映射,那么输出即为: 。 当输入、输出通道数相同时,我们自然可以如此直接使用X进行相加。而当他们之间的通道数目不同时,我们就需要考虑建立一种有效的Identity mapping函数从而可以使得处理后的输入X与输出Y的通道数目相同即 。
当X与Y通道数目不同时,作者尝试了两种Identity mapping的方式。一种即简单地将X相对Y确实的通道直接补零从而时期能够相对器的方式,另一种则是通过使用1 * 1的conv来表示 映射从而使得最终输入与输出的通道达到一致的方式。