梯度下降公式

数据挖掘 神经网络 梯度下降
2022-02-23 03:05:35

我遇到了一本关于神经网络基础知识的有趣,第一章中的梯度下降公式

梯度下降:对于每一层,根据规则更新权重

wlwlηmxδx,l(ax,l1)T

在哪里wl是层中的权重矩阵l, 和x是特定训练样例的索引。

我不想重写本章中的所有公式,但重要的部分是 BP4 - 成本相对于网络中任何权重的变化率的方程:

Cwjkl=akl1δjl

我是否遗漏了什么或第一个公式不正确?我们不应该像这样使用 Hadamard 产品吗?

wlwlηmxδx,lax,l1

感谢帮助。

1个回答

您可以通过写下在这两种情况下明确获得的结果来查看结果。在更新规则中求和后你想要得到的是:

xδx,l(ax,l1)T=δ1,la1,l1+δ2,la2,l1+...

这是通过文本中给出的形式获得的。

请记住,Hadamard 乘积只能对相同维度的向量进行,并导致另一个相同维度的向量。我想你可以治疗δ作为一个m具有向量分量的维向量(m 是训练示例的数量),并对其进行 Hadamard 乘积a,但你最终会得到另一个m维向量。在那一点上,总结x变得毫无意义。您可以说“做一个 Hadamard 产品,然后对行求和”,这将给出上述结果。

编辑:

我将尝试进一步阐明给定对象的尺寸。假设第 l 层有 j 个神经元,第 l-1 层有 k 个神经元。这使得wl一个(jxk)维矩阵。更新方程必须保持维数,所以右手边也必须是相同大小的矩阵。

现在,a(l1)是一个具有 k 个分量的向量,对应于来自第 l-1 层的神经元的激活。同样,第 l 层的误差有 j 个分量,每个神经元一个。

得到一个(jxk)矩阵,我们取这两个向量的外积,这就是方程中有转置的原因。最后,我们对所有训练样本求和以完成计算。