重点
- 根据不同类型,上采用上层反向传入的梯度信息
池化层反向传播公式推导
池化层在深度学习网络架构中的作用包括:
* 减少计算量
减少特征图尺寸,减少后面的层的计算量
- 提高多尺度信息
如果存在多个池化层,就相当于网络中构造了一个多尺度特征金字塔,多尺度金字塔有利于提高检测/识别的稳定性
上述是池化层的优势,但是随着研究的深入,池化层的劣势也逐渐被发现,比如有实验发现”均值池化不利于网络的收敛”,至于网络稳定性的问题,也有文献怀疑resnet这之类加深网络结构的优化会降低网络对目标位置误差的鲁棒性,池化带来的优势被抵消了不少,感觉是一个鸡肋般的层.
不论如何,池化层目前还是被广泛使用的,本文主要说明池化层如何进行反向误差传播的.
BP算法的具体推导可以参考BP反向传播公式推导,其中推导了梯度信息从
层传递到
层的公式如下:
池化层是没有激励函数的,可以认为激励函数
,其导数
=1.
池化层也没有可学习的权重
,可以认为
所以上面的反向传播公式简化成
似乎很简单,直接复制就可以了,但是池化层是会改变特征图尺寸的,所以上面等式两边的尺度不同,不能直接复制. 解决方法就是根据池化层类型,对梯度信息做上采样,令尺度相同.
均值池化
为了简单起见,假设池化层的 .如果 ,则输出特征图中一个元素对应着 个输入元素. 反向传播时,把反向传播进来的梯度平均分配给
个元素,达到上采样的目的最大值池化
和均值池化类似,但是不是平均分配,而是直接复制给 个元素中, 输入值最大的那个元素. 具体实现时,forward()时可以记录下max pooling取最大值的元素位置,反向时直接根据这个记录进行复制