关于深度学习中卷积层的后向

Regarding to backward of convolution layer in Deep learning

我了解了深度学习中计算前向部分的方法。现在,我想了解后面的部分。我们以 X(2,2) 为例。 X(2,2)位置的backward可以计算如下图

我的问题是公式中的dE/dY(比如dE/dY(1,1),dE/dY(1,2)...)在哪里?如何在第一次迭代时计算它?

简短回答

这些术语在幻灯片底部的最后扩展中;它们对 dE/dX(2,2) 的总和有贡献。在您的第一个 back-propagation 中,您从最后开始并向后工作(因此得名)—— Y 值是 ground-truth 标签。计算它们就这么多了。 :-)

长答案

我会用更抽象的 natural-language 术语来说明这一点。我希望替代解释能帮助您了解全局并理清数学问题。

您开始训练时分配的权重可能与基本事实(标签)无关,也可能完全无关。你盲目地向前移动,基于对这些权重的天真信念在每一层做出预测。 Y(i,j) 值是该信仰的结果 meta-pixels。

然后你点击最后的标签。你向后工作,调整每个重量。请注意,在最后一层,Y 值是 ground-truth 标签。

在每一层,您在数学上处理两个因素:

  1. 这个预测有多远?
  2. 此参数对该预测的贡献有多大?

您将 X-to-Y 权重调整 "off * weight * learning_rate"。 当你完成第 N 层时,你回到第 N-1 层并重复。

进展

无论你用固定值还是随机值初始化你的权重(我通常推荐后者),你会注意到在早期迭代中确实没有太多进展。由于这是 guess-work 权重的缓慢调整,因此需要多次迭代才能在最后一层中获得一丝有用的学习。在这一点上,第一层仍然毫无头绪地挣扎着。损失函数将在接近其初始值附近反弹一段时间。比如GoogLeNet的图像识别,这个flailing持续了大约30个epochs。

然后,最后,你在后面的层中得到了一些有效的学习,模式足够稳定,以至于一些一致性渗透回前面的层。此时,您会看到损失函数下降到 "directed experimentation" 水平。从那里开始,进展在很大程度上取决于问题的范式和结构:有些急剧下降,然后逐渐收敛;有些则急剧下降,然后逐渐收敛。其他人的下降更为缓慢,几乎呈指数衰减收敛;更复杂的拓扑在中间或早期阶段有额外的急剧下降 "get their footing"。