卷积神经网络之残差网络ResNet详解
理论上,在网络中添加新的层得到的新模型可能会更好地拟合训练数据集,因此添加层似乎更容易降低训练误差。然而在事件中,添加过多的层后训练误差反而会升高。针对这一问题,何凯明团队于2015年提出了残差网络(ResNet)在一定程度上解决了这一问题。
残差块
如下图所示,输入为x,理想映射为f(x)。
左图需要直接拟合出该映射f(x),右图则需要拟合出残差映射f(x)-x。残差映射在实际中往往更容易优化。
右图是ResNet的基础块(残差块Residual block)。残差块中,输入可通过跨层的数据线路更快向前传播。
残差块的组成:
两个有相同输出通道的卷积层,将输入跳过这两个卷积运算后直接加在最后的Relu前。
现在我们会得到一个H(x)=f(x)+x,我们需要f(x)=H(x)-x,
通过训练参数,得到H(x)-x,即残差,这样要比学习H(x)简单得多。
瓶颈(BottleNeck)模块