训练深层神经网络时,如果深度特别大,其实是很难训练下去的,因为会遇到梯度消失和梯度爆炸的问题。残差网络可以帮助我们更好地训练深层神经网络。
一、残差块
在神经网络的两层中,会执行如下运算过程(主路径)
如果将拷贝到最后一个linear之后,ReLU之前,这个路径称作是捷径(shortcut):
有时候这个捷径(shortcut)也称作远跳连接(skip connection)
通过这种方式,计算过程有一些改变,如下所示。
二、残差神经网络
首先给出一个普通神经网络
要使它变成残差神经网络,就是加上远跳连接。
每两层增加一个捷径,构成一个残差块,残差块组合在一起形成一个残差网络。
残差神经网络在训练深层神经网络时,有效预防了梯度爆炸/消失的问题,也解决了网络结构臃肿的问题,相比普通神经网络效果更佳。
三、为什么残差网络如此有效?
权重w和偏差b都取0的时候,,这种恒等式不会影响到网络的效率,通过那两层还可以学习到一些特征信息,反倒可以提高网络效率。
值得注意的是和应该具有相同的维度才能实现加法运算!在ResNet中使用了许多same卷积方式,所以使得维度可以等于输出的维度,从而实现了远跳连接。
四、残差网络作图像识别
普通神经网络
残差神经网络
每两层卷积就添加一个捷径形成一个残差块,从而形成一个大型的残差网络。由于大量使用了same卷积方式,所以维度得以保留,从而实现远跳连接中的同纬度相加过程。