【阅读笔记】Refining activation downsampling with SoftPool
作者:互联网
- Max Pooling:区域最大值。
- Stochastic Pooling:它使用一个核区域内激活的概率加权抽样。
- S3 Pooling:对原始Feature Map网格中的行和列进行随机采样。
- Preserving Pooling:使用平均池化,同时用高于平均值的值增强激活。
- Local Importance Pooling:进一步评估了如何将学习到的权值作为一种基于子网络注意的机制来使用,该机制可用于汇集信息特征,同时丢弃无信息特征。
3. SoftPool Downsampling
考虑activation map中的 local region,其维数为C×H×W,通道数为C,通道高度为H,通道宽度为W。为了简化符号这里省略通道维数,并假设R是与考虑的二维空间区域的激活相对应的索引集。对于大小为k×k的池化kernel定义|R|=k^2。池化操作的输出为,对应的梯度用表示。该方法以自然指数(e)为基础,保证了较大的激活值对输出的影响较大。SoftPool是可微的,所有在局部邻域内的激活在反向传播期间将被分配至少一个最小梯度值。这与使用最大池化的方法相反。SoftPool利用激活区域内的最大近似R。每一个指数为的激活应用一个权重,该权重计算为该激活的自然指数与邻域R内所有激活的自然指数之和的比值:
权重与相应的激活值一起用作非线性变换。较高的激活比较低的激活占更多的主导地位。SoftPool操作的输出值是通过对内核邻域R内所有加权激活的标准求和得到的:
与其他基于最大池化和平均池化的方法相比,使用区域的softmax产生归一化结果,其概率分布与每个激活值相对于核区域的邻近激活值成比例。这与最大激活值选择或对内核区域的所有激活取平均形成了直接对比,而内核区域的输出激活是没有规则化的。因此是可微的。
在训练的更新阶段,所有网络参数的梯度都是根据在上一层计算的误差导数进行更新的。当在整个网络体系结构中反向传播时,这会创建一个更新链。在SoftPool中,梯度更新与前向传播过程中计算的权重成比例。这对应于较小激活的梯度更新小于实质性激活的梯度更新。
Softmax与max或随机池化不同,Softmax是可微的。因此,在反向传播期间,一个最小的非零权值将被分配给一个核区域内的每一个激活。这样就可以计算出该区域每一次激活的梯度。在SoftPool实现中使用了给定精度级别有限范围的可能值,保留了softmax的可微性质,通过给定每个类型使用的比特数分配一个较低的算术限制。这可以防止算术下溢。也为内核值和最终求和中使用的生成的激活值实现了这种机制。
4. Experimental Results 该图展示了使用不同池化进行的下采样,可发现SoftPool有更好的效果。直接在Backbone的基础上把池化方法替换为SotfPool,效果有明显的提升。
SoftPool池化层的替代精度是各种池化方法的最高精度。
标签:downsampling,梯度,SoftPool,Pooling,区域,池化,Refining,激活 来源: https://blog.csdn.net/wangchao710/article/details/120255757