机器学习多层感知机梯度推导

机器学习多层感知机梯度推导

在我的前一篇文章中,已经推导出了单层感知机梯度的计算公式
单层感知机梯度推导

机器学习多层感知机梯度推导
φEφwj0=(Ot)σ(x01))(1σ(x01)))xj0 \frac {\varphi_E} {\varphi_{w_{j_0}}} = (O - t) \sigma(x_0^1))(1 - \sigma(x_0^1))) {x_j^0} \\

**函数不变:
sigmoid=11+ex sigmoid = \frac 1 {1 + e^{-x}}
**函数求导:
sigmoid=σ(x)(1σ(x))() sigmoid' = \sigma(x)(1 - \sigma(x)) \\ (具体过程参照上面链接)
损失函数:MSE
E=12Σi=0m(Oktk)2 E = {\frac 1 2}\Sigma_{i=0}^m(O_k - t_k)^2
多层感知机:
机器学习多层感知机梯度推导
Wjkjk 设置前一层对后一层的权值为W{_j}{_k}\\j为前一层的结点位置,k为后一层的结点位置,如图:
机器学习多层感知机梯度推导
φEφWjk即求解 \frac {\varphi_E} {\varphi_{W_{j_k}}}
φEφWjk=φ12Σi=0m(Oktk)2φWjk \frac {\varphi_E} {\varphi_{W_{j_k}}} = \frac {\varphi{{\frac 1 2}\Sigma_{i=0}^m(O_k - t_k)^2}} {\varphi_{W_{j_k}}}
i=k0φEφWjk=φ12(Oktk)2φWjk 只有当i = k时导数不为0所以\\ \frac {\varphi_E} {\varphi_{W_{j_k}}} = \frac {\varphi{{\frac 1 2}(O_k - t_k)^2}} {\varphi_{W_{j_k}}}
(00t0)2+(01t1)2W01W01(00t0)2 例如 (0_0 - t_0)^2 + (0_1 - t_1)^2对W{_0}{_1}求导从图中可以看出\\W{_0}{_1}对(0_0 - t_0)^2并没有贡献所以相当于常数项求导
φEφWjk=(0ktk)φOkφWjk \frac {\varphi_E} {\varphi_{W_{j_k}}} = (0_k - t_k){\frac {\varphi{O_k }} {\varphi_{W_{j_k}}}}
σ(x)=Ok \sigma(x) = O_k
φEφWjk=(0ktk)φσ(xk1)φWjk \frac {\varphi_E} {\varphi_{W_{j_k}}} = (0_k - t_k){\frac {\varphi{\sigma(x_k^1) }} {\varphi_{W_{j_k}}}}
使φEφWjk=(0ktk)φσ(xk1)φxk1φxk1φWjk 这里使用链式反则\\ \frac {\varphi_E} {\varphi_{W_{j_k}}} = (0_k - t_k){\frac {\varphi{\sigma(x_k^1) }} {\varphi{x_k^1}}} {\frac {\varphi{x_k^1}} {\varphi_{W_{j_k}}} }
:φEφWjk=(0ktk)σ(xk1)(1σ(xk1))φxk1φWjk 结合前面的对**函数求导公式:\\ \frac {\varphi_E} {\varphi_{W_{j_k}}} = (0_k - t_k) \sigma(x_k^1)(1 - \sigma(x_k^1)) {\frac {\varphi{x_k^1}} {\varphi_{W_{j_k}}} }
φEφWjk=(0ktk)0k(10k)φ(Σi=0nxj0Wjk)φWjk \frac {\varphi_E} {\varphi_{W_{j_k}}} = (0_k - t_k)0_k(1 - 0_k) \frac {\varphi (\Sigma_{i=0}^nx_j^0 W{_j}{_k})} {\varphi_{W_{j_k}}}
,Wj0φEφWjk=(0ktk)0k(10k)Wj0 这里同单层感知机一样,导数部分结果为W_j^0 \\ 所以最终结果为:\frac {\varphi_E} {\varphi_{W_{j_k}}} = (0_k - t_k)0_k(1 - 0_k) W_j^0
Ok,tk,Wj0Wjk, 其实,这里不光是完成了一次多层感知器梯度的求导,也是完成了一次反向传播的求解。\\这里我们知道了O_k, t_k, W_j^0 来更新W{_j}{_k},不这是通过结果反过来更新梯度吗
注:以上图片素材来源龙良曲老师的tensorflow课程讲解