当类似VGG结构的网络层数过深的时候会产生退化,如下图所示,56层的网络效果要比20层的差,ResNet的提出就是解决退化问题,继续加深网络层数。
ResNet的基本思想是将原来一层一层堆叠在一起的网络结构变换成一种新的结构,这个结构如下所示
右部的含义是直接将输入按照原样映射到输出,左部分就和VGG一样是堆叠的卷积层等,新的网络结构可以这样去理解,假设原来的网络不包含左部分,仅包含右部分,这可以理解为一个较浅的网络,这个时候加入右部分,整个网络的深度可以认为“没有加深”,而是在右部分直接映射的基础上增加了学习能力(因为网络参数更多,可以认为学习到了更多的信息),这样左右结合网络的学习能力就不会比仅有右部分的网络差。
这同样也可以换一个角度,用公式化的方式去理解,假设我们需要上述左右结合网络将输入x映射为H(x),右部分是直接映射为x,那么左部分需要映射的值为F(x)=H(x)-x,作者认为通过训练网络学习残差F(x)要比学习H(x)简单,通过一个极端的例子,假如我们需要学习的H(x)就是输入到输出直接映射( H(x)=x ),那么左部分堆叠的网络层可以直接置0( F(x)=0 ),如果需要这种堆叠的网络层去学习直接映射的话是很困难的,因为激活函数会导致非线性(sigmoid激活函数)。
作者在数据集上做了测试,测试结果验证了实验假设,残差网络确实是一种更有效的假设。
相关文章
- 03-28ResNet 残差神经网络
- 03-28残差网络(Residual Network),残差连接(skip-connect)
- 03-28ResNet残差网络Pytorch实现——对花的种类进行训练
- 03-28Tensorflow 残差网络ResNet
- 03-28大幅减少GPU显存占用:可逆残差网络The Reversible Residual Network
- 03-28《动手学深度学习》Task06-1:批量归一化和残差网络
- 03-28《动手学深度学习》Task06 :批量归一化和残差网络;凸优化;梯度下降
- 03-28深度残差网络+自适应参数化ReLU激活函数(调参记录19)Cifar10~93.96%
- 03-28深度学习原理与框架-神经网络架构 1.神经网络构架 2.激活函数(sigmoid和relu) 3.图片预处理(减去均值和除标准差) 4.dropout(防止过拟合操作)
- 03-28深度残差网络+自适应参数化ReLU激活函数(调参记录10)