首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

残差网络原理详解

1

本阁(道炁阁)-残差网络原理详解

来自我们的讯息(道讯)

《来自我们的讯息》(道讯)公告

此平台是本阁(道炁阁)-Pavilion Of Tao And Qi的公众平台,旨在道院与广大道众道友进行有效便捷的沟通

关于:残差网络原理

Rode To Asa Bay_Bathory

“道言:万物之中,人为最贵;万法之中,唯一是贵;万一之中,唯真是贵;万真之中,唯圣是贵;万圣之中,唯道是贵。”(《太上昇玄三一融神变化妙经》洞真本文类)

见到知乎上有一个解释说,基础形式实际上类似于差分放大,其实很有道理。

比如resnet在道历4712年西元2015名声大噪,而且影响了道历4713西元2016年DL在学术界和工业界的发展方向。下面是这个resnet的网络结构,大家先睹为快。

它对每层的输入做一个reference, 学习形成残差函数, 而不是学习一些没有reference的函数。这种残差函数更容易优化,能使网络层数大大加深。

我们知道,在计算机视觉里,特征的“等级”随增网络深度的加深而变高,研究表明,网络的深度是实现好的效果的重要因素。然而梯度弥散/爆炸成为训练深层次的网络的障碍,导致无法收敛。

有一些方法可以弥补,如归一初始化,各层输入归一化,使得可以收敛的网络的深度提升为原来的十倍。然而,虽然收敛了,但网络却开始退化了,即增加网络层数却导致更大的误差, 如下图。 这种deep plain net收敛率十分低下。

通过在一个浅层网络基础上叠加y=x的层(称identity mappings,恒等映射),可以让网络随深度增加而不退化。这反映了多层非线性网络无法逼近恒等映射网络。

但是,不退化不是我们的目的,我们希望有更好性能的网络。 resnet学习的是残差函数F(x) = H(x) - x, 这里如果F(x) = 0, 那么就是上面提到的恒等映射。事实上,resnet是“shortcut connections”的在connections是在恒等映射下的特殊情况,它没有引入额外的参数和计算复杂度。 假如优化目标函数是逼近一个恒等映射, 而不是0映射, 那么学习找到对恒等映射的扰动会比重新学习一个映射函数要容易。从下图可以看出,残差函数一般会有较小的响应波动,表明恒等映射是一个合理的预处理。

残差块的结构如下图

假如: F'(5)=5.1 从5到5.1的变化率是极低的,因为5的基数太大,所以可以进行拆分:

H(5)=5.1, H(5)=5+F(5), F(5)=0.1 此时由于在拆分项中0变成0.1,这个变化率就达到了10%,便放大了这种效果。 因为神经网络不能很好辨识出这种拆分,所以需要人工设计结构进行辅助,

一般理论上认为网络层数越多,提取细节与抽象能力越丰富,然而实际层数迭代多了,会出现梯度爆炸或梯度弥散 ,这可以通过通过正则化解决。

但即使解决了这个问题,仍然会有退化问题,即层数多了后,出现准确率反而下降的情况。

这里有一个变化的技巧就是,在 H(x) = F(x) + x 时,当F(x)=0时, 显然H(x) = x,如果f(x)越来越趋近于0,则h(x)越来越趋进x

残差块的结构如下图:

所以可以构造这样的形式:

所以,x可以直接跳两层作为输入,因为h(x)=x,f(x)这里当然不会等于0,但是可以通过relu使得矩阵中尽量多的地方变成0,从而实现残差放大。

X如何变化是不清楚的,因为它本来就是一个需要求的值,但这里可以直接采用X的原值,因为是如果改变了X值,那么就会破坏掉残差对应的原来的X结构,因为这里的残差实际上不是差分,而只是一个通过训练后才有可能不断向差分靠拢的值。

残差网络的确解决了退化的问题,在训练集和校验集上,都证明了的更深的网络错误率越小,如下图:

实际中,考虑计算的成本,对残差块做了计算优化,即将两个3x3的卷积层替换为1x1 + 3x3 + 1x1, 如下图。新结构中的中间3x3的卷积层首先在一个降维1x1卷积层下减少了计算,然后在另一个1x1的卷积层下做了还原,既保持了精度又减少了计算量。

天尊言“若其前世供养三宝,修於施戒,精进忍辱,思微智慧,如此等通,此人今生得惠业力,得神智力,得无畏力,备诸善本。善男子,若其前世普济众生,则得无病长寿之报。善男子,若其前世侵害众生,则得疾恼、短夭之报,如此感果,数千万亿,不可悉记。皆由前世业因所感,感得此报,如响随声,等无差异。”

洞真本文类《太上一乘海空智藏经》

想要了解更多

随时随地学习道家文化

道炁阁(社)宣传部 宣

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180112G0S63L00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券