第2章:数学与计算基础
优化方法概述
1. 优化问题的定义
在深度学习中,优化问题的核心是最小化损失函数,即找到一组模型参数 ,使得损失函数 达到最小值:
2. 常见优化方法分类
2.1 一阶优化方法
梯度下降(Gradient Descent)
通过迭代更新参数:
其中 为学习率。随机梯度下降(SGD)
每次使用单个样本或小批量数据计算梯度,适合大规模数据集。
2.2 自适应学习率方法
Momentum
引入动量项加速收敛:Adam
结合动量与自适应学习率,通过一阶矩和二阶矩估计调整步长。
2.3 二阶优化方法
- 牛顿法
利用Hessian矩阵加速收敛:
计算成本高,适用于小规模问题。
3. 优化方法对比
| 方法 | 优点 | 缺点 |
|---|---|---|
| SGD | 简单,内存占用小 | 收敛慢,易陷入局部最优 |
| Adam | 自适应学习率,适合稀疏数据 | 超参数敏感 |
| 牛顿法 | 二次收敛速度 | 计算Hessian矩阵代价高 |
4. 深度学习中的优化挑战
- 局部最优与鞍点:高维空间中鞍点比局部最优更常见。
- 梯度消失/爆炸:深层网络中梯度可能指数级变化。
- 超参数调优:学习率、批量大小等对结果影响显著。
5. 代码示例(Python伪代码)
# Adam优化器实现示例
def adam_update(params, grads, m, v, t, lr=0.001, beta1=0.9, beta2=0.999, eps=1e-8):
for param, grad in zip(params, grads):
m = beta1 * m + (1 - beta1) * grad
v = beta2 * v + (1 - beta2) * (grad ** 2)
m_hat = m / (1 - beta1 ** t)
v_hat = v / (1 - beta2 ** t)
param -= lr * m_hat / (np.sqrt(v_hat) + eps)
return params, m, v
延伸阅读
- 《Deep Learning》Chapter 8: Optimization for Training Deep Models
- 论文:Adam: A Method for Stochastic Optimization (Kingma & Ba, 2015)
---
**注**:此内容包含数学公式、对比表格和代码示例,可根据需要调整细节或补充具体案例(如不同优化器在MNIST数据集上的性能对比)。