加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动!
同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。点击文末“阅读原文”立刻申请入群~
作者 | mileistone
来源 | https://zhuanlan.zhihu.com/p/46633171
已获作者授权,请勿二次转载
降采样指的是成比例缩小特征图宽和高的过程,比如从(W,H)变为(W/2,H/2)。深度卷积神经网络中降采样的方法主要有三种:
1、stride大于1的pooling
2、stride大于1的conv
3、stride大于1的reorg(在YOLOv2的论文里叫passthrough layer)
reorg: github.com/pjreddie/darknet/blob/master/cfg/yolov2.cfg
其中1和2在深度卷积神经网络中使用非常普遍,3比较小众,由Joseph Redmon在YOLOv2中首次提出。
1和2的对比在Striving for Simplicity: The All Convolutional Net中有详述,文末有这么一段总结:
With modern methods of training convolutional neural networks very simple architectures may perform very well: a network using nothing but convolutions and subsampling matches or even slightly outperforms the state of the art on CIFAR-10 and CIFAR-100. A similar architecture shows competitive results on ImageNet.
In particular, as opposed to previous observations, including explicit (max-)pooling operations in a network does not always improve performance of CNNs. This seems to be especially the case if the network is large enough for the dataset it is being trained on and can learn all necessary invariances just with convolutional layers.
大概意思就是,用stride=2的conv降采样的卷积神经网络效果与使用pooling降采样的卷积神经网络效果相当;卷积神经网络小的时候,使用pooling降采样效果可能更好,卷积神经网络大的时候,使用stride=2的conv降采样效果可能更好。
总体来说,pooling提供了一种非线性,这种非线性需要较深的conv叠加才能实现,因此当网络比较浅的时候,pooling有一定优势;但是当网络很深的时候,多层叠加的conv可以学到pooling所能提供的非线性,甚至能根据训练集学到比pooling更好的非线性,因此当网络比较深的时候,不使用pooling没多大关系,甚至更好。
pooling的非线性是固定的,不可学习的,这种非线性其实就是一种先验。
3中降采样的优势在于能够较好的保留低层次的信息。1和2的降采样方式,好处是抽取的特征具有更强的语义性,坏处是会丢失一些细节信息。而3这种降采样方式与1、2相反,它提取的特征语义性不强,但是能保留大量细节信息。所以当我们既需要降采样,又需要不丢失细节信息的时候,3是一个非常合适的选择。
*延伸阅读
点击左下角“阅读原文”,即可申请加入极市目标跟踪、目标检测、工业检测、人脸方向、视觉竞赛等技术交流群,更有每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流,一起来让思想之光照的更远吧~
觉得有用麻烦给个在看啦~