[最优化方法笔记] 梯度下降法

1. 梯度下降法

无约束最优化问题一般可以概括为:

minxRnf(x)

通过不断迭代到达最优点 x,迭代过程为:

xk+1=xk+αkdk

其中 dk 为当前的 搜索方向αk 为当前沿着搜索方向的 步长

我们需要寻找可以不断使得 f(xk+1)<f(xk) 的方法。


构造一元辅助函数:

ϕ(α)=f(xk+1)=f(xk+αdk)

其中 dk下降方向α>0 是辅助函数的 自变量

由一阶泰勒展开式将目标函数进行泰勒展开:

f(x)=f(xk)+f(xk)T(xxk)+o(||xxk||)

(带皮亚诺余项的一阶泰勒展开)

可得:

ϕ(α)=f(xk)+αf(xk)Tdk+o(||xk+1xk||)

为了使得迭代过程 可行,能够达到 收敛,显然有 ||xk+1xk||0,所以有:

f(xk+1)=f(xk)+αf(xk)Tdk

显然,为了能够使得 f(xk+1)<f(xk),需要确保 αf(xk)Tdk<0,而 α>0,所以需要保证:

fα=f(xk)Tdk<0

为了使得 下降速度尽可能快,即有关于下降方向的最优化问题:

(dk)=argmindkfα=argmaxdkfα

柯西不等式

fα=f(xk)Tdk||f(xk)||||dk||

根据柯西不等式等号成立的条件,需要使 dkf(xk) 同向。所以,我们需要找到的 最快的下降方向 即:

(dk)=f(xk)

由此得出 梯度下降法 (最速下降法) 的迭代格式:

xk+1=xkαkf(xk)

其中 步长 αk 可以依据线搜索算法(精确解、直接搜索、非精确搜索的一些准则等)得到,也可以选取固定的步长 α

终止条件 一般有 ||xk+1xk||<ε|f(xk+1)f(xk)|<ε 。其中 ε 是一个很小的数。

如下图所示,为一个二元二次函数 f(x,y),采用 梯度下降法 xk+1=xkαkf(xk) 的迭代过程。


在机器学习领域,梯度下降法有非常广泛的应用。例如梯度下降法解决线性回归问题。[机器学习复习笔记] Grandient Descent 梯度下降法




2. Lipschitz 连续

2.1 梯度利普希茨连续定义

给定可微函数 f,若存在 L>0,对于任意 x,ydomf 有:

||f(x)f(y)||L||xy||

则称 f梯度利普希茨连续 的。其中 L利普希茨常数

函数 f 满足 梯度 Lipschitz 连续可以理解为该函数的变化速率受到了限制。变化速率的上界即为 Lipschitz 常数 L


2.2 下降引理(二次上界)

设可微函数 f 定义域 domf=Rn,且 梯度利普希茨连续,则 其 Hessian 矩阵满足:

2f(x)LI

其中 L利普希茨常数I 为单位阵。

导数 f(x) 变化 最快的方向 就是它的 Hessian 矩阵 2f(x) 绝对值 最大特征值所对应的特征向量

对函数 f 进行泰勒展开得:

f(y)=f(x)+f(x)T(yx)+12(yx)T2f(x)(yx)f(x)+f(x)T(yx)+L2||yx||2

对任意 x,ydomf 成立,称 f(x) 有二次上界。




3. 梯度下降收敛性

梯度法迭代式:

xk+1=xkαkf(xk)

  • 设函数 f(x) 为凸函数,且梯度利普希茨连续

  • 极小值 f(x) 存在且可达

  • 步长应满足 0<α<1L

条件(2)是一个不可或缺的条件,它保证了原始的优化问题存在可行解。

条件(1)和条件(3)使得下降引理成立,保证了梯度下降算法在优化目标函数过程中的正确性。




参考

刘浩洋, 户将, 李勇锋, 文再文《最优化:建模、算法与理论》

最优化方法复习笔记(一)梯度下降法、精确线搜索与非精确线搜索(推导+程序)

线搜索法的理论(一) - 下降方向

posted @   MarisaMagic  阅读(666)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示