梯度下降法与优化
梯度下降法的数学原理
梯度下降法
目标:求可微函数 的最小值。
迭代公式:
其中:
- 是第 步的迭代点
- 是学习率(步长)
- 是梯度,负号表示沿梯度反方向更新
核心思想:梯度方向是函数值增长最快的方向,因此负梯度方向是函数值下降最快的方向(最速下降方向)。
收敛性分析
定理1
设 是 -光滑凸函数(梯度 -Lipschitz连续,即 ),取固定学习率 ,则梯度下降法满足:
即收敛速率为 (次线性收敛)。
若 还是 -强凸的(),则收敛速率为线性收敛:
其中 称为条件数,条件数越大收敛越慢。
几何解释
推论
证明
符号说明
学习率的选择:
- 学习率太小:收敛慢,需要很多次迭代。
- 学习率太大:可能震荡甚至发散(函数值不降反升)。
- 最优固定学习率:( 是梯度的Lipschitz常数)。
- 实践中常用衰减学习率: 或 。
线搜索
精确线搜索与非精确线搜索
精确线搜索:每一步选择最优步长
非精确线搜索:只要求函数值有足够下降,常用Armijo条件:
其中 是常数。非精确线搜索计算量小,是实践中的主流选择。
梯度下降法的变体
随机梯度下降(SGD)
随机梯度下降
当目标函数是大量样本的损失之和 时,每次迭代只用一个(或一小批)样本的梯度近似全梯度:
优点:计算快,适合大数据;缺点:梯度有噪声,收敛过程震荡。小批量SGD(Mini-batch SGD)是折中方案,每次用一批样本计算梯度。
动量法(Momentum)
动量法
其中 是动量系数(通常取0.9)。动量法积累历史梯度,能够加速收敛、减少震荡,特别适合处理病态条件数问题。
Adam(Adaptive Moment Estimation)
Adam算法
默认参数:。Adam结合了动量法和自适应学习率,是深度学习中最常用的优化器之一。
典型例题
例题1:梯度下降求二次函数最小值
用梯度下降法求 的最小值,初始点 ,学习率 ,写出前3步迭代并分析收敛性。
参考答案(3 个标签)
梯度下降二次函数收敛性
- 初始:,
- 第1步:,
- 第2步:,
- 第3步:,
- 收敛性:(最大特征值),,满足收敛条件。 方向收敛因子 , 方向 , 方向收敛更快。
答案:前3步函数值从3降至0.3554,逐步收敛到最小值点 。
例题2:精确线搜索
对 ,从 出发,用精确线搜索求第一步的最优步长。
参考答案(3 个标签)
精确线搜索最速下降二次函数
- 搜索方向
- 对 求导:,
- 下一步点:
答案:最优步长 ,下一步点 。
总结
本文出现的符号
| 符号 | 类型 | 读音/说明 | 在本文中的含义 |
|---|---|---|---|
| 学习率 | learning rate | 梯度下降的步长 | |
| 迭代点 | iteration point | 第k步的迭代点 | |
| 动量 | velocity / momentum | 动量法中的累积梯度 | |
| 动量系数 | momentum coefficient | 动量法的衰减系数 | |
| Lipschitz常数 | Lipschitz constant | 梯度的Lipschitz常数 | |
| 强凸参数 | strong convexity | 强凸函数的参数 | |
| 条件数 | condition number | ||
| Adam矩 | moments | Adam算法的一阶和二阶矩 | |
| 小常数 | epsilon | Adam中防止除零的小常数 |
中英对照
| 中文术语 | 英文术语 | 音标 |
|---|---|---|
| 梯度下降法 | gradient descent | /ˈɡreɪdiənt dɪˈsɛnt/ |
| 最速下降法 | steepest descent | /ˈstiːpɪst dɪˈsɛnt/ |
| 学习率 | learning rate | /ˈlɜːrnɪŋ reɪt/ |
| 收敛性 | convergence | /kənˈvɜːrdʒəns/ |
| 线性收敛 | linear convergence | /ˈlɪniər kənˈvɜːrdʒəns/ |
| 次线性收敛 | sublinear convergence | /sʌbˈlɪniər kənˈvɜːrdʒəns/ |
| 随机梯度下降 | stochastic gradient descent | /stoʊˈkæstɪk ˈɡreɪdiənt dɪˈsɛnt/ |
| 小批量 | mini-batch | /ˈmɪni bætʃ/ |
| 动量法 | momentum | /moʊˈmɛntəm/ |
| Adam | Adam | /ˈædəm/ |
| 线搜索 | line search | /laɪn sɜːrtʃ/ |
| Armijo条件 | Armijo condition | /ɑːrˈmiːhoʊ kənˈdɪʃən/ |
| 强凸 | strongly convex | /ˈstrɒŋli ˈkɒnvɛks/ |
| 光滑 | smooth | /smuːð/ |
| 条件数 | condition number | /kənˈdɪʃən ˈnʌmbər/ |
| 自适应学习率 | adaptive learning rate | /əˈdæptɪv ˈlɜːrnɪŋ reɪt/ |
