详细解读深度学习中的 “残差网络“

残差网络

  1. 什么是残差:

残差在数理统计中是指实际观察值与估计值(拟合值)之间的差

更准确地,假设我们想要找一个 x x x,使得 f ( x ) = b f(x)=b f(x)=b,给定一个 x x x 的估计值 x 0 x0 x0,残差(residual)就是 b − f ( x 0 ) b−f(x0) bf(x0),同时,误差就是 x − x 0 x−x0 xx0

  1. 什么是残差网络:

随着网络越来越深,训练变得原来越难,网络的优化变得越来越难。理论上,越深的网络,效果应该更好;

但实际上,由于训练难度,过深的网络会产生退化问题,效果反而不如相对较浅的网络。而残差网络就可以解决这个问题的,残差网络越深,训练集上的效果会越好。(测试集上的效果可能涉及过拟合问题。过拟合问题指的是测试集的效果和训练集上的效果之间有差距。

残差网络通过加入 shortcut connections,变得更加容易被优化。包含一个 shortcut connection 的几层网络被称为一个残差块(residual block),如图 2 所示。(shortcut connection,即图中右侧从 x x x ⨁ ⨁ 的箭头)

img

  • 残差块(residual block)

如图上所示, x x x 代表输入, F ( x ) F(x) F(x) 代表残差块在第二层激活函数ReLu之前的输出,即 F ( x ) = W 2 σ ( W 1 x ) F(x)=W2σ(W1x) F(x)=W2σ(W1x)。其中 W 1 W1 W1 W 2 W2 W2 表示第一层和第二层的权重, σ σ σ 表示 ReLU 激活函数。

当没有 shortcut connection(即图 2 右侧从 x x x ⨁ ⨁ 的箭头)时,残差块就是一个普通的 2 层网络。残差块中的网络可以是全连接层,也可以是卷积层。

设第二层网络在激活函数之前的输出为 H ( x ) H(x) H(x)。如果在该 2 层网络中,最优的输出就是输入 x x x

那么对于没有 shortcut connection 的网络,就需要将其优化为 H ( x ) = x H(x)=x H(x)=x

对于有 shortcut connection 的网络(残差块),如果最优输出是 x x x,则只需要将 F ( x ) = H ( x ) − x F(x)=H(x)−x F(x)=H(x)x 优化为 0 即可。后者的优化会比前者简单。这也是残差这一叫法的由来。

  1. 一个残差网络是怎么样的:

图中 34-layer residual就是残差网络。

其中 34-layer 表示含可训练参数的层数为34层,池化层不含可训练参数。

图 3 右侧所示的残差网络和中间部分的 plain network 唯一的区别就是 shortcut connections。这两个网络都是当 feature map 减半时,filter 的个数翻倍,这样保证了每一层的计算复杂度一致。

ResNet 因为使用 identity mapping,在 shortcut connections 上没有参数,所以图 3 中 plain network 和 residual network 的计算复杂度都是一样的,都是 3.6 billion FLOPs.

如果本文对你有帮助,欢迎点赞、订阅以及star我的项目。
你的支持是我创作的最大动力!

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值