反向传播背后的四个基本等式
@ Shen Jianan · Saturday, Nov 5, 2016 · 2 minute read · Update at Nov 5, 2016

再探反向传播神经网络,这是从一个比较有名的线上书《Neural Networks and Deep Learning》上看到并做的笔记。

反向传播背后的四个基本等式

假设在第l层的输入值上有大小为$\Delta{z_j^l}$的扰动,则输出值$\sigma(z_j^l+\Delta{z_j^l})$对于损失函数的影响为$\frac{\partial{C}}{\partial{z_j^l}}\Delta{z_j^l}$。我们的目的是让cost下降,如果$\frac{\partial{C}}{\partial{z_j^l}}$很大的话,可以选取与其符号相反的一个$\Delta{z_j^l}$(但是绝对值也不能太大,否则这个式子就不成立了),如果$\frac{\partial{C}}{\partial{z_j^l}}$很小,那么对于损失函数的影响就很小了。

在此定义:$\delta_j^l \equiv \frac{\partial{C}}{\partial{z_j^l}}$

等式一:误差与输出值的关系函数

$$\delta_j^l = \frac{\partial{C}}{\partial{a_j^l}}\sigma’(z_j^l)$$ 这里的$a_j^l$是$\sigma(z_j^l)$

证明: $$\delta_j^l=\frac{\partial{C}}{\partial{z_j^l}}=\sum_k{\frac{\partial{C}}{\partial{a_k^l}}}\frac{\partial{a_k^l}}{\partial{z_j^l}}$$ $\because z_j^l$只与$a_j^l$有关 $$\therefore \sum_k{\frac{\partial{C}}{\partial{a_k^l}}}\frac{\partial{a_k^l}}{\partial{z_j^l}} = \frac{\partial{C}}{\partial{a_j^l}}\frac{\partial{a_j^l}}{\partial{z_j^l}}$$ $$\because a_j^l=\sigma(z_j^l)$$ $$\therefore \delta_j^l=\frac{\partial{C}}{\partial{a_j^l}}\sigma’(z_j^l)$$

等式二:后一层误差与前一层误差的关系函数

$$\delta^l=[(w^{l+1})^T\delta^{l+1}]\odot\sigma’(z^l)$$ 证明: $$\sigma_j^l=\frac{\partial{C}}{\partial{z_j^l}}=\sum_k{\frac{\partial{C}}{\partial{z_k^{l+1}}}\frac{\partial{z_k^{l+1}}}{\partial{z_j^l}}}=\sum_k{\frac{\partial{z_k^{l+1}}}{\partial{z_j^l}}\delta_k^{l+1}}$$ $$\because z_k^{l+1}=\sum_j{w_{kj}^{l+1}a_j^l+b_k^{l+1}}=\sum_j{w_{kj}^{l+1}\sigma(z_j^l)+b_k^{l+1}}$$ $$\therefore \frac{\partial{z_k^{l+1}}}{\partial{z_j^l}}=\sum_j{w_{kj}^{l+1}\sigma’(z_j^l)}$$ $$\therefore \delta^l=[(w^{l+1})^T\delta^{l+1}]\odot\sigma’(z^l)$$

等式三:误差C因bias而改变的关系函数

$$\frac{\partial{C}}{\partial{b_j^l}}=\delta_j^l$$ 证明: $$\frac{\partial{C}}{\partial{b_j^l}}=\sum_k{\frac{\partial{C}}{\partial{z_k^l}}} \frac{\partial{z_k^l}}{\partial{b_j^l}}=\sum_k{\delta_j^l\frac{\partial{z_k^l}}{\partial{b_j}}}$$ $$\because z_k^l=\sum_j{w_{kj}^la_j^{l-1}+b_j^l}$$ $$\therefore \frac{\partial{z_k^l}}{\partial{b_j}}=1$$ $$\frac{\partial{C}}{\partial{b_j^l}}=\delta_j^l$$

等式四:误差C因权重而改变的关系函数

$$\frac{\partial{C}}{\partial{w_{jk}^l}}=\delta_j^la_k^{l-1}$$

证明: $$\frac{\partial{C}}{\partial{w_{jk}^l}}=\frac{\partial{C}}{\partial{z_j^l}}\frac{\partial{z_j^l}}{\partial{w_{jk}^l}}=\delta_j^la_k^{l-1}$$

由此四公式得出的结论

当$\sigma$为sigmoid函数时,由等式1-4,可以知道在$z$很大或者很小的时候,$\sigma'$趋近于0,所以权重和bias的更新会停滞。这样的神经元状态称为饱和,又因为等式2,所有输入到饱和神经元的权重也都会更新得很缓慢。

About Me

2018.02至今 杭州嘉云数据 算法引擎

2017.6-2017.12 菜⻦网络-⼈工智能部-算法引擎

2016.09-2018.06 南京大学研究生

2015.07-2015.09 阿里巴巴-ICBU-实习

2012.09-2016.06 南京大学本科