引言
在VGG中,随着网络层数的增多,往往伴随着以下几个问题:
- 计算资源的消耗(通过增加GPU来解决)
- 模型容易过拟合(采集海量数据,使用dropout正则化)
- 产生梯度消失和梯度爆炸(使用batch norm)
但是这些方法并不一定总是能解决问题。
从信息论的角度来看,由于DPI(数据处理不等式)的存在,在前向传输的过程中,随着层数的加深,特征图包含的图像信息会越来越少,而resnet的直接映射的加入,保证了层的网络包含的信息一定比第
层的多。
残差网络
残差块
残差块的结构如下图所示。
![](https://img.haomeiwen.com/i15100264/dc3278459e2da35c.png)
一个残差块可以表示为:
由两个部分组成:直接映射和残差部分。
对于残差块更一般的表示:
- 假设1:
是直接映射
- 假设2:
是直接映射
则残差块可以表示为
-
层可以表示为任意一个比它浅的层和他们之间残差部分的和;
-
损失函数关于
的梯度为
- 在整个训练过程中,
不可能一直为-1,所以残差网络中一般不会出现梯度消失的问题
-
表示L层的梯度可以直接传递到任何一个比它浅的层。
因此,在假设1和假设2满足的情况下,信息可以很通畅的在高层和底层之间相互传导。
对于假设1,假设,则残差块可以表示为:
对于更深的层
现只考虑公式的左半部分:
- 当
时,很可能发生梯度爆炸
- 当
时,梯度变成0, 会阻碍残差网络信息的方向传递。
必须等于1。
网友评论