多层感知机
1. 多层感知机(MLP)简介
多层感知机是一种前馈式人工神经网络,是深度学习领域中最基础但功能强大的模型之一。与单层感知机相比,多层感知机能够学习并解决非线性问题,这使其成为现代神经网络架构的基石。
1.1 原理与结构
多层感知机由三类层组成:
- 输入层:接收外部数据,每个节点对应一个输入特征
- 隐藏层:一个或多个中间处理层,执行非线性变换,提取特征表示
- 输出层:产生最终预测结果,节点数通常与任务类别数量相关
每层由多个神经元组成,相邻层的神经元之间全连接。数学上,MLP可表示为:
$$h^{(1)} = \sigma(W^{(1)}x + b^{(1)})$$
$$h^{(2)} = \sigma(W^{(2)}h^{(1)} + b^{(2)})$$
$$\ldots$$
$$\hat{y} = \sigma(W^{(L)}h^{(L-1)} + b^{(L)})$$
其中,$\sigma$是激活函数(如ReLU、Sigmoid等),$W$是权重矩阵,$b$是偏置向量。
激活函数
激活函数引入非线性变换,常用的激活函数包括:
- ReLU: $f(x) = \max(0, x)$,计算高效,有效缓解梯度消失问题
- Sigmoid: $f(x) = \frac{1}{1 + e^{-x}}$,输出范围(0,1),适合二分类问题
- Tanh: $f(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}$,输出范围(-1,1),中心对称特性好
1.2 训练过程
MLP通过反向传播算法训练:
- 前向传播:输入数据通过网络,计算预测输出
- 计算损失:根据预测值和实际值计算损失函数值(如交叉熵损失、均方误差等)
- 反向传播:计算损失函数对各参数的梯度,使用链式法则传递误差
- 参数更新:使用优化算法(如梯度下降法、Adam等)更新参数
a)常用损失函数
- **均方误差(MSE)**:回归问题常用,$L = \frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2$
- 交叉熵损失:分类问题常用,$L = -\sum_{i=1}^{n} y_i\log(\hat{y}_i)$
b)优化算法
- **随机梯度下降(SGD)**:每次使用一小批数据更新参数
- Adam:结合动量和自适应学习率的优化方法
- RMSprop:自适应调整不同参数的学习率
1.3 应用场景
MLP广泛应用于:
- 图像识别:手写数字识别、简单物体分类
- 语音识别:语音特征提取与模式匹配
- 自然语言处理:文本分类、情感分析
- 金融预测:股票价
实现示例
1 |
|
多层感知机
http://neutrino.top/2025/03/27/多层感知机/