如何使用点积计算权重的梯度下降成本?

How to calculate gradient descent cost for the weights using a dot product?

我正在尝试从 http://neuralnetworksanddeeplearning.com/chap2.html

重现神经网络

我不明白的是为什么他们可以通过 error/delta 和前一层的转置激活的点积来计算权重的梯度下降。

nabla_w[-1] = np.dot(delta, activations[-2].transpose())

delta 是一维数组。 activations[-2] 也是。我想如果你转置一个一维数组你只会得到一个一维数组.. 所以这个点积只给出一个数字而不是我们想要的矩阵。

那么这个点积怎么能给我一个二维矩阵呢?

有没有一种聪明的方法可以用 numpy 实现这一点(计算权重的梯度下降)?

计算两个向量之间的点积,即您的一维数组,应该是 return 单个标量(值)。在两个向量之间执行叉积将产生一个新向量。

因此,它不能生成矩阵。点积不产生矩阵,只产生标量。 np.dot() 以两个矩阵作为参数将 return 矩阵相乘,但这与点积不同。

np.dot 计算两个向量的点积或内积,前提是 a 和 b 都是一维数组。

对于二维矩阵,它只是 returns 这两个矩阵的乘积。 不要将它与点积混淆,因为点积只能用于向量而不是矩阵。