思考:矩阵乘法的梯度计算推导过程

神经网络中的反向传播中的梯度计算一直是让我和头疼的问题,翻了好多资料,现在记录下自己目前的所得

  1. 结论
    $$
    \text{设\ }y\ =\ f\left( X\ *\ W \right) \ ,\ C=X\ *\ W,\text{则有:}
    $$
    $$
    \frac{\partial y}{\partial W_{i,j}}=X^T\frac{\partial y}{\partial C}
    $$
    $$
    \frac{\partial y}{\partial X_{i,j}}=\frac{\partial y}{\partial C}W^T
    $$

  2. 转载自大佬笔记

  1. 一个可以计算梯度的在线工具
    虽然现在我自己还没玩明白hhh,但是功能应该是很强大

  2. 一个具体推导的例子


  1. 更新一个更简单的方式:
    根据矩阵乘法反向推导更加简单

    比如 正向D = X * W (X: n * m W: m * k D: n * k)
    dD 的shape肯定和D一样
    同理,dW 的shape肯定是m * k,同时dw肯定有dD和X组成,那么根据矩阵乘法原理必须是 x.T.dot(dD)才行

    image.png

posted @ 2022-10-21 15:56  咿呀咿呀悠  阅读(489)  评论(0)    收藏  举报