Class29ResNet
Class29ResNet
ResNet
ResNet(Residual Network,残差网络)是深度神经网络中的一个重要里程碑,由微软研究院的何恺明等人于2015年提出,用于解决随着网络加深训练变得困难的问题。它首次在ImageNet2015竞赛中获得冠军,并且在很多任务中成为标准架构的基础。
随着深度神经网络层数变多,虽然模型的表达能力更强,但却遇到了梯度消失/爆炸、准确率下降等问题:
传统网络越深,准确率可能反而变低(训练误差上升)
原因不是过拟合,而是训练更深层网络时的优化困难
残差块
在深度网络中,我们希望通过叠加更多层(串联),使神经网络能够表示更复杂的函数。
残差块(Residual Block):是 ResNet 中的基本模块,它不像传统神经网络那样只用串联层来学习一个函数
𝑓(𝑥),而是把输入 𝑥直接绕过中间层加到输出上。
快速通道(右边):就是指那个**“跳跃连接”**,它不做任何处理,直接把𝑥传给后面的加法运算。
𝑥:是输入
𝑔(𝑥):是经过两层卷积(或其它处理)之后的输出
𝑥+𝑔(𝑥):是加上跳跃连接后的最终输出
项目 | 左侧(BasicBlock) | 右侧(有1x1Conv) |
---|---|---|
跳跃路径 | identity(直接跳) | 1x1卷积调整 |
用途 | 输入输出一致时使用 | 尺寸/通道变化时使用 |
常见于 | ResNet-18/34 | ResNet-50/101/152 |
总结
残差块可以使得很深的网络更加容易训练,甚至可以训练一千层的网络。
残差网络对于随后的深层神经网络的设计产生了深远影响,无论是卷积类网络还是全连接类网络。