CNN 中池化层(子采样层)的反向传播

Posted

技术标签:

【中文标题】CNN 中池化层(子采样层)的反向传播【英文标题】:Backpropagation in Pooling Layer (Subsamplig layer) in CNN 【发布时间】:2017-04-04 08:49:26 【问题描述】:

我的疑问是如何在 Pooling 层反向传播误差,因为当我计算导数时,只有 4 的 1 个元素(例如,当使用 2x2 池化内核时)会影响前馈的结果。

【问题讨论】:

我投票结束这个问题,因为datascience.stackexchange.com 我怎样才能把这个帖子移到datascience.stackexchange.com? 别担心 - 社区将决定是否应该这样做。如果有 5 个人(和一个版主?)这么认为,那么它会自动移动,你会收到通知。 @Martin Thomas:不确定这是题外话,毕竟 SO 上有一个反向传播标签,问题涉及它的实现。无论如何,我没有足够的声誉在这方面有发言权:) 【参考方案1】:

假设你有一个由四个元素组成的矩阵M

a  b
c  d

ma​​xpool(M) 返回 d。那么,maxpool 函数实际上只依赖于d。所以maxpool相对于d的导数为1,相对于a,b,c的导数为零。所以你将 1 反向传播到对应于 d 的单元,而你对其他单元反向传播 0。

【讨论】:

以上是关于CNN 中池化层(子采样层)的反向传播的主要内容,如果未能解决你的问题,请参考以下文章

卷积层和池化层

caffe源码 池化层 反向传播

卷积层,池化层等,前向/反向传播原理讲解

CNN中池化层的作用?池化有哪些操作?

池化层的反向传播

深度学习基础知识池化层pooling操作如何参与反向传播?