为什么用残差连接??
随着深度网络层数的加深,带来了一系列问题,如梯度消失,梯度爆炸,模型容易过拟合,计算资源的消耗等问题。随着网络层数的增加发生了网络退化现象,loss先是下降并趋于饱和,然后loss增加。
针对这些问题,也有一些对应的解决方案,如dropout层用来防止过拟合,随机丢弃神经元对网络结构进行轻量化处理,一定程度上解决数据集小和网络复杂的情况下的过拟合问题。Rule层(y=max(0,x))主要用来防止梯度消失问题。。 BN(batch normlization)将数据规整到0到1或者-1到1之间,避免梯度爆炸和消失问题。但是在网络层数过深的情况下,这些优化措施的改善能力有限,因此提出了resnet网络中提出了残差连接思想来解决这些问题。。
残差连接的定义:
也就是输入和输入的非线性变化的叠加。x1=x+F(x,w)
残差块分为两部分,直接映射部分和残差部分。为weight代表卷积,addition代表单位加操作。
如果对函数求导,可以