Resnet(深度残差网络)

垃圾小白欢迎指正!

原文链接

pytorch实现--引用的大佬

解决的问题:主要是解决了深层次的网络比较难以训练的问题。

原因:

原文这样说的When deeper networks are able to start converging, a degradation problem has been exposed: with the network

depth increasing, accuracy gets saturated (which might be unsurprising) and then degrades rapidly. Unexpectedly, such degradation is not caused by overfifitting , and adding more layers to a suitably deep model leads to higher train
ing error, as reported in [11, 42] and thoroughly verifified by our experiments. Fig. 1 shows a typical example.
我个人的总结就是随着网络加深,产生的误差并不是因为过拟合而是因为前面网络误差经过不断的传播对后面的影响过大。
训练误差和测试误差如下:

核心: 

若将输入设为X,将某一有参网络层设为H,那么以X为输入的此层的输出将为H(X)。一般的CNN网络如Alexnet/VGG等会直接通过训练学习出参数函数H的表达,从而直接学习X -> H(X)。

而残差学习则是致力于使用多个有参网络层来学习输入、输出之间的参差即H(X) - X即学习X -> (H(X) - X) + X。其中X这一部分为直接的identity mapping,而H(X) - X则为有参网络层要学习的输入输出间残差。

y = F(x , { W i }) + x
很自然的过程就是原本大家需要拟合的函数是f(x),但是经过修改之后如果前面网络已到达很好,那么我们网络的学习就是趋向于0的。也就是实现: 在前向过程中,当浅层的输出已经足够成熟(optimal),让深层网络后面的层能够实现恒等映射的作用。
 
举个例子,学习自行车以前可能是看人家怎么骑自行自己就跟着学。现在是看看自己和别人有什么不同的地方就修改。
 
反向传播时:
因此redidual模块会明显减小模块中参数的值从而让网络中的参数对反向传导的损失值有更敏感的响应能力,虽然根本上没有解决回传的损失小得问题,但是却让参数减小,相对而言增加了回传损失的效果,也产生了一定的正则化作用。
 
 
参考:https://www.jianshu.com/p/93990a641066
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值