多层感知机(MLP)是深度学习模型的一个基本类别,通过引入一个或多个隐藏层,超越了简单的线性模型。本页面解释了MLP的架构、实现和训练,包括用于改进其性能的技术,如正则化和适当的初始化。有关线性网络的信息,请参阅线性网络。
多层感知机的关键创新是在输入层和输出层之间增加了隐藏层,这使得模型能够学习数据中复杂、非线性的模式。与只能表示直线关系的线性模型不同,MLP可以近似任意连续函数。
线性模型受到其单调性假设的限制——特征值的任何增加都必须总是增加或总是减少输出。这对于图像分类等任务来说是成问题的,因为像素和类别之间的关系无法用线性方式表达。
来源:[chapter_multilayer-perceptrons/mlp.md:24-56]
MLP的架构包括:
这是一个典型的单隐藏层MLP
来源:[chapter_multilayer-perceptrons/mlp.md:66-82], [chapter_multilayer-perceptrons/mlp.md:95-116]
对于一个批量样本 X ∈ ℝⁿˣᵈ,其中 n 是样本数,d 是输入特征数,以及一个具有 h 个单元的隐藏层:
其中
来源:[chapter_multilayer-perceptrons/mlp.md:83-147]
激活函数在网络中引入了非线性,使其能够建模复杂的关系。没有它们,多个层仍然只能产生线性变换。
由于其简单性和有效性,是最流行的激活函数。
ReLU(x) = max(0, x)
ReLU激活会简单地将负值替换为零,同时保持正值不变。
来源:[chapter_multilayer-perceptrons/mlp.md:171-287]
将输入压缩到(0,1)的范围内。
sigmoid(x) = 1/(1 + exp(-x))
虽然历史上很受欢迎,但sigmoid函数对于大的正值或负值输入可能导致梯度消失,使训练变得困难。
将输入映射到(-1,1)的范围内。
tanh(x) = (1 - exp(-2x))/(1 + exp(-2x))
与sigmoid类似,但以零为中心,这有助于优化。
来源:[chapter_multilayer-perceptrons/mlp.md:294-453]
实现MLP主要有两种方法:从零开始实现和使用高级API。
从零开始实现方法涉及手动定义:
关键实现组件包括:
来源:[chapter_multilayer-perceptrons/mlp-scratch.md:45-186]
使用高级API,可以更简洁地实现相同的MLP。
这种方法利用了预先构建的层、激活函数和优化器组件,让您可以专注于模型架构而不是实现细节。
来源:[chapter_multilayer-perceptrons/mlp-concise.md:35-86]
训练MLP会带来一些必须解决的挑战,才能有效学习。
适当的初始化对于防止梯度消失和爆炸等问题至关重要。
来源:[chapter_multilayer-perceptrons/numerical-stability-and-init.md:14-168]
Xavier初始化通过根据层维度设置初始权重方差来帮助保持稳定的梯度流。
Var[W] = 2/(n_in + n_out)
其中 n_in 和 n_out 是该层的输入和输出单元的数量。
来源:[chapter_multilayer-perceptrons/numerical-stability-and-init.md:192-254]
具有足够容量的MLP很容易过拟合训练数据。正则化技术有助于防止这种情况。
权重衰减(L2正则化)根据权重的平方范数向损失函数添加惩罚项。
L_regularized = L_original + (λ/2)||w||²
这鼓励使用较小的权重和更简单的模型。
来源:[chapter_multilayer-perceptrons/weight-decay.md:25-104]
Dropout在训练期间会随机禁用神经元,迫使网络更加健壮。
在推理过程中,所有神经元都被使用(通常会适当缩放它们的输出)。
来源:[chapter_multilayer-perceptrons/dropout.md:96-105]
来源:[chapter_multilayer-perceptrons/underfit-overfit.md:17-131], [chapter_multilayer-perceptrons/underfit-overfit.md:197-214]
K折交叉验证有助于模型选择和超参数调整。
当数据有限时,这尤其有价值。
来源:[chapter_multilayer-perceptrons/underfit-overfit.md:188-195]
此代码库中的 MLP 系统组织如下:
这种组织方式允许采用循序渐进的学习方法,从基本概念到实际应用。
MLP的一个重要理论基础是万能近似定理,该定理指出,具有单个隐藏层的前馈网络可以在任意精度下近似ℝⁿ上的紧致子集上的任何连续函数,前提是隐藏单元足够多。
这为MLP在实践中表现良好的原因提供了理论依据,尽管它不能保证我们能有效地找到正确的参数,或者所需的隐藏单元数量是实际可行的。
来源:[chapter_multilayer-perceptrons/mlp.md:154-169]
多层感知机通过添加带有非线性激活函数的隐藏层来扩展线性模型,使其能够学习数据中的复杂模式。关键概念包括:
MLP构成了更复杂的神经网络架构的基础,是深度学习系统中必不可少的构建块。