多层感知机(MLP)是一种人工神经网络,由输入层、一个或多个隐藏层以及输出层组成。在其通常形式中,相邻层之间采用全连接:一层中的每个单元都与下一层中的每个单元建立可训练的连接。信息沿前向传播,不存在循环连接。多层感知机在机器学习中用于学习非线性关系,尤其适用于分类和回归任务,也是深度学习的一种基础架构。(scikit-learn.org)
架构与计算
多层感知机接收数值输入向量,并通过逐层计算对其进行变换。对于第 个隐藏层,其计算可写为:
其中, 是权重矩阵, 是偏置向量, 是激活函数,通常分别作用于向量的各个分量。括号内的运算是一个仿射映射。层的宽度指其单元数量;深度则描述连续计算层的数量。层数的计数方式并不统一:包含输入层、隐藏层和输出层的架构可以称为三层网络,也可以在仅计算具有可训练参数的层时称为两层网络。(d2l.ai)
非线性激活至关重要。如果在仿射变换之间不引入非线性,无论有多少层,复合后的结果仍然是一个仿射变换。常见的激活函数包括逻辑 sigmoid 函数、双曲正切函数,以及定义为 的修正线性单元(ReLU)。因此,隐藏层使表征学习成为可能:中间特征由网络学习得到,而非逐一预先指定。(d2l.ai)
对于宽度分别为 和 的相邻两层,带有偏置的全连接层包含 个可训练参数。因此,增加层的宽度可能显著提高存储需求和计算量。这一参数数量可直接根据权重矩阵和偏置向量的维度得出。(en.d2l.ai)
输出与训练
在监督学习中,多层感知机从训练数据中的输入与目标配对样本中学习。其输出变换取决于具体任务。回归任务通常使用不受值域限制的仿射输出,并采用均方误差。二分类可使用 sigmoid 输出,而类别互斥的多分类通常使用Softmax函数,并配合交叉熵损失。输出激活函数与损失函数需要配套选择,以体现所要解决的预测问题。(scikit-learn.org)
训练通过调整权重和偏置来降低损失函数的值;损失通常对样本取平均,并附加惩罚项。反向传播沿网络反向应用链式法则,高效计算损失对参数的导数。它是一种计算梯度的方法,而非完整的学习算法:优化器利用这些梯度来更新参数。(deeplearningbook.org)
常见的优化方法包括随机梯度下降和Adam优化器。小批量训练利用部分样本估计参数更新量。学习率控制更新幅度,而层宽、深度、批量大小和激活函数的选择都属于超参数。训练目标通常是非凸的,因此初始化方式和优化器设置可能影响最终得到的解;常规的基于梯度的训练并不能保证找到全局最优解。(scikit-learn.org)
表达能力
单个感知机实现的是线性决策边界,无法表示所有分类问题。异或问题体现了这一局限:在原始的二维输入空间中,其两个类别无法用一条直线分开。多层感知机可以通过隐藏单元变换输入,使输出单元能够区分变换后的表征。(deeplearningbook.org)
通用逼近定理表明,只要采用合适的非线性激活函数,并具有足够多的隐藏单元,含有一个隐藏层的网络就能以任意精度逼近有限维欧几里得空间的紧子集上的任何连续函数。这是关于表征能力的存在性结论。它并未给出高效的训练方法,也不保证有限数据能够揭示所需的函数,更不能确保在采样区域之外预测成功。对于某些函数,增加网络深度可以比浅层网络更节省表示所需的资源。(deeplearningbook.org)
泛化与数值特性
大型多层感知机可能出现过拟合:虽然能够拟合训练样本,但在未见过的数据上却无法取得相当的表现。正则化方法包括抑制过大参数值的权重惩罚,以及在训练过程中随机停用单元的随机失活。标准随机失活在预测时使用完整网络,并进行适当的缩放,而不是保留训练时随机停用单元的状态。这些方法对学习过程施加约束,但并不保证在每个数据集上都能改善性能。(classic.d2l.ai)
早停法在验证集上的表现不再改善时终止训练。特征缩放也会影响优化,因为数值范围差异很大的输入可能增加训练难度。网络架构、正则化强度和训练时长都会影响模型在拟合已观测样本与泛化到其他数据之间的平衡。(scikit-learn.org)
在导数逐层传播的过程中,深层网络可能遇到梯度消失问题,也可能出现梯度过大的情况。激活函数的饱和特性、权重大小和网络深度都会影响这种行为。随机初始化能够打破隐藏单元之间的对称性,而根据输入侧和输出侧层宽设计的初始化方案有助于控制激活值和梯度的尺度。(classic.d2l.ai)
历史发展与架构中的作用
1986 年,大卫·鲁梅尔哈特、杰弗里·辛顿和罗纳德·威廉斯发表论文《通过误差反向传播学习表征》(Learning representations by back-propagating errors),展示了由误差驱动的权重调整如何使隐藏单元获得有用的内部特征。这篇论文对多层网络学习的阐述产生了重要影响,但并不意味着其所依赖的各种求导技术都是首次提出。(nature.com)
多层感知机也可作为更大架构中的组件。在最初的Transformer架构中,每个编码器层和解码器层都包含一个逐位置前馈网络,由两个仿射变换及其间的 ReLU 构成。同一个变换独立应用于序列中的每个位置,与负责在不同位置之间交换信息的注意力机制相互补充。(arxiv.org)