第3章:神经网络核心
3.1 感知机与多层感知机
1. 感知机(Perceptron)
定义:
感知机是Frank Rosenblatt于1957年提出的二分类线性模型,是神经网络的最基本单元。其数学表达式为:
其中:
- (x_i) 为输入特征,(w_i) 为权重,(b) 为偏置项。
- (f) 为激活函数(如阶跃函数),输出分类结果(通常为0或1)。
局限性:
- 仅能解决线性可分问题(如AND、OR逻辑),无法处理非线性问题(如XOR逻辑)。
2. 多层感知机(MLP, Multilayer Perceptron)
结构:
MLP通过堆叠多个感知机构成,包含:
- 输入层:接收原始数据。
- 隐藏层(≥1层):每层由多个神经元组成,使用非线性激活函数(如ReLU、Sigmoid)。
- 输出层:根据任务类型选择激活函数(如Softmax用于多分类)。
数学表达:
对于第(l)层的输出(a^{(l)}):
其中(W^{(l)})为权重矩阵,(b^{(l)})为偏置向量。
优势:
- 可逼近任意连续函数(万能逼近定理)。
- 能够解决非线性分类和回归问题。
3. 关键概念
全连接(Dense):
相邻层的神经元两两相连,权重独立。
代码示例(PyTorch):import torch.nn as nn model = nn.Sequential( nn.Linear(784, 256), # 输入层→隐藏层 nn.ReLU(), nn.Linear(256, 10) # 隐藏层→输出层 )参数初始化:
常用方法包括Xavier初始化(适应Sigmoid/Tanh)和He初始化(适应ReLU)。与单层感知机的对比:
特性 单层感知机 多层感知机 解决非线性问题 ❌ ✔️ 隐藏层数量 0 ≥1 激活函数 阶跃函数 ReLU/Sigmoid等
4. 应用示例
- 手写数字识别(MNIST):
MLP输入层784维(28×28像素),隐藏层128维,输出层10维(0~9分类)。 - 房价预测:
输入层为房屋特征(面积、位置等),输出层为连续值(房价)。
5. 常见问题
- 梯度消失:深层MLP中梯度逐层衰减,可通过ReLU或残差连接缓解。
- 过拟合:使用Dropout或L2正则化。
扩展阅读:
可结合反向传播算法(见3.4节)理解MLP的训练过程。
此内容覆盖了感知机与MLP的核心概念、数学原理、实现细节及对比,同时关联后续章节知识点(如激活函数、训练方法)。可根据需要增加图示(如MLP结构图)或具体训练代码示例。