最近想找一个不用label位置的目标检测算法,不像faster-rcnn,mask_rcnn,yolo等
这篇文章的一个重要思想就是
1 关于全连接层不能保持spatial information的理解
相比全连接层,卷积层是一个spatial-operation,能够保持物体的空间信息(translation-variant)。比如一个物体原来在左上角,卷积之后的结果feature-map在左上角的激活值大。如果这个物体移动到右下角,那么卷积之后的feature-map同样会在右下角的激活值比较大。但是对于全连接层来说,它是将feature-map所有位置的信息综合之后输出,和物体的具体位置在哪里无关,比如一张图,人在左上角和右下角得到的fc层的输出应该是一致的(因为后面就接softmax分类了)
2 .1 背景提出:卷积神经网络里面的每一个卷积单元其实都扮演着一个个object detector的角色,本身就带有能够定位物体的能力。但是这种能力在利用全连接层进行classification的时候就丢失了。因此,像那些全卷积的神经网络,比如googlenet,都在避免使用全连接层,转而使用global average pooling,这样的话不仅可以减少参数,防止过拟合,还可以建立feature map到category之间的关联。
2.2 作者想法:global average pooling(gap)不仅仅是一个regularizer,还能够将卷积层的定位能力一直保持到最后一层。即使这个网络是训练来进行分类的,我们也可以在feature map上获取那些对于分类具有区分性(discriminative)的区域。比如对于一张分类成自行车的图片来说,feature map上面在车轮子,车把这样地方的激活值就会比较大。而且这种网络的训练是end-to-end的,只需要训练classification的网络,我们就可以在forward的时候获取localization的信息。
具体可以参考博客:http://blog.csdn.net/yaoqi_isee/article/details/62214648