初步认识ResNet

初步认识ResNet

参考:

​ 李沐论文精讲

​ 同济子豪兄

论文名称:

​ 《Deep Residual Learning for Image Recognition》

1. 介绍

ResNet的中文名称:残差网络

ResNet是在一篇论文《Deep Residual Learning for Image Recognition》中提出的。当时写这篇文章的时候,作者都是在微软亚洲研究院工作。

ResNet的核心思想是:层数过深的神经网络很难训练,使用残差连接(residual)的方式来解决这个问题。

2. 问题

在CIFAR数据集上训练两个网络,一个是56层的,一个20层的,下图是训练的loss,左图是训练误差,右图是测试误差。通过图片可以看出在层数更多的时,误差反而更大,理论上层数更多的网络拟合效果应该越好,为什么会出现这个问题呢?

b4cab4ca09e53763d13eb6541fcb2211_0_Figure_1

出现这种情况的直接原因肯定不是过拟合,因为过拟合是层数过深使得训练误差变得非常小,但是测试误差却比较大。而图中显示的是在层数过深的时候训练误差和测试误差都出现了明显的变大。

3. 思考

考虑一个较浅的网络,假设它已经能达到一个很好的效果,这时候再在这个网络后面加上几层网络,理论上这个网络应该不会变差,因为即使最差的情况就是后面的网络就是个 Identity Mapping(恒等映射:后面新加的网络输入是x时,输出也完全是x)。理论上权重可以学成这个样子,但是实际上我们根本做不到,我们的梯度下降方法根本无法找到全局最优解,这也就导致了网络层数越深,训练的效果反而越差的情况,正是这个局限性使得我们需要ResNet。

4. ResNet的思想

下图是就是一个残差块,假设整个残差块要学习的函数是H(x),那么红色部分学习的就是F(x) = H(x) - x. 加上右边的一个identity mapping,这样整个残差块的输出就成了F(x) + x = H(x),注意红色方块的输出需要和 x 的形状是一样的,这样才能相加,这里的相加就是简单的相加,不是拼接什么的。

image-20230615162222628

这样的残差块就是ResNet的核心,下图是ResNet论文中通过叠加残差块实现的一个效果很好的网络,论文中说通过ResNet可以真正的实现网络层数越深,网络效果越好。左边没有残差链接的一个很深的网络效果比较差,右边加了残差链接效果就比较好。

b4cab4ca09e53763d13eb6541fcb2211_3_Figure_3

5. 原理

ResNet是一个经典的网络,但是这个网络的效果的具体原理没有人能完完全全说清楚,这里列出几种讲解。

  • 传统线性结构网络难以拟合identity mapping(恒等映射)

    有时候某一个网络块就是需要什么都不做,但是高度的非线性拟合使得网络无法在某一个网络块学习到恒等映射,这个时候通过一个shortcut(残差连接)来表示这部分恒等映射。

  • ResNet相当于几个浅层网络的集成。

    对于下方的a图来说每一个节点它都有两条路可以选择,也就意味着它有 2 3 = 8 2^3=8 23=8 条路可以选择,a图潜在就实现了b图的效果,也就是说ResNet相当于潜在是几个网络的集成。

image-20230615171437695

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值