感知机学习规则: 对训练样例 ( x , y ) (x,y) (x,y),若当前感知机的输出为 y ^ \hat{y} y^,则感知机权重进行如下调整: w i ← w i + Δ w i Δ w i = η ( y − y ^ ) x i \begin{array}{cc} w_i \leftarrow w_i + \Delta w_i \\ \Delta w_i = \eta(y-\hat{y})x_i \end{array} wi←wi+ΔwiΔwi=η(y−y^)xi 其中 η ∈ ( 0 , 1 ) \eta \in (0,1) η∈(0,1)称为学习率。
BP算法基本流程: 输入: 训练集 D = { ( x k , y k ) } k = 1 m D=\{(x_k,y_k)\}_{k=1}^m D={(xk,yk)}k=1m 学习率 η \eta η 过程: (1) 在 ( 0 , 1 ) (0,1) (0,1)范围内随机初始化网络中所有连接权和阈值; (2) repeat (3) for all ( x k , y k ) ∈ D (x_k,y_k) \in D (xk,yk)∈Ddo (4) 根据当前参数和 y ^ j k = f ( β j − θ j ) \hat{y}_j^k = f(\beta_j-\theta_j) y^jk=f(βj−θj)计算当前样本的输出 y ^ k \hat{y}_k y^k; (5) 根据 g j = y ^ j k ( 1 − y ^ j k ) ( y j k − y ^ j k ) g_j= \hat{y}_j^k (1-\hat{y}_j^k )(y_j^k-\hat{y}_j^k) gj=y^jk(1−y^jk)(yjk−y^jk)计算输出层神经元的梯度项 g j g_j gj; (6) 根据 e h = b h ( 1 − b h ) ∑ j = 1 l w h j g j \displaystyle e_h=b_h(1-b_h)\sum_{j=1}^l w_{hj} g_j eh=bh(1−bh)j=1∑lwhjgj隐藏层神经元的梯度项 e h e_h eh; (7) 更新连接权 w h j , v i h w_{hj},v_{ih} whj,vih与阈值 θ j , γ h \theta_j,\gamma_h θj,γh; (8) end for (9) until 达到停止条件 输出: 连接权与阈值确定的多层前馈神经网络
BP算法更新规则: 基于每个样本的预测值与真实类标的均方误差来进行权值调节,即每次更新只针对单个样例。其最终目标是要最小化整个训练集 D D D上的累积误差,即: E = 1 m ∑ k = 1 m E k \displaystyle E=\frac{1}{m} \sum_{k=1}^m E_k E=m1k=1∑mEk
正则化(regularization):在误差目标函数中增加一个用于描述网络复杂度的部分,例如连接权重与阈值的平方和,其中 λ ∈ ( 0 , 1 ) \lambda \in (0,1) λ∈(0,1)用于对经验误差与网络复杂度这两项进行折中,常通过交叉验证法来估计。 E = λ 1 m ∑ k = 1 m E k + ( 1 − λ ) ∑ i w i 2 E=\lambda \frac{1}{m} \sum_{k=1}^m E_k+(1-\lambda) \sum_{i} w_i^2 E=λm1k=1∑mEk+(1−λ)i∑wi2