Striving for Simplicity: The All Convolutional Net
contribution
stride convoulution替代pooling,实现没有pooling的 networkguided backpropagation,可视化的新方法,可以在没有
有2种方法去掉
pooling,并且不影响网络的性能:增大它前面一层的
convolution层的stride,目的是起到类似pooling的降维作用。- 这种做法有问题:虽然起到了降维的作用,但是相对于
pooling,相当于只考虑了top-left的features,实验结果证实效果确实不好。
- 这种做法有问题:虽然起到了降维的作用,但是相对于
把这一层的
pooling换成简单的convolution,但要保证:(1)相同大小的 filter size 和 stride;(2)和pooling相同大小的输出。这种没有前一种的问题,但是增加了 parameters 的数量。
作者说这可以看成是主动的学习
pooling,而不是固定的采用max/avg等方式。
网络结构改变的地方:
去掉
pooling使用
3x3的卷积核
网络的最后都会采用一个
1X1的卷积,目的是产生 num_class 个 feature map,从而进行GAP操作(也就是去掉了FC)。但是效果变差了?3.2.2 CIFAR-100
- 使用
3x3的 filter,相对于大的,
- 使用
普通的 backpropagation 与
Deconvolution的不同主要在处理非线性变换的时候,比如ReLU。backpropagation是根据上面传下来的gradient进行计算,而deconv只是对之前存储下来的当前层的feature map进行ReLU操作。使用
deconv的方法进行可视化,发现在没有pooling的时候,效果并不是总是好的,所以提出了guided backpropagation的方法(就是结合backpropagation和deconv)进行可视化。- 如何结合?
guided backpropagation:
guided backpropagation works remarkably well without switches
可视化效果更好。
to be continued……