深度学习:优化算法

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

后一修订版
前一修订版
深度学习:优化算法 [2026/03/02 20:24] – 创建 张叶安深度学习:优化算法 [2026/03/02 21:49] (当前版本) – [4.4.1 大批量训练的挑战] 张叶安
行 8: 行 8:
  
 集合$C$是凸集,如果对于任意$\mathbf{x}, \mathbf{y} \in C$和$\theta \in [0, 1]$,有: 集合$C$是凸集,如果对于任意$\mathbf{x}, \mathbf{y} \in C$和$\theta \in [0, 1]$,有:
 +
 $$\theta \mathbf{x} + (1-\theta) \mathbf{y} \in C$$ $$\theta \mathbf{x} + (1-\theta) \mathbf{y} \in C$$
  
 函数$f$是凸函数,如果对于任意$\mathbf{x}, \mathbf{y}$和$\theta \in [0, 1]$,有: 函数$f$是凸函数,如果对于任意$\mathbf{x}, \mathbf{y}$和$\theta \in [0, 1]$,有:
 +
 $$f(\theta \mathbf{x} + (1-\theta) \mathbf{y}) \leq \theta f(\mathbf{x}) + (1-\theta) f(\mathbf{y})$$ $$f(\theta \mathbf{x} + (1-\theta) \mathbf{y}) \leq \theta f(\mathbf{x}) + (1-\theta) f(\mathbf{y})$$
  
 凸优化问题具有良好的性质: 凸优化问题具有良好的性质:
-- 任何局部最优都是全局最优 +  - 任何局部最优都是全局最优 
-- 可以使用高效的优化算法 +  - 可以使用高效的优化算法 
-- 收敛性有理论保证+  - 收敛性有理论保证
  
 **神经网络的非凸性** **神经网络的非凸性**
  
 深度神经网络的损失函数通常是高度非凸的,原因包括: 深度神经网络的损失函数通常是高度非凸的,原因包括:
-- 网络结构的非线性 +  - 网络结构的非线性 
-- 多个隐藏层导致的函数复合 +  - 多个隐藏层导致的函数复合 
-- 大量参数形成的复杂损失曲面+  - 大量参数形成的复杂损失曲面
  
 非凸优化的挑战: 非凸优化的挑战:
-- 存在大量局部最优和鞍点 +  - 存在大量局部最优和鞍点  
-- 收敛性难以理论分析 +  - 收敛性难以理论分析 
-- 初始化对最终结果影响大+  - 初始化对最终结果影响大
  
 ==== 4.1.2 收敛性分析 ==== ==== 4.1.2 收敛性分析 ====
行 36: 行 38:
 优化算法的收敛速率描述接近最优解的速度: 优化算法的收敛速率描述接近最优解的速度:
  
-- $O(\frac{1}{t})$:次线性收敛(SGD) +  - $O(\frac{1}{t})$:次线性收敛(SGD) 
-- $O(\rho^t)$:线性收敛($\rho < 1$,Gradient Descent for strongly convex) +  - $O(\rho^t)$:线性收敛($\rho < 1$,Gradient Descent for strongly convex) 
-- $O(\frac{1}{t^2})$:加速梯度方法+  - $O(\frac{1}{t^2})$:加速梯度方法
  
 **停止准则** **停止准则**
  
 实际训练中常用的停止条件: 实际训练中常用的停止条件:
-- 达到最大迭代次数 +  - 达到最大迭代次数 
-- 损失变化小于阈值 +  - 损失变化小于阈值 
-- 验证集性能不再提升(早停) +  - 验证集性能不再提升(早停) 
-- 梯度范数小于阈值+  - 梯度范数小于阈值
  
 ===== 4.2 随机梯度下降变体 ===== ===== 4.2 随机梯度下降变体 =====
行 73: 行 75:
  
 AdaGrad的优势: AdaGrad的优势:
-- 适合稀疏梯度(如自然语言处理) +  - 适合稀疏梯度(如自然语言处理) 
-- 自动调整学习率,无需手动调节 +  - 自动调整学习率,无需手动调节 
-- 对凸问题有好的理论保证+  - 对凸问题有好的理论保证
  
 AdaGrad的局限: AdaGrad的局限:
-- 学习率单调递减,可能过早衰减 +  - 学习率单调递减,可能过早衰减 
-- 非凸问题上表现不佳+  - 非凸问题上表现不佳
  
 ==== 4.2.3 RMSProp与Adadelta ==== ==== 4.2.3 RMSProp与Adadelta ====
行 141: 行 143:
 **多步衰减**: **多步衰减**:
 在特定epoch进行衰减: 在特定epoch进行衰减:
-- epoch 30: $\eta = 0.1 \eta_0$ +  - epoch 30: $\eta = 0.1 \eta_0$ 
-- epoch 60: $\eta = 0.01 \eta_0$ +  - epoch 60: $\eta = 0.01 \eta_0$ 
-- epoch 90: $\eta = 0.001 \eta_0$+  - epoch 90: $\eta = 0.001 \eta_0$
  
 ==== 4.3.3 余弦退火 ==== ==== 4.3.3 余弦退火 ====
行 165: 行 167:
  
 预热的作用: 预热的作用:
-- 避免早期训练不稳定 +  - 避免早期训练不稳定 
-- 特别是在大批量训练时 +  - 特别是在大批量训练时 
-- 帮助Adam等自适应优化器更好地估计二阶矩+  - 帮助Adam等自适应优化器更好地估计二阶矩
  
 ===== 4.4 大批量训练 ===== ===== 4.4 大批量训练 =====
行 175: 行 177:
 增大批量大小可以提高计算效率(利用硬件并行性),但会带来挑战: 增大批量大小可以提高计算效率(利用硬件并行性),但会带来挑战:
  
-- **泛化性能下降**:大批量训练的测试误差通常更高 +  - **泛化性能下降**:大批量训练的测试误差通常更高 
-- **优化困难**:损失曲面更尖锐,容易陷入尖锐极小值 +  - **优化困难**:损失曲面更尖锐,容易陷入尖锐极小值 
-- **需要调整学习率**:大批量需要更大的学习率+  - **需要调整学习率**:大批量需要更大的学习率
  
 ==== 4.4.2 线性学习率缩放 ==== ==== 4.4.2 线性学习率缩放 ====
行 243: 行 245:
  
 **SGD with Momentum**: **SGD with Momentum**:
-- 优点:泛化性能通常更好,收敛到更平坦的极小值 +  - 优点:泛化性能通常更好,收敛到更平坦的极小值 
-- 缺点:需要仔细调参(学习率、动量系数),对初始学习率敏感 +  - 缺点:需要仔细调参(学习率、动量系数),对初始学习率敏感 
-- 适用:追求最优泛化性能的场景,如图像分类的最终训练+  - 适用:追求最优泛化性能的场景,如图像分类的最终训练
  
 **RMSProp**: **RMSProp**:
-- 优点:自适应学习率,适合非平稳目标 +  - 优点:自适应学习率,适合非平稳目标 
-- 缺点:没有动量,可能在峡谷区域震荡 +  - 缺点:没有动量,可能在峡谷区域震荡 
-- 适用:RNN训练,在线学习+  - 适用:RNN训练,在线学习
  
 **Adam**: **Adam**:
-- 优点:自适应学习率+动量,对超参数不敏感,训练速度快 +  - 优点:自适应学习率+动量,对超参数不敏感,训练速度快 
-- 缺点:可能收敛到次优解,泛化性能可能不如SGD +  - 缺点:可能收敛到次优解,泛化性能可能不如SGD 
-- 适用:大多数情况,特别是稀疏梯度、大规模数据集+  - 适用:大多数情况,特别是稀疏梯度、大规模数据集
  
 ==== 例题4.2 学习率调度计算 ==== ==== 例题4.2 学习率调度计算 ====
行 327: 行 329:
 ==== 填空题 ==== ==== 填空题 ====
  
-6. Nesterov加速梯度与普通Momentum的主要区别是______+6. Nesterov加速梯度与普通Momentum的主要区别是$\_\_\_\_$
  
-7. AdaGrad的主要局限是______+7. AdaGrad的主要局限是$\_\_\_\_$
  
-8. 线性学习率缩放原则指出,批量大小增加k倍,学习率应______+8. 线性学习率缩放原则指出,批量大小增加k倍,学习率应$\_\_\_\_$
  
-9. 预热策略的主要作用是______+9. 预热策略的主要作用是$\_\_\_\_$
  
-10. L-BFGS相比于标准BFGS的主要改进是______+10. L-BFGS相比于标准BFGS的主要改进是$\_\_\_\_$
  
 ==== 计算题 ==== ==== 计算题 ====
行 378: 行 380:
 11. **解答**: 11. **解答**:
          
-    逐步计算:+逐步计算: 
 + 
 +| t | $g_t$ | $m_t$ | $v_t$ | 
 +| 1 | 0.5 | 0.05 | 0.0005 | 
 +| 2 | -0.3 | 0.015 | 0.00035 | 
 +| 3 | 0.2 | 0.0335 | 0.00028 | 
 +| 4 | 0.1 | 0.0402 | 0.00022 | 
 +| 5 | -0.4 | -0.0038 | 0.00018 |
          
-    | $g_t$m_t$ | $v_t$ | +偏差校正($t=5$): 
-    |---|-------|-------|-------| + 
-    | 1 | 0.5 0.05 | 0.0005 | +$$\hat{m}_5 = \frac{-0.0038}{1-0.9^5} = \frac{-0.0038}{0.4095} \approx -0.0093$$ 
-    | 2 | -0.3 | 0.015 | 0.00035 | + 
-    | 3 | 0.2 | 0.0335 | 0.00028 | +$$\hat{v}_5 = \frac{0.00018}{1-0.999^5} = \frac{0.00018}{0.005} \approx 0.036$$
-    | 4 | 0.1 0.0402 | 0.00022 | +
-    | | -0.4 | -0.0038 | 0.00018 |+
          
-    偏差校正($t=5$): +参数更新量: 
-    $$\hat{m}_5 = \frac{-0.0038}{1-0.9^5} = \frac{-0.0038}{0.4095} \approx -0.0093$$ + 
-    $$\hat{v}_5 = \frac{0.00018}{1-0.999^5} = \frac{0.00018}{0.005} \approx 0.036$$ +$$\Delta\theta = -\frac{0.001}{\sqrt{0.036} + 10^{-8}} \times (-0.0093) \approx 0.00049$$
-     +
-    参数更新量: +
-    $$\Delta\theta = -\frac{0.001}{\sqrt{0.036} + 10^{-8}} \times (-0.0093) \approx 0.00049$$+
  
 12. **解答**: 12. **解答**:
          
-    衰减函数:$\eta_t = 0.1 \times 0.1^{\lfloor t/30 \rfloor}$+衰减函数:$\eta_t = 0.1 \times 0.1^{\lfloor t/30 \rfloor}$
          
-    - $t=10$:$\lfloor 10/30 \rfloor = 0$,$\eta = 0.1 \times 1 = 0.1$ +$t=10$:$\lfloor 10/30 \rfloor = 0$,$\eta = 0.1 \times 1 = 0.1$ 
-    $t=35$:$\lfloor 35/30 \rfloor = 1$,$\eta = 0.1 \times 0.1 = 0.01$ + 
-    $t=70$:$\lfloor 70/30 \rfloor = 2$,$\eta = 0.1 \times 0.01 = 0.001$+$t=35$:$\lfloor 35/30 \rfloor = 1$,$\eta = 0.1 \times 0.1 = 0.01$ 
 + 
 +$t=70$:$\lfloor 70/30 \rfloor = 2$,$\eta = 0.1 \times 0.01 = 0.001$
  
---- 
-**本章完** 

该主题尚不存在

您访问的页面并不存在。如果允许,您可以使用创建该页面按钮来创建它。

  • 深度学习/优化算法.1772454282.txt.gz
  • 最后更改: 2026/03/02 20:24
  • 张叶安