【深度学习】浅显易懂的残差网络(Residual Network)

残差网络介绍

随着网络的层数变深,作者发现网络出现退化现象,训练集的准确率不增反降。退化现象简单的说就是浅层网络的表现要优于深层网络,因此,如果我们可以把浅层网络的特征传递到深层网络,那么深层网络应该也会有较好的表现。根据这个思想,作者提出了一个概念Identity Mapping,这实际上是构建一条映射关系(后面会详细讲)这也是残差网络的最关键之处。

残差块(Residual Block)

下图是作者在论文中的残差块示例图,首先明确几个概念, X l X_l Xl表示第l层的输入, F ( x ) F(x) F(x)表示残差部分,曲线箭头表示利用shortcut connections表示identity mapping。
在这里插入图片描述
X l = F ( X l − 1 ) + X l − 1 X_{l} = F(X_{l-1}) + X_{l-1} Xl=F(Xl1)+Xl1 F F F表示残差部分,一般由若干卷积层,池化层和激活函数构成。残差部分与上一层的输出相加就构成了下一层的输入,这整体结构也就被称为残差块(Residual Block)。

残差网络的网络结构

下图是三种网络结构的比较,分别是VGG-19,34层的卷积神经网络,以及34层插入了shortcut connection的残差网络。
在这里插入图片描述
前面两个网络不多赘述,重点观察最后的残差网络,首先实黑色箭头表示输入与输出维度一致的残差块,点黑色箭头表示一个维度增加的残差块。
那么如何能保证输入和输出的大小一致但通道数增加或不变呢?这就要用到一个1 * 1的卷积,假设我们上一层的输出是3 * 3 * 256大小,现在我们想把变成3 * 3 * 512的输出,我们可以使用512个1 * 1 * 256的卷积核,按照之前卷积神经网络文章中的计算公式,output_size = (3 + 2*0 - 1) / 1 + 1 = 3,因此每个卷积核卷积后的大小是3 * 3,使用512个卷积核后,那么最终的大小也就是3 * 3 * 512,因此这就实现了,在不改变输出大小的情况下增加通道数的方法,保持或减少通道数的方法也是一样。

残差网络与高速网络的比较

对于训练深层的神经网络,高速神经网络和残差网络实际上都是用了shortcut connect只不过shortcut connection在高速神经网络中的实现是使用门机制,即transform gate和carry gate。而残差网络中的实现是使用残差块。

论文地址:https://arxiv.org/abs/1512.03385

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柠檬ya

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值