chapter5.md 2.4 KB

5.1 神经元模型

5.2 感知机与多层网络

5.3 误差逆传播算法

对于训练例$(x_k,y_k)$, 假定神经网络输出为 $\hat{y}_k = (\hat{y}_1^k , \hat{y}_2^k,...,\hat{y}_l^k)$ $$ \hat{y}_j^k = f(\beta_j - \theta_j) $$ (5.3) 设网络在 $(x_k,y_k)$的均方误差为 $$ Ek = \frac{1}{2} \sum^l{j=1}(\hat{y}_j^k -y_j^k)^2$$ (5.4)

这里 1/2是为了求导方便消去系数,只是个规定

设 学习率为 $\eta$, 以目标的负梯度方向对参数进行调整的含义是: 目标函数(均方误差 $Ek$)在 $w{hj}$处的负梯度对参数进行调整: $$ \Delta w_{hj} = - \eta\frac{\partial Ek}{\partial w{hj}}$$ (5.6)

根据链式法则: $$ \frac{\partial Ek}{\partial w{hj}} = \frac{\partial E_k}{\partial \hat{y}_j^k}\frac{\partial \hat{y}_j^k}{\partial \beta_j}\frac{\partial \betaj}{\partial w{hj}}$$ (5.7)

根据 $\beta_j$ 的定义, $$ \betaj = \sum^q{h=1} w_{hj}b_h$$

有 $$\frac{\partial \betaj}{\partial w{hj}} = b_h$$ (5.8) 图 5.2 的Sigmoid 函数为 $$ sigmoid(x) = \frac{1}{1+e^{-x}}$$ 所以 $$ f' = \frac{e^{-x}}{(1+e^{-x})^2} = f(x)(1-f(x))$$ (5.9) 根据 5.3和 5.4 $$ - \frac{\partial E_k}{\partial \hat{y}_j^k}\frac{\partial \hat{y}_j^k}{\partial \beta_j} = - (\hat{y}_j^k - y_j^k)f'(\beta_j - \theta_j) = - (\hat{y}_j^k - y_j^k)[\hat{y}_j^k(1-\hat{y}_j^k)] = \hat{y}_j^k(1-\hat{y}_j^k)(y_j^k - \hat{y}_j^k) = g_j$$
(5.10)

$g_j$ 是设出来的变量

将 (5.10)和(5.8)带入(5.7)再带入5.6,可以得到BP算法中关于$w{hj}$的更新公式 $$ \Delta w{hj} = \eta g_j b_h$$ (5.11)

同理有:

$$\Delta\theta_j = -\eta g_j $$ (5.12)

注意这里是把 $\thetaj$ 看做为输入为 -1,系数或者说权重为 $\theta$ 的w, 和$\Delta w{hj}$ 具有等价的地位, 取 $bh = -1$ 带入(5.11)得到的 $$\Delta v{ih} = -\eta \frac{\partial Ek}{\partial v{ih}} $$ $$\frac{\partial Ek}{\partial v{ih}} = \frac{E_k}{\partial{b_h}}\frac{\partial b_h}{\partial \alpha_h}\frac{\partial \alpha_h}{\partial x_i} = e_hx_i$$

所以 $$\Delta v_{ih} = -\eta e_h x_i $$ (5.13) 这里的 $$e_h = \frac{E_k}{\partial{b_h}}\frac{\partial b_h}{\partial \alphah} = -\sum{j=1}^l \frac{\partial E_k}{\partial \beta_j}\frac{\partial \beta_j}{\partial b_h}f'(\alpha - \gammah) = \sum{j=1}^lw_{hj}g_jf'(\alpha_h - \gamma_h) = b_h(1-bh)\sum{j=1}^lw_{hj}g_j$$ 同(5.12)理得到 $$\Delta \gamma_h = -\eta e_h$$ (5.14)