很多优化“玄学”其实都能被三个概念讲清楚:梯度有多“陡”( Lipschitz/光滑性决定步长上限)、谷底有多“硬”(强凸性决定收敛能有多快、解是否唯一)、以及我们能不能在不牺牲稳定性的前提下更快到达谷底( Nesterov 加速与重启策略)。这篇文章把它们放在同一条逻辑链上:先用最小必要的定义与不等式把直觉钉牢,再给出关键定理与证明,最后落到可复现实验(最小二乘)里对比普通梯度下降与加速法的收敛行为。目标不是堆公式,而是让你在看到一个新问题时,能用这三件事快速判断“该用多大步长、预期什么收敛速度、加速是否值得”。
目录
-
- 定义与基本性质
- 函数的梯度 Lipschitz 连续性
- 例子分析
- 相关定理与证明
-
- 强凸函数的定义与性质
- 极小值的存在性与唯一性
- 相关定理与证明
-
- 梯度下降算法回顾
- Nesterov 加速梯度下降算法
- 重启策略与收敛分析
-
- 最小二乘问题的数学背景
- 梯度下降与加速梯度下降算法的实现
- 实验结果与分析
Lipschitz 连续性与梯度光滑性
Lipschitz 连续性的定义与基本性质
定义:设函数
则称
性质:
- 一致连续性: Lipschitz 连续函数必定是一致连续的。
- 有限变化率:函数值的变化率被
所限制,不会出现“无穷大”的斜率。 - 闭包性: Lipschitz 连续函数的集合在函数加法和数乘下是闭合的。
通俗理解: Lipschitz 连续性限制了函数的变化速度,确保函数在自变量发生变化时,函数值不会剧烈波动。例如,在实际应用中,这意味着传感器测量的信号不会突然出现异常的尖峰。
函数的梯度 Lipschitz 连续性(梯度光滑性)
定义:如果可微函数
则称
性质:
- 二次可微性:
-光滑函数在几乎处处二次可微,且 Hessian 矩阵( )的谱范数被 所限制。 - 收敛性保证:在优化算法中,梯度的 Lipschitz 连续性是许多收敛性分析的基础。
- Taylor 展开:
-光滑函数满足以下不等式:
通俗理解:梯度的 Lipschitz 连续性确保了函数的曲率不会突然发生巨大变化,这对于梯度下降等优化算法的稳定性和收敛性至关重要。
例子分析
例 1:平方范数函数
- 梯度:
- 梯度差:
- Lipschitz 常数:
分析:由于梯度的变化率为
例 2: Logistic 损失函数
- 梯度:
这是 Sigmoid 函数
- Hessian 矩阵:对角矩阵,元素为
- Lipschitz 常数:
,因为对于所有 ,有 。
分析: Logistic 损失函数在分类问题中经常出现,其梯度和 Hessian 矩阵具有良好的性质,方便优化算法的实现。
例 3:平移范数函数
分析:该函数的梯度变化率被
相关定理与证明
定理 1(梯度 Lipschitz 连续性的判别准则):
如果
则
证明:
根据多元微积分的基本定理,对于任意
取范数并应用矩阵范数的性质:
定理 2(复合函数的梯度 Lipschitz 连续性):
设
证明:
计算梯度:
计算梯度差:
应用
的 Lipschitz 性质:综合得到:
强凸性与优化问题的解
强凸函数的定义与性质
定义:函数
等价定义:函数
性质:
唯一的全局最小值:强凸函数在其定义域上有唯一的全局最小值点
。二次增长性:对于任意
,有:Hessian 矩阵下界:如果
二次可微,则 。
可以这么理解,强凸函数的曲率足够大,使得其图像像一个“抛物面”,只有一个最低点,且远离最低点的地方函数值会显著增大。
极小值的存在性与唯一性
定理 3(极小值存在性):
如果
证明:
- 构造紧致集:由于子水平集有界并闭合,所以是紧致的。
- 下半连续性:
的下侧图闭合意味着 是下半连续的。 - 应用 Weierstrass 极值定理:下半连续函数在紧致集上必定达到其最小值。
定理 4(极小值唯一性):
证明:
假设存在两个不同的全局最小值点
根据强凸性的二次增长性质,有:
因此:
这只能成立于
相关定理与证明
定理 5(强凸性等价性):
函数
证明:
方向:- 由于
是 -强凸的,对于任意 : - 移项得:$$
[f(y) - | y |^2] + f(x) - x, y - x $$
- 即
满足凸函数的定义。
- 由于
方向:- 假设
是凸函数。 - 根据凸函数的定义,对于任意
: - 整理得到:
- 证明了
是 -强凸的。
- 假设
定理 6(强凸函数的误差下界):
对于
证明:
直接应用强凸性的二次增长性质。
加速梯度下降算法及其收敛性
梯度下降算法回顾
梯度下降算法:
初始化:选择初始点
迭代更新:
其中
收敛性分析:
- 对于
-光滑的凸函数,梯度下降算法的收敛速度为 。 - 需要选择合适的步长
,通常取 。
Nesterov 加速梯度下降算法
传统的梯度下降法虽然简单,但其收敛速度较慢,尤其在处理高维或病态( ill-conditioned)优化问题时更为明显。为了提升收敛速度,研究者们引入了动量项( Momentum),旨在利用过去的梯度信息加速当前的更新。然而,早期的动量方法在理论收敛性方面存在不足,无法确保最优的加速效果。 Nesterov 在研究中发现,通过提前“看一眼”未来的位置,可以更有效地调整更新方向,从而实现更快的收敛。这一思想促成了 Nesterov 加速梯度下降算法的提出,其核心在于在当前梯度计算前,利用动量调整后的点进行梯度评估,从而获得更具前瞻性的更新方向。
算法描述:
初始化:
,迭代更新:对于
,
收敛性:
- 对于
-光滑的凸函数,收敛速度为 。 - 通过引入动量项,加速了收敛速度。
通俗理解:加速梯度下降算法利用了历史信息,通过“预见”未来的趋势,调整当前的更新方向,从而更快地接近最小值。
重启策略与收敛分析
重启策略:
- 动机:在处理强凸函数时,加速梯度下降算法可能出现振荡或过冲的现象。
- 方法:每隔
次迭代,将动量参数重置,重新开始计算。
收敛分析:
定理 7(重启加速梯度下降的收敛性):
对于
-强凸且 -光滑的函数 ,设 ,则重启加速梯度下降算法在总迭代次数 内达到精度 所需的 满足:
证明思路:
- 证明每次重启后,函数值误差至少减半。
- 计算需要的重启次数
,使得 。 - 总迭代次数为
。
例子:
- 参数设置:
, , 为初始点。 - 计算
: - 目标精度:
- 需要的重启次数:
总迭代次数:
最小二乘问题的数学背景
问题描述:
其中
梯度与 Hessian 矩阵:
- 梯度:
- Hessian 矩阵:
性质:
- Lipschitz 梯度:梯度的 Lipschitz 常数
- 强凸性:强凸参数
(如果 是正定的)
应用背景:最小二乘问题在数据拟合、信号处理、机器学习等领域广泛存在,目标是找到最优参数
梯度下降与加速梯度下降算法的实现
实现步骤:
数据生成:
- 生成随机矩阵
,元素服从标准正态分布 。 - 生成向量
,元素同样服从 。
- 生成随机矩阵
计算参数:
- 计算
,可通过奇异值分解或特征值分解实现。 - 如果
是正定的,计算 。
- 计算
算法实现:
- 梯度下降算法( GD):
- 加速梯度下降算法( AGD):
- 梯度下降算法( GD):
其中
- 重启加速梯度下降算法:每隔
次迭代,将 重置为 , 重置为 。
实验结果:
- 记录每次迭代的梯度范数
。 - 绘制梯度范数随迭代次数的变化曲线。
- 记录每次迭代的梯度范数
实验结果与分析
结果分析:
- 梯度下降算法( GD):梯度范数下降速度较慢,收敛较为平缓。
- 加速梯度下降算法( AGD):梯度范数下降速度明显加快,但可能出现振荡。
- 重启加速梯度下降算法:在避免振荡的同时,保持了快速的收敛速度。
图示比较:
- 梯度范数曲线:可以绘制三种算法的梯度范数随迭代次数的变化曲线,以直观地比较它们的收敛性能。
实际意义:
- 算法选择:在实际应用中,应根据问题的性质选择合适的优化算法。
- 参数调整:步长、重启间隔等参数的选择对算法性能有重要影响。
- Nesterov, Y. (1983). A method of solving a convex programming
problem with convergence rate
. Soviet Mathematics Doklady, 27(2), 372 – 376. - Boyd, S., & Vandenberghe, L. (2004). Convex Optimization. Cambridge University Press.
- Bubeck, S. (2015). Convex Optimization: Algorithms and Complexity. Foundations and Trends in Machine Learning, 8(3-4), 231 – 357.
- 本文标题:深入解析非线性优化中的 Lipschitz 连续性、强凸性与加速梯度下降算法
- 本文作者:Chen Kai
- 创建时间:2020-10-22 14:15:00
- 本文链接:https://www.chenk.top/%E6%B7%B1%E5%85%A5%E8%A7%A3%E6%9E%90%E9%9D%9E%E7%BA%BF%E6%80%A7%E4%BC%98%E5%8C%96%E4%B8%AD%E7%9A%84Lipschitz%E8%BF%9E%E7%BB%AD%E6%80%A7%E3%80%81%E5%BC%BA%E5%87%B8%E6%80%A7%E4%B8%8E%E5%8A%A0%E9%80%9F%E6%A2%AF%E5%BA%A6%E4%B8%8B%E9%99%8D%E7%AE%97%E6%B3%95/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!