1 背景
当DNN很深时,会增加计算资源消耗及模型过拟合,还会出现梯度消失或爆炸的问题。残差连接是一种解决深度学习中梯度消失或爆炸问题的有效方法。
网络退化
模型M层,最优模型K层,多出的 \(M-K\) 层会使得模型效果变差,表现为loss函数先下降并趋于稳定值而后再次上升
。
2 残差网络
\[ y = H(X) = F(X) + X \]
残差网络的一个残差块为 \(H(X)=F(X)+X\),其中 \(F(X)\) 是残差块残差,\(X\) 是残差块的跳跃连接。
2.1 信息递增
当深层网络在前向传播时,随网络加深,网络获得的信息会逐层递减,而通过 \(F(X)+X\) 的形式信息会呈现处逐层递增的趋势而不用担心信息丢失的问题。
当 \(x_{l+1}\) 与 \(x_{l}\) 的维度不一致时,则有:
\[ x_{l+1} = h(x_l)+F(x_l, w_l) \]
\(h(x_l)=W'x_l\),用于转换维度。
3 优势
残差网络为啥能解决梯度消失或爆炸问题呢?
3.1 解决梯度消失问题
上图可以看出:残差网络始终保留了原始信息,还增加了网络中的新获取的新知识。
上图中的<2>部分在经过中间权重矩阵的传递可能会变为0,但<1>部分可以绕过中间权重矩阵直接传递到 \(j\) 层,从而防止梯度消失的问题。
3.2 解决网络退化问题
相比于学习 \(H(X)=X\),学习 \(F(X)=0\) 是更容易实现的,尤其在 \(F(X)\) 中的激活函数选择relu
时就便更快能够学习到。