多层感知机:深度学习的基础
多层感知机:深度学习的基础
多层感知机(MLP)是深度学习中最基础的神经网络模型之一,它通过引入隐藏层和激活函数,突破了传统感知机的线性分类限制,能够处理更复杂的非线性问题。本文将从感知机的基本概念出发,逐步深入到多层感知机的结构、训练过程以及相关的重要概念,如激活函数、前向传播、反向传播等。
感知机
感知机是由美国学者Frank Rosenblatt在1957年提出的。对于输入向量x,权重向量w和偏差b,感知机的输出可以表示为:
$$
output = \begin{cases}
1 & \text{if } w^T x + b > 0 \
0 & \text{otherwise}
\end{cases}
$$
其中,w是控制输入信号重要性的参数,b是调整神经元被激活的容易程度的参数。
感知机主要用于二分类任务(输出0或1),与回归(输出实数)和Softmax(输出概率,用于多分类)相比,具有其特定的应用场景。
感知机的应用
感知机可以用于实现简单的逻辑电路,如与门、与非门和或门。然而,感知机也存在局限性,即只能表示由一条直线分割的空间。面对线性不可分的情况,需要引入非线性的曲线来划分非线性空间,这就是多层感知机的由来。
多层感知机
多层感知机是深度神经网络的基础,通过引入隐藏层来解决感知机的线性分类限制。最简单的多层感知机包含一个隐藏层,其结构如下:
对于单隐藏层的多层感知机,其结构可以进一步细化为:
- 输入层:接收外部输入数据
- 隐藏层:对输入数据进行非线性变换
- 输出层:产生最终的预测结果
激活函数
激活函数在神经元中扮演着至关重要的角色。为了增强网络的表示能力和学习能力,激活函数需要满足以下条件:
- 连续并可导(允许少数点上不可导)的非线性函数
- 激活函数及其导函数要尽可能简单,有利于提高网络计算效率
- 激活函数的导函数的值域要在一个合适的区间内,不能太大也不能太小,否则会影响训练的效率和稳定性
常用的激活函数包括Sigmoid、Tanh和ReLU等。
多层感知机总结
多层感知机通过隐藏层和激活函数来构建非线性模型。常用的激活函数有Sigmoid、Tanh和ReLU。对于多分类任务,通常使用Softmax函数。多层感知机的超参数主要包括隐藏层数和各隐藏层的大小。
学习过程
神经网络的学习过程可以分为以下几个步骤:
- 前向传播(正向传播):输入样本依次通过输入层、各隐藏层,最终到达输出层,产生预测结果。
- 反向传播(误差反传):从输出层开始,逐层计算损失函数关于各层权重的梯度,并根据梯度更新权重。
训练误差和泛化误差
- 训练误差:模型在训练数据集上的误差
- 泛化误差:模型在新数据集上的误差
过拟合和欠拟合
- 过拟合:当学习器把训练样本学得"太好"了的时候,很可能已经把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质
- 欠拟合:对训练样本的一般性质尚未学好
模型的复杂度、数据的复杂度、样本数量、特征数量、时间空间结构和多样性等因素都会影响模型的泛化能力。