https://www.bilibili.com/video/av94519857?p=13
唯一需要知道的就是链式法则:引入隐变量。
只需要计算每1个样本对w的偏微分,然后求和,就得到所有样本对w的偏微分了;(b也是同样的。)
先考虑1个神经元的情况:有两部分,forward pass和backward pass
先看forward pass(就是看wi前边的输入是啥)
例如
再看backward pass,按链式法则展开
假设已知两个红色❓
换个视角:
那如何计算前边的两个红色❓:
分两种情况
- 输出层:取决于cost function,MSE、CE等等;
- 隐藏层:根据链式法则,递归地取决于下一层所有神经元,直到输出层;
实际上,如果从后往前算,就比较直接了:
比如前向传播过程(神经网络):
那反向传播过程(也是一个神经网络):
总结(前向传播计算一部分,反向传播计算一部分,两部分结合起来,就是反向传播算法)