很久不写周报了。 总结一下最近的收获吧。
观察了HY加了bn层的加了两个操作。
一个是bath_norm 层 一个是scale 层
之前的理解是加bath_norm 层不就可以了吗,为什么要加scale 层
关于这个问题的解答请看:
http://blog.youkuaiyun.com/sunbaigui/article/details/50807398
caffe官方将BN层拆成两个层来实验,一个是https://github.com/BVLC/caffe/blob/master/include/caffe/layers/batch_norm_layer.hpp,
另外一个是https://github.com/BVLC/caffe/blob/master/include/caffe/layers/scale_layer.hpp。
其具体使用方法可以参考:https://github.com/KaimingHe/deep-residual-networks/blob/master/prototxt/ResNet-50-deploy.prototxt
中的BatchNorm与Scale。
当然 你也可以自己写一层BN 代替这两层。
2016年初最重要的两篇文章应该是
A. inception-V3
B. 深度残差网络
深度残差网络主要解决的问题是:
网络越深的时候,训练误差和测试误差都会加大。----早前的说法是 网络越深 越不容易收敛
利用cifar 做测试的结果为:
如上图所示,肯定不是我们想要的。我们想要的结果是网络越深,效果越好。
为了达到这个目的作者设计了深度残差网络。
其实看这个图我是没看懂这是个啥意思。
我是这么理解这个问题,什么是残差:按照我早前对信号的粗浅理解为 原始信号X 可以用一组信号基表示
比如X可以用m= W11y1 +W12y2+‘---- ,那么x-m 为残差。
我们用elsewise 层实现这个操作:
http://blog.youkuaiyun.com/seven_first/article/details/47751149
layer {
bottom: "res2b"
bottom: "res2c_branch2c"
top: "res2c"
name: "res2c"
type: "Eltwise"
}
更形象的是:
以及: