resnet再理解
之前看来resnet也用了好久,从很多次实验中确实看出resnet的威力真的强。很多网络在同样的条件下,resnet都要胜出一筹,而且是用kaiming he提出的identity结构,也验证了奥卡姆剃刀原则,to make things as simple as possible but not simpler。不过正如深度学习被誉为黑盒子一样,实在难以理解why?why?why?为什么这样他就是效果那么好,还没有人可以给出像数学一样的漂亮严谨的解释。所以很多时候是在猜,一半靠“天赋”,sense of dl and cv;一半靠勤奋,实验调参调参调参(需要卡需要卡需要很多卡)。
这两天阅读了两篇论文也让我重新认识resnet但是也无法认同作者的观点(no reason):
1.deep networks with stochastic depth
2.residual networks behave like ensembles of relatively shallow networks
说来其实也是自己第一次写paper reading的第一篇博客,主要还是懒得动手打字。。。。
第一篇主要是说作者在训练deep resnet的时候每一个mini-batch或者sample的时候随机”丢弃“一些bottlenect 的 modules,但是保留那个identity的旁路,其实就是直接=让前一个layer出来的output不经变化流到下一个layer。
每一个的residual bottle都会带上一个概率值pi,但这个也是traninable的参数。
而在test的时候则不这么干,而是进行一种类似加权和,不会丢弃任何一个residual bottle,但是每一个residual module的贡献是不一样的。
第二篇主要是探讨一个这样的问题:在residual network中的每一个支路,其实就是residual modual依赖性如何?整个resnet是否表现为一种ensemble的作用,就是相当于训练很多的shallow network但是最终的结果是把这种浅网络ensemble起来?
作者的做法是训练还是按照kaiming he训练方法训,但是在test的时候则是把一些bottleneck给去掉,其实就是相当于把第一篇论文的训练策略作为测试策略。但是有区别的是作者分别做了:
1.随机丢弃一个residual moduale
2.随即丢弃若干residual moduales
3.re-order residual modules
从这些实验方法中作者”得出”结论:residual networks seem to enable very deep networks by leveraging only the short paths during training and it can be viewed as a collection of many paths,instead of a single ultra deep network.
连着看完这两篇paper感觉其实都只能说是对resnet的一种补充解释,不过第二篇可能提出了一种新的思路:
not all paths carry the same amount of gradient.也就是并不是这些所有的支路组合起来的网络都对梯度传导有很大的作用,也就是存在着一种分布(论文中说是二项分布),只有部分的才是其主导的作用。个人还是忠于kaiming he的观点:going deeper。现在做深度学习越做越久就越是恐慌这种黑盒子。。。但是特别好用,就像是妹纸一样,总会让人飞蛾扑火一般的着迷!!这也是病!!
各位大佬有什么不一样的解读欢迎留言!