深度残差网络

很久不写周报了。 总结一下最近的收获吧。

观察了HY加了bn层的加了两个操作。

一个是bath_norm 层 一个是scale 层

 之前的理解是加bath_norm 层不就可以了吗,为什么要加scale 层

关于这个问题的解答请看:

http://blog.csdn.net/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

中的BatchNormScale

当然 你也可以自己写一层BN 代替这两层。

2016年初最重要的两篇文章应该是

A. inception-V3 

B. 深度残差网络

深度残差网络主要解决的问题是:

网络越深的时候,训练误差和测试误差都会加大。----早前的说法是 网络越深 越不容易收敛

利用cifar 做测试的结果为:

深度残差网络_第1张图片

如上图所示,肯定不是我们想要的。我们想要的结果是网络越深,效果越好。

为了达到这个目的作者设计了深度残差网络。

深度残差网络_第2张图片

其实看这个图我是没看懂这是个啥意思。

我是这么理解这个问题,什么是残差:按照我早前对信号的粗浅理解为 原始信号X 可以用一组信号基表示

比如X可以用m= W11y1 +W12y2+‘---- ,那么x-m 为残差。

我们用elsewise 层实现这个操作:

http://blog.csdn.net/seven_first/article/details/47751149

layer {
	bottom: "res2b"
	bottom: "res2c_branch2c"
	top: "res2c"
	name: "res2c"
	type: "Eltwise"
}
更形象的是:

以及:




你可能感兴趣的:(深度残差网络)