How much Position Information Do Convolutional Neural Networks Encode?
知乎上看到一篇博客https://zhuanlan.zhihu.com/p/99766566,讨论cnn中位置信息是如何学到的,感觉挺有意思的,就看了一下原文,
简单记录一下几个实验部分。
1、位置信息来自预训练模型
作者分别用预训练权重的vgg,resnet和posenet来对比,发现用了预训练权重的vgg和resnet提取的位置信息更准确。但这个实验我
觉得设计的不合理,真正对比实验应该设计的是,用预训练权重的vgg,resnet对比随机初始化的vgg,resnet,而不是和单层的posnet来对比
2、大的卷积核和更多的层数,能获得更准确的位置信息
更多的层数就不用说了,更大的卷积核也符合light head rcnn中得到的结论的,在某层中使用大的卷积核,效果更好。
3、位置信息存放在那一层
原文分别用5层特征来对比,最后发现越深的特征,结果越准确。
4、位置信息来自哪里
这篇文章的核心,作者认为来自于padding,并设计了几组对比实验(包括检测分割任务):加padding的准确率比不加的准确率要高很多。
我的想法
有意思的一篇论文,但只从加不加padding的对比实验结果好坏,就断定padding泄露了位置信息,让人觉得有些奇怪。增加了padding,特征图的分辨率下降
就没那么快了,特征也就利用的更充分了,结果更好也在情理之中。总之是一篇想法有意思,但实验及结论让人不太信服的论文