神经网络基础
神经网络是深度学习的核心,通过模拟人脑神经元的连接方式来实现学习和推理。本部分将介绍神经网络的基本组成单元和结构。
01神经元与感知机
神经元是神经网络的基本计算单元,感知机是最简单的神经网络形式,理解它们是学习深度学习的基础。
生物神经元到人工神经元
生物神经元由细胞体、树突和轴突组成。树突接收信号,细胞体处理信号,轴突传递信号给其他神经元。 人工神经元正是对这一过程的数学抽象。
人工神经元的工作原理
对于输入 x = (x₁, x₂, ..., xₙ),神经元计算:
y = f(w₁x₁ + w₂x₂ + ... + wₙxₙ + b) = f(w·x + b)
- w:权重向量,表示每个输入的重要程度
- b:偏置,帮助调整输出
- f:激活函数,引入非线性
感知机原理
感知机是最简单的神经网络,只有一个神经元。它由 Frank Rosenblatt 于1957年提出,是神经网络的起点。
感知机算法
- 初始化权重 w 和偏置 b
- 对每个样本 (x, y):
- 计算预测 ŷ = sign(w·x + b)
- 如果 ŷ ≠ y,更新权重:w = w + η(y - ŷ)x - 重复直到收敛或达到最大迭代次数
感知机的局限性
感知机只能解决线性可分问题,无法解决 XOR 问题。这导致了第一次 AI 寒冬, 直到多层感知机(MLP)的出现才解决了这个问题。
02激活函数
激活函数为神经网络引入非线性,使网络能够学习复杂的模式。没有激活函数,多层网络只是线性变换的堆叠。
常见激活函数
Sigmoid
σ(x) = 1 / (1 + e-x)
特点:输出范围 (0, 1),常用于二分类输出层
缺点:梯度消失问题,计算开销大
Tanh
tanh(x) = (ex - e-x) / (ex + e-x)
特点:输出范围 (-1, 1),零中心
缺点:仍有梯度消失问题
ReLU (Rectified Linear Unit)
ReLU(x) = max(0, x)
特点:计算高效,缓解梯度消失
缺点:Dying ReLU 问题(负区梯度为零)
Leaky ReLU / PReLU
LeakyReLU(x) = max(αx, x), α 通常为 0.01
特点:解决 Dying ReLU 问题
优点:负区也有梯度
GELU
GELU(x) = x · Φ(x), Φ 为标准正态分布的 CDF
特点:Transformer 中广泛使用
优点:平滑近似,比 ReLU 效果更好
Softmax
Softmax(x)i = exi / Σexj
特点:多分类输出层,输出概率分布
注意:数值稳定实现很重要
激活函数选择建议
| 场景 | 推荐激活函数 |
|---|---|
| 隐藏层(默认) | ReLU / GELU |
| 输出层 - 二分类 | Sigmoid |
| 输出层 - 多分类 | Softmax |
| 输出层 - 回归 | Linear / None |
03网络结构
神经网络的结构决定了其学习能力。从全连接层到各种特殊结构,不同的架构设计针对不同的任务。
层类型
全连接层 (Dense / FC)
每神经元与上一层的所有神经元相连。是神经网络的基础结构。
参数:weight matrix W + bias b
卷积层 (Conv)
通过卷积核提取局部特征,参数共享大幅减少参数量。
常用于图像处理。
循环层 (RNN / LSTM / GRU)
引入时间维度的连接,处理序列数据。
LSTM 和 GRU 解决了标准 RNN 的梯度消失问题。
注意力层 (Attention)
通过 Query-Key-Value 机制建模任意位置的关系。
是 Transformer 的核心组件。
Embedding 层
将离散符号映射到连续向量空间。
词嵌入是 NLP 的基础。
常见架构模式
多层感知机 (MLP)
Input → [Dense → Activation] × N → Output
卷积神经网络 (CNN)
Input → [Conv → Pool] × N → Flatten → [Dense] × M → Output
循环神经网络 (RNN)
Input → [RNN/LSTM/GRU] × N → Output
Transformer
Input → [Encoder Block × N] → [Decoder Block × M] → Output
其中 Encoder Block = Multi-Head Attention + Feed Forward
网络宽度 vs 深度
- 宽度 (Width):每层的神经元数量。越宽,模型能捕捉的特征越丰富。
- 深度 (Depth):网络的层数。越深,能学习越复杂的表示。
- 平衡:现代研究显示,适当加深网络通常比单纯加宽更有效。