1. 感知机
感知器模型的输出可以用如下数学方式表示:
y ^ = s i g n ( w d x d + w d − 1 x d − 1 + ⋯ + w 2 x 2 + w 1 x 1 − t ) = s i g n ( w d x d + w d − 1 x d − 1 + ⋯ + w 2 x 2 + w 1 x 1 + w 0 x 0 ) = s i g n ( w ⋅ x ) \hat y = sign(w_dx_d+w_{d-1}x_{d-1}+\cdots+w_2x_2+w_1x_1-t)=sign(w_dx_d+w_{d-1}x_{d-1}+\cdots+w_2x_2+w_1x_1+w_0x_0)=sign(\mathbf w \cdot \mathbf x)y^=sign(wdxd+wd−1xd−1+⋯+w2x2+w1x1−t)=sign(wdxd+wd−1xd−1+⋯+w2x2+w1x1+w0x0)=sign(w⋅x)
其中,w 0 = − t , x 0 = 1 w_0=-t, x_0=1w0=−t,x0=1
注:该公式所描述的感知器模型关于参数w \mathbf ww和属性x \mathbf xx是线性的
学习感知机模型
算法主要计算的是第7步中的权值更新公式:
w j ( k + 1 = w j k + λ ( y i − y i ( k ) ^ ) x i j w_j^{(k+1} = w_j^{k}+\lambda(y_i-\hat{y_i^{(k)}})x_{ij}wj(k+1=wjk+λ(yi−yi(k)^)xij
w ( k ) w^{(k)}w(k)是第 k 次循环后第 i 个输入链上的权值,参数λ \lambdaλ称为学习率,x i j x_{ij}xij是训练样例x i \mathbf{x_i}xi的第 j 个属性
如果λ \lambdaλ接近0,那么新权值主要受旧权值的影响;相反,如果λ \lambdaλ接近1,则新权值对当前循环中的调整量更加敏感。在某些情况下,可以使用一个自适应的λ \lambdaλ值:λ \lambdaλ在前几次循环时相对较大,而在接下来的循环中逐渐减小
2. 多层人工神经网络
在前馈神经网络中,每一层的的结点仅和下一层的结点相连。感知器就是一个单层的前馈神经网络,因为它只有一个节点层——输出层——进行复杂的数学运算。在递归神经网络中,允许同一层借点相连或一层的结点连到前面各层中的结点
2.1 学习ANN模型
ANN学习算法的目的是确定一组权值w \mathbf ww,最小化误差的平方和:
E ( w ) = 1 2 ∑ i = 1 N ( y i − y ^ i ) 2 E(\mathbf w) = \frac{1}{2}\sum_{i=1}^{N}(y_i - \hat y_i)^2E(w)=21∑i=1N(yi−y^i)2
梯度下降使用的权值更新公式可以写成:
w j ← w j − λ ∂ E ( w ) ∂ w j w_j \leftarrow w_j - \lambda\frac{\partial E(\mathbf w)}{\partial w_j}wj←wj−λ∂wj∂E(w)
λ \lambdaλ是学习率,式中第二项说的是权值应该沿着使总体误差项减小的方向增加。然而,由于误差函数是非线性的,因此,梯度下降方法可能会陷入局部最小值
反向传播的每一次迭代包括两个阶段:前向阶段和后向阶段
- 在前向阶段,使用前一次迭代所得到的权值计算网络中每一个神经元的输出值。计算是向前进行的,即先计算 k 层神经元的输出,再计算 k+1 层的输出。
- 在后向阶段,以相反的方向应用权值更新公式,使用反向传播方法可以用 k+1 层神经元的误差来估计 k 层神经元的误差
3. ANN的特点
- 至少含有一个隐藏层的多层神经网络是一种普适近似,即可以用来近似任何目标函数
- ANN可以处理冗余特征,因为权值在训练过程中自动学习。冗余特征的权值非常小
- 神经网络对训练数据中的噪声非常敏感。处理噪声问题的一种方法是使用确认集来确定模型的泛化误差,另一种方法是每次迭代把权值减少一个因子
- ANN权值学习使用的梯度下降的方法经常会收敛到局部极小值,避免局部极小值的方法是在权值更新公式中加上一个动量项(momentum term)