Abstract
CNN 使用 Pooling 操作来降低 activation map 的大小。这一操作对于取得 局部空间不变性 和 后续卷积的感受野 至关重要。所以, pooling 应当尽量减少信息的丢失,同时计算高效。
作者提出了 softpool,在替换原有pooling 操作,涨点明显,在分类任务上可提升 1-2 个点。
Introduction
softpool:思想简洁明了,具体操作如下图,总计分3步
第一步:对kernel中的每个pixel计算 softmax 作为其权重
第二步:将pixel与刚才的权重相乘
第三步:sum求和
所以与其他方法区别较为明显:
为了对比这几种池化的效果,作者进行了可视化验证:soft保留了更新的细节信息。
max:数值最大的位置权重为1,其余为0;
avg :每个位置的权重都为1;
soft:根据数值不同,贡献不同,权重不同。
Gradient calculation
与max-pooling不同,softmax pooling是可微的。使用softmax进行操作确实挺精妙的,反向求导和梯度传播都解决了。
Experimental Results
真的很喜欢这种文章,一目了然,性能明显。
前向速度:比avg慢,比max快
显存占用:比avg多,比max少
综合就是介于两者中间,但分类性能提升明显,还是值得一试的。后面等显卡空了,就去试一下。
分类性能:提升明显
作者还做了替换不同层数时的效果比对:总的来看,所有的pooling层都可以替换。