当步幅大于 1 时,如何计算误差相对于卷积层输入的导数?

人工智能 卷积神经网络 反向传播 梯度下降 卷积层
2021-11-01 01:44:49

我读到计算误差相对于卷积层输入的导数与在下一层的增量和旋转的权重矩阵之间进行卷积相同,即类似于180°

δijl=δijl+1rot180(Wl+1)f(xijl)

卷积算子。这对有效。stride=1

但是,当 stride 大于时会发生什么?它仍然是带有内核旋转的卷积还是我无法进行这种简化?1

3个回答

步幅 > 1 的反向传播动画

步幅 > 1 的反向传播涉及梯度张量的扩张,步幅为 1 零。我创建了一篇博客文章,更详细地描述了这一点。

从下面链接的帖子中找到的论文:

“我们发现,在几个图像识别基准测试中,最大池化可以简单地用一个步幅增加的卷积层代替,而不会损失准确性”

这意味着只有值被跳过(=池化)到矩阵中,否则所有的工作都像卷积一样。

资料来源:

https://arxiv.org/pdf/1412.6806.pdf

https://stackoverflow.com/questions/44666390/max-pool-layer-vs-convolution-with-stride-performance

我也有同样的问题,我试图用 stride 推导出卷积层的反向传播,但它不起作用。

当您在前向传播中进行跨步时,您选择彼此相邻的元素与内核进行卷积,然后执行步。这导致在反向传播中,在反向操作中,增量矩阵元素将乘以内核元素(带有旋转)但不是跨步,但是您正在选择不相邻的元素,像之类的东西,它不等同于卷积步幅>1DY11K11+DY13K12+DY31K21+DY33K22>1

所以就我而言,如果我想自己实现 ConvNet 以更好地理解这个概念,我必须为反向传播实现不同的方法,如果我允许大步前进的话。