本章涉及的内容主要是多层神经网络,包括其工作原理,以及如何对其进行训练以解决复杂问题等。不过在深入讨论多层神经网络结构之前,我们先简要回顾下第2章中介绍的单层神经网络的相关概念,即如下图所示的自适应线性神经元(Adaline)算法:
在第2章中,我们实现了用于二类别分类的Adaline算法,并通过梯度下降优化算法来学习模型的权重系数。训练集上的每一次迭代,我们使用如下更新规则来更新权重向量w:
换句话说,我们基于整个训练数据集来计算梯度,并沿着与梯度▽J(w)相反的方向前进以更新模型的权重。为了找到模型的最优权重,我们将待优化的目标函数定义为误差平方和(SSE)代价函数J(w)。此外,我们还为梯度增加了一个经过精心挑选的因子:学习速率η,在学习过程中用于权衡学习速度和代价函数全局最优点之间的关系。
在梯度下降优化过程中,我们在每次迭代后同时更新所有权重,并将权重向量w中各权值wj的偏导定义为:
其中,y(i)为特定样本x(i)的真实类标,a(i)为神经元的激励,它是Adaline在特定情形下的线性函数。此外,我们将激励函数φ(·)定义为:
其中,净输入z是输入与权重的线性组合,用于连接输入和输出层:
使用激励φ(z)来计算梯度更新时,我们定义了一个阈值函数(单位阶跃函数)将连续的输出值转换为二类别分类的预测类标:
请注意:尽管Adaline包含一个输入层和一个输出层,但由于两层之间只有单一的网络连接,因此仍旧称为单层神经网络。