反向传导算法
From Ufldl
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> | |
+ | \delta^{(l)}_i = \left( \sum_{j=1}^{s_{l+1}} W^{(l)}_{ji} \delta^{(l+1)}_j \right) f'(z^{(l)}_i) | ||
+ | </math> | ||
我认为以上的逐步向前递推求导的过程就是“反向传播”算法的本意所在,推导结束,欢迎指正。 | 我认为以上的逐步向前递推求导的过程就是“反向传播”算法的本意所在,推导结束,欢迎指正。 | ||
] | ] |