残差层

引言

在VGG中,随着网络层数的增多,往往伴随着以下几个问题:

  • 计算资源的消耗(通过增加GPU来解决)
  • 模型容易过拟合(采集海量数据,使用dropout正则化)
  • 产生梯度消失和梯度爆炸(使用batch norm)
    但是这些方法并不一定总是能解决问题。

从信息论的角度来看,由于DPI(数据处理不等式)的存在,在前向传输的过程中,随着层数的加深,特征图包含的图像信息会越来越少,而resnet的直接映射的加入,保证了层的网络包含的信息一定比第层的多。

残差网络

残差块

残差块的结构如下图所示。


一个残差块可以表示为:

由两个部分组成:直接映射和残差部分。
对于残差块更一般的表示:

  • 假设1:是直接映射
  • 假设2:是直接映射
    则残差块可以表示为
  • 层可以表示为任意一个比它浅的层和他们之间残差部分的和;

  • 损失函数关于的梯度为
  • 在整个训练过程中,不可能一直为-1,所以残差网络中一般不会出现梯度消失的问题
  • 表示L层的梯度可以直接传递到任何一个比它浅的层。
    因此,在假设1和假设2满足的情况下,信息可以很通畅的在高层和底层之间相互传导。

对于假设1,假设,则残差块可以表示为:

对于更深的层

现只考虑公式的左半部分:

  • 当时,很可能发生梯度爆炸
  • 当 时,梯度变成0, 会阻碍残差网络信息的方向传递。
    必须等于1。

你可能感兴趣的:(残差层)