A practical theory for designing very deep convolutional neural networks
两个前提假设:
- 1.对于每一个卷积层,其学习更复杂表示的能力应该被保证
- 2.最高层的感受野应该不大于图像范围
Why deep?
更深:只增加了线性复杂度
,但是模型的学习效果却提升了很多
模型结构
1.feature level:怎样加入更深的网络
本质上为带限制的优化问题
两个限制:
- 1.
每一层的c-value不应该过小(c-value表示的是学习复杂pattern的能力)
- 2.
最高层的感受野应该不大于图像范围
2.classifier level
common做法:
两层全连接加上每层dropout
效果更好:
将input feature map降采样至small size(5*5至 8*8),然后使用两层5*5的卷积层,最后max pooling加上dropout
3.第一个限制:capacity of learning
3.1 卷积层的作用:
composing more complex patterns from input patterns
(a)中生成pattern AB
(b)中卷积层不能很好的学习到pattern AB和他们的关系
解决:
+ 1.使用更大的卷积层
+ 2.通过stride=2降采样来降低响应距离
3.2 没有降采样的CNN,当层数变深时学习效率变低的原因:
随着层数加深,pattern size其实在逐渐增大,有意义的空间关系也在增大,当大部分input patterns的空间关系大于卷积层的filter size,卷积层就无法学到新的复杂patterns
3.3 Measure
3.第二个限制:necessity of learning
增加的layers是为了学习新的patterns,当感受野到达input的边界时,无法学习到新的patterns,同时层数的加深会引起过拟合,导致效果变差。