ResNet(残差网络)之残差模块

  • 2015年何凯明提出的152层ResNet,获得了ILSVRC比赛图像识别的冠军(top1误差3.6%),同时也使得卷积神经网络有了真正的“深度”。
    随着网络深度的增加,训练变得愈加困难,这主要是因为在基于随机梯度下降的网络训练过程中,误差信号的多层反向传播非常容易引发“梯度弥散”(梯度过小会使回传的训练误差信号极其微弱)或者“梯度爆炸”(梯度过大导致模型出现NaN)的现象。目前一些特殊的权重初始化策略和批规范化(BN)等方法使这个问题得到了极大改善——网络可以正常训练了!! 但是实际情形不容乐观。当模型收敛时,另外的问题又来了:随着网络深度的增加,训练误差没有降低反而升高。 这一现象与直觉极其不符,浅层网络可以被训练优化到一个很好的解,那么对应的更深层的网络至少也可以,而不是更差。这一现象在一段时间内困扰着更深层卷积神经网络的设计、训练和应用。
  • 著名的残差网络(Residual Network,ResNet) 很好的解决了网络深度带来的训练困难的问题,它的网络性能(完成任务的准确度和精度)远超传统网络模型。

残差网络之前——高速公路网络(Highway Network)

  • 常规卷积神经网络: y = F ( x , w f ) y=\mathcal{F}(x,w_f) y=F(x,wf)
  • 高速公路网络: y = F ( x , w f ) ⋅ T ( x , w t ) + x ⋅ C ( x , w c ) y=\mathcal{F}(x,w_f)\cdot \mathcal{T}(x,w_t)+x\cdot \mathcal{C}(x,w_c) y=F(x,wf)T(x,wt)+xC(x,wc)
    (1) T ( x , w t ) \mathcal{T}(x,w_t) T(x,wt),非线性变换,称作“变换门”,负责控制变换的强度
    (2) C ( x , w c ) \mathcal{C}(x,w_c) C(x,wc),非线性变换,称作“携带门”,负责控制原输入信号的保留强度
    换句话说, y y y F ( x , w f ) \mathcal{F}(x,w_f) F(x,wf) x x x 的加权组合, T \mathcal{T} T C \mathcal{C} C 分别控制着两项对应的权重
  • 简化的高速公路网络: y = F ( x , w f ) ⋅ T ( x , w t ) + x ⋅ ( 1 − T ( x , w t ) ) y=\mathcal{F}(x,w_f)\cdot \mathcal{T}(x,w_t)+x\cdot (1-\mathcal{T}(x,w_t)) y=F(x,wf)T(x,wt)+x(1T(x,wt)),其中 T + C = 1 \mathcal{T}+\mathcal{C}=1 T+C=1

残差网络(ResNet)

  • y = F ( x , w ) + x y=\mathcal{F}(x,w)+x y=F(x,w)+x
    高速公路网络的“变换门”和“携带门”都为恒等映射时(即令 T = 1 , C = 1 \mathcal{T}=1,\mathcal{C}=1 T=1C=1 ),就得到了残差网络
  • 多个残差模块的堆叠形成的网络,称为“残差网络”
  • 相比高速公路网络:残差网络中的近路连接(shortcut),直接通过简单的恒等映射完成,不需要复杂的“变换门”和“携带门”,因此不需要引入额外的参数,减小了计算负担。
  • 若无近路连接,ResNet 实际上就是更深层的 VGG 网络,只不过 ResNet 以 全局平均汇合层(global average pooling layer) 替代了 VGG 网络中的全连接层,这使得参数量大大减少,并且降低了过拟合风险(全局平均汇合层早在GoogLeNet中就被使用了)
  • 常规残差模块(plain residual block):由 2 2 2 3 × 3 3×3 3×3卷积层堆叠而成(随着网络深度的加深,这种残差模块在实践中并不十分有效)
  • 瓶颈残差模块(bottleneck residual block):依次由 1 × 1 、 3 × 3 、 1 × 1 1×1、3×3、1×1 1×13×31×1 3 3 3个卷积层构成
    注:这里 1 × 1 1×1 1×1卷积,能够对通道数channel起到 升维或者降维的作用,从而令 3 × 3 3×3 3×3的卷积,以相对较低维度的输入进行卷积运算,提高计算效率
  • 下图瓶颈残差模块(输入和输出都是256维)的参数量 1x1x256x64 + 3x3x64x64 + 1x1x64x256 = 69632,而常规残差模块的话就是2个3x3x256的卷积,参数量 3x3x256x256x2 = 1179648,差了16.94倍
    在这里插入图片描述
  • 38
    点赞
  • 145
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ResNet(Residual Network)是一种深度卷积神经网络模型,旨在解决深层网络训练中的梯度消失和模型退化问题。它的核心思想是引入了残差连接(residual connections),通过跳跃连接来传递信息,使网络更易于训练和优化。 在传统的深层网络中,每个层都是通过非线性变换来学习输入和输出之间的映射关系。然而,随着网络层数的增加,非线性变换可能会导致梯度消失或梯度爆炸,使得深层网络难以训练。ResNet通过引入残差学习来解决这个问题。残差学习的思想是,在每个残差块中,不是直接学习输入和输出之间的映射关系,而是学习残差(即输入与输出之间的差异)的映射关系。 具体来说,ResNet中的每个残差块由两个主要部分组成:恒等映射块(Identity Block)和卷积映射块(Convolutional Block)。 恒等映射块(Identity Block)是一个简单的跳跃连接,用于保持输入和输出的维度一致。它由一系列卷积层、批归一化层和激活函数组成,通过残差连接将输入直接添加到输出上。 卷积映射块(Convolutional Block)包含了一系列卷积层、批归一化层和激活函数,用于学习输入和输出之间的残差映射关系。卷积映射块通常由1x1卷积层、3x3卷积层和1x1卷积层组成,其中1x1卷积层用于降低通道数,3x3卷积层用于进行特征提取和非线性变换。 通过堆叠多个这样的残差块,ResNet可以构建出非常深的网络结构。这种残差连接的设计使得网络更易于训练,同时保持了较浅层网络的特征表达能力。ResNet在图像分类、目标检测、语义分割等计算机视觉任务中取得了显著的性能提升,并成为了深度学习中重要的基础模型之一。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值