Resnet介绍

本文介绍了ResNet深度残差学习网络,针对深度过深导致训练效果下滑的问题,通过引入残差模块保持信息流动,显著提高模型性能。作者通过实例展示了56层与20层网络的对比,强调了残差学习在解决梯度问题上的有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.简介

         作者提出了一种深度学习网络框架resnet,用来解决层数过深时,神经网络训练效果变差的情况。按理来说层数越深,模型的效果就会越好。那些在Imagenet上登顶的网络模型它的网络层数都是非常多的,都不是一两层的网络训练出来的模型。深度是非常重要的,高级语义信息在深层网络时才被提取。而网络越深就越有可能出现梯度爆炸/消失,虽然我们可以通过normalizatio来解决,但网络并不是越深越好。作者给出了下面这张图

56层神经网络是20层神经网络比较深的版本(即网络结构一样,只是层数更多而已)。可以看到,无论是在训练集(左图)上,还是在测试集上(右图),56层神经网络的表现都要差于20层的神经网络。按理来说, 深的网络不应该比浅的网络训练效果差,因为我们总可以把新加的那些层变成identity mapping(即 若输入为x,则输出也为x,也就是保持原样的意思)。但实际上做不到,用SGD等优化算法找不到这样的解。

2.深度残差学习网络(deep residual learning framework)

         这是一个残差学习单元。x是上一层的输入,它经过一个残差函数F,最后的输出为H=F(x)+x。其中F=W2σ(W1x),W1是第一个weight layer。

         这是更直观的图。这里的W1和W2都是卷积层,σ是Relu函数。我觉得W是代表卷积核的参数,在56x56的矩阵中,卷积核对每个区域卷积,再把每个区域的输出结果进行Relu。为什么要加入这个残差学习块呢?因为残差学习相比原始特征直接学习更容易。当残差为0时,此时堆积层仅仅做了恒等映射,至少网络性能不会下降。实验证明,这个残差块往往需要两层以上,因为如果只有一层的话,y = W1x + x,相当于一个线性层,并不能起到提升作用。

3.不同层Resnet的结构

         输入是224x224的图片,卷积层、maxpool层都需要padding

         34层resnet可视化:

         conv1卷积可视化:

         maxpool层可视化:

参考:

1.https://arxiv.org/abs/1512.03385

2.https://zhuanlan.zhihu.com/p/79378841

3.http://www.atyun.com/40484.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值