反向传导算法

From Ufldl

Jump to: navigation, search
Line 140: Line 140:
[译者注:由于原作者简化了推导过程,会影响理解,我将推导过程补全为以下公式:
[译者注:由于原作者简化了推导过程,会影响理解,我将推导过程补全为以下公式:
:<math>
:<math>
-
\delta^{(n_l)}_i = \frac{\partial}{partial z^{n_l}_i}J(W,b;x,y)
+
\delta^{(n_l)}_i = \frac{\partial}{\partial z^{n_l}_i}J(W,b;x,y)
-
  = \frac{\partial}{partial z^{n_l}_i}\frac{1}{2} \left\|y - h_{W,b}(x)\right\|^2
+
  = \frac{\partial}{\partial z^{n_l}_i}\frac{1}{2} \left\|y - h_{W,b}(x)\right\|^2
  = - (y_i - a^{(n_l)}_i) \cdot f'(z^{(n_l)}_i)
  = - (y_i - a^{(n_l)}_i) \cdot f'(z^{(n_l)}_i)
</math>
</math>
Line 151: Line 151:
[译者注:由于原作者简化了推导过程,使我本人看着十分费解,于是就自己推导了一遍,将过程写在这里:
[译者注:由于原作者简化了推导过程,使我本人看着十分费解,于是就自己推导了一遍,将过程写在这里:
:<math>
:<math>
-
\delta^{(n_{l-1})} = \frac{\partial}{partial z^{n_l}_i}
+
\delta^{(n_{l-1})}_i = \frac{\partial}{\partial z^{n_l-1}_i}J(W,b;x,y) = \frac{\partial}{\partial z^{n_l}_i}J(W,b;x,y)\cdot\frac{\partial z^{n_l}_i}{\partial z^{n_{l-1}}_i}
 +
</math>
 +
:<math>
 +
= \delta^{(n_l)}_i\cdot\frac{\partial z^{n_l}_i}{\partial z^{n_{l-1}}_i} = \delta^{(n_l)}_i\cdot\frac{\partial}{\partial z^{n_{l-1}}_i}\sum_{j=1}^{s_{l-1}} W^{n_l-1}_{ji} f(z^{n_l-1}_i)
 +
= \left( \sum_{j=1}^{s_{l-1}} W^{n_l-1}_{ji} \delta^{(n_l)}_i \right) f(z^{n_l-1}_i)
</math>
</math>
根据递推过程,将n_l-1与n_l的关系替换为l与l+1的关系,可以得到原作者的结果:
根据递推过程,将n_l-1与n_l的关系替换为l与l+1的关系,可以得到原作者的结果:
-
<math>公式</math>
+
::<math>
 +
                \delta^{(l)}_i = \left( \sum_{j=1}^{s_{l+1}} W^{(l)}_{ji} \delta^{(l+1)}_j \right) f'(z^{(l)}_i)
 +
                </math>
我认为以上的逐步向前递推求导的过程就是“反向传播”算法的本意所在,推导结束,欢迎指正。
我认为以上的逐步向前递推求导的过程就是“反向传播”算法的本意所在,推导结束,欢迎指正。
]
]

Revision as of 17:14, 7 March 2013

Personal tools