深度学习-链式反向梯度传导

反向梯度传播实例。

计算顺序: 从 loss 向输入传播
导数存储: 每层的导数 $(\Delta y, \Delta x)$ 结果进行存储,用于下一层导数的计算。

假设 $loss = ax_{1,t}+bx_{2,t}+cx_{3,t}+d-y$,当前参数 $m_0 = [a_0, b_0,c_0,d_0]$,那么计算梯度 $\Delta m=[x_{1,t}, x_{2,t}, x_{3,t}, 1]$,也就是分别求偏导。参数的更新为 $m:=m-\eta \Delta m$

下面的例子,黑色加深部分是前向计算的结果,我们的目的是求反向传播梯度。(原谅我 poor hand-writting :( )

1.jpg

小结:

  1. 随机初始化参数
  2. 开启循环:t=0,1,2…
    • 带入数据求出结果 $\hat y_t$
    • 与真值比较得到 $loss=y-\hat y_t$
    • 对各个变量求导得到 $\Delta m$
    • 更新变量 m
    • 如果 loss 足够小或者 t 循环结束,停止
徐阿衡 wechat
欢迎关注:徐阿衡的微信公众号
客官,打个赏呗~