【发布时间】:2019-09-11 20:27:06
【问题描述】:
我阅读了 this 关于反向传播如何工作的文章,我理解他们所说的一切。他们说要找到梯度,我们必须对每个权重/偏差取成本函数的偏导数。然而,为了解释这一点,他们使用了一个每层有一个节点的网络。对于每层有多个节点的网络,如何进行反向传播?
【问题讨论】:
标签: machine-learning neural-network deep-learning backpropagation gradient-descent
我阅读了 this 关于反向传播如何工作的文章,我理解他们所说的一切。他们说要找到梯度,我们必须对每个权重/偏差取成本函数的偏导数。然而,为了解释这一点,他们使用了一个每层有一个节点的网络。对于每层有多个节点的网络,如何进行反向传播?
【问题讨论】:
标签: machine-learning neural-network deep-learning backpropagation gradient-descent
我在这里提出的数学没有仔细检查过,所以如果有人在这里看到错误,请纠正我!
无论如何,下面的图像是一个非常简单的反向传播示例。如您所见,我们对 损失函数 L 的梯度感兴趣(在这种情况下,损失函数非常简单,在此示例之外并不好)相对于 权重 W 为了根据 梯度下降优化器 更新权重(还有其他更好的优化器,但梯度下降是最容易理解的,所以我建议你阅读它) .我想你理解的关键是方框中的第一个方程,你可以看到你首先使用链式法则,然后总结这给你的所有梯度.
为了进一步理解,我建议你写出前向传播的所有方程,然后计算每一层的 dL/dW 和 dL/da 的链式法则。如果您进一步分解方程并设置 a = f(z), z = W * X (为了使链式法则更直观;即 dL /dW = dL/da*da/dz*dz/dW)。您还可以阅读多个指南以进一步了解。
【讨论】: