深度学习基础--不同网络种类--residual/ResNet

residual/ResNet

  众所周知,网络的性能与深度息息相关。如果在一个浅层网络A上叠加几层layer形成网络B,如果这些新添加的layer是Identity mapping(权值矩阵全是单位矩阵?),那么网络B性能至少不会比A差。但是实际实验结果却显示网络越深,性能越差,所以作者猜测solver 对于学习单位映射比较困难。既然学习单位映射比较麻烦,那干脆直接给它加上一个shortcut,直接给这个模块输出叠加上输入。实际情况中,单位映射x并不是最优解H(x),最优解在单位映射附近,这个最优解与单位映射之间的差就叫做residual F(x)。

  两个relu之间的+就是residual connection了
  注:实际运用中,DRN中的shortcut有些是带有参数的,因为有的模块有降维操作,输入输出的维度不一样用bn,不用dropout。

  ResNet并不是第一个利用近路连接,Highway Networks引入门控近路连接的。ResNet可以被认为是Highway Networks的一种特殊情况,且性能更好。

各种变种

  1)ResNeXt
  它非常类似于Inception模块,两者都遵循“拆分-转换-合并”范式。但较于inception的优势是提出了“基数(cardinality)”的超参数——独立路径的数量,以提供调整模型容量的新方式。
  实验表明,可以通过增加基数,而不是深度或宽度,来更加有效地获得准确度。作者指出,与Inception相比,这种新颖的架构更容易适应新的数据集/任务,因为它具有一个简单的范式,且只有一个超参数被调整,而Inception却具有许多超参数(如每个路径中卷积层内核大小)待调整。
在这里插入图片描述

在这里插入图片描述

  2)DenseNet
  在这种结构中,每层的输入由所有较早层的特征映射组成,其输出传递给每个后续层。特征映射与深度级联聚合。

训练技巧drop-path

  尽管ResNet在许多应用中已被证明很强大,但它的主要的缺点是,更深层的网络通常需要几周的时间进行训练,而这在实际应用中几乎不可行。为了解决这个问题,引入了一种在训练过程中随机丢弃图层的反直觉方法,同时使用完整的网络进行推理。
  作者使用残差块作为其网络的构建块,因此,在训练期间,当特定残差块被启用时,它的输入在身份近路和权重层流动,否则,输入只在身份近路流动。在训练时间内,每层都有“生存概率”,随机下降。在测试时间内,所有的块都保持活动状态,并在测试期间根据其生存概率进行重新校准。
  类似于Dropout,训练具有随机深度的深层网络可以被视为训练许多较小ResNets的合集。不同之处在于,该方法随机丢弃整个图层,而Dropout在训练期间仅将一部分隐藏单元下降。
  大大降低了训练时间。甚至我们可以在训练完成后,删除部分layer,同时还不影响精度。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值