BP算法(李宏毅课堂笔记)
1. GD算法
首先,简要回忆一下GD梯度下降算法:
解读如下:
对于网络参数有w、b等数值,将这些参数统一归为网络参数θ,将损失函数对这些参数进行求导,通过更新规则 来对参数进行更新。先已知初始网络参数 θ0,再求出loss function L(θ0) 的导数,从而得到 θ1,……依次如下,不断更新参数。
对于网络结构可以简化为下图结构:
其中:输入数据 xn,经过网络后生成输出数据 yn,Cn 则是表示输出数据与真实数据之间距离的function,将所有的 Cn 相加得到 Loss function,如下:
为什么需要反向传播?它有什么作用?
当我们想去求 C 对 w 求导时,根据链式法则,我们可以知道 ,其中 是前向传播,是反向传播
2. Forward pass
首先,对于简单一层网络结构,其前向传播求导很简单,如下图所示:
对于多层结构,求导也是很简单!
前向传播很简单, 容易求出。
3. Backward pass
对于求解 ,由于 C 与 z 关系复杂,不像前向传播直接可以计算结果。
假定 与 都已知,那么就有:
可以看成:(反向传播)从后向前!
回到现实中, 与 还是需要计算,具体求解就依照反向传播来进行。
情况一:
假如 z’ 以及 z’’ 之后接的就是输出层,那么 与 易求出
情况二:
假如后面不是直接接输出层,那么就需要一步一步反向来计算。
先计算后面的导数,慢慢向前推。