数值优化:算法分类及收敛性分析基础

1 优化问题定义

我们考虑以下有监督机器学习问题。假设输入数据D={(xi,yi)}i=1n依据输入空间X×Y的真实分布p(x,y)独立同分布地随机生成。我们想根据输入数据学得参数为w的模型h(  ;w),该模型能够根据输入x给出接近真实输出y的预测结果h(x;w)。我们下面将参数w对应的模型简称为模型w,模型预测好坏用损失函数l(w;x,y)衡量。则正则化经验风险最小化(R-ERM)问题的目标函数可以表述如下:

l^n(w)=1ni=1nl(w;xi,yi)+λR(w)

其中R(  )为模型w的正则项。

由于在优化算法的运行过程中,训练数据已经生成并且保持固定,为了方便讨论且在不影响严格性的条件下,我们将上述目标函数关于训练数据的符号进行简化如下:

f(w)=1ni=1nfi(w)

其中fi(w)=l(w,xi,yi)+λR(w)是模型w在第i个训练样本(xi,yi)上的正则损失函数。
不同的优化算法采用不同的方法对上述目标函数进行优化,以寻找最优预测模型。看似殊途同归,但实践中的性能和效果可能有很大差别,其中最重要的两个特性就是收敛速率复杂度

2 收敛速率

假设优化算法所产生的模型参数迭代序列为{wt},其中wt为第t步迭代中输出的模型参数,R-ERM问题的最优模型为w=arg minwf(w)。一个有效的优化算法会使序列{wt}收敛于w。我们用wtw在参数空间中的距离来衡量其接近程度,即

Ewtw2ϵ(t)

若用正则化经验风险的差值来衡量,则为

E[f(wt)f(w)]ϵ(t)

来衡量。
ϵ(t)可视为关于t的函数,收敛的算法都满足随着t,有ϵ(t)0,不过其渐进收敛速率各有不同。通常用log ϵ(t)的衰减速率来定义优化算法的渐进收敛速率。

  • 如果logϵ(t)t同阶,则称该算法具有线性(linear)收敛率。

    例: O(et)

  • 如果logϵ(t)t衰减速度慢,则称该算法具有次线性(sublinear)收敛率。

    例: O(1t)O(1t)O(1t2)

  • 如果logϵ(t)t衰减速度快,则称该算法具有超线性(superlinear)收敛率(进一步地,如果loglogϵ(t)t同阶,则该算法有二阶收敛速率)。

    例:O(e2t)

收敛速率各阶数对比可参照下图:

3 复杂度

优化算法的复杂度需要考虑单位计算复杂度迭代次数复杂度。单位计算复杂度是优化算法进行单次迭代计算需要的浮点运算次数,如给定nd维样本,采用梯度下降法来求解模型的单位计算复杂度为O(nd),随机梯度下降法则是O(d)。迭代次数复杂度则是指计算出给定精度ϵ的解所需要的迭代次数。比如若我们的迭代算法第t步输出的模型wt与最优模型w满足关系

f(wt)f(w)ct

,若要计算算法达到精度f(wt)f(w)ϵ所需的迭代次数,只需令ctϵ得到tc2ϵ2,因此该优化算法对应的迭代次数复杂度为O(1ε2)。注意,渐进收敛速率更多的是考虑了迭代次数充分大的情形,而迭代次数复杂度则给出了算法迭代有限步之后产生的解与最优解之间的定量关系,因此近年来受到人们广泛关注。

我们可以根据单位计算复杂度和迭代次数复杂度来得到总计算复杂度,如梯度下降法单位计算复杂度为O(nd),在光滑强凸条件下的迭代次数复杂度为O(log(1ε)),则总计算复杂度为O(ndlog(1ε))。随机梯度下降法单位计算复杂度为O(d),在光滑强凸条件下的迭代次数复杂度为O(1ε),则总计算复杂度为O(dε)

4 假设条件

目前大多数优化算法的收敛性质都需要依赖目标函数具有某些良好的数学属性,如凸性和光滑性。近年来由于深度学习的成功人们也开始关注非凸优化问题。我们这里先讨论凸优化的假设。

凸函数 考虑实值函数f:RdR,如果对任意自变量w,vRd都有下列不等式成立:

f(w)f(v)f(v)T(wv)

则称函数f是凸的(可以直观理解为自变量任何取值处的切线都在函数曲面下方)。

凸性会给优化带来很大方便。原因是凸函数任何一个局部极小点都是全局最优解。对于凸函数还可以进一步区分凸性的强度,强凸性质的定义如下:

强凸函数 考虑实值函数f:RdRRd上范数  ,如果对任意自变量w,vRd都有下列不等式成立:

f(w)f(v)f(v)T(wv)+α2wv2

则称函数f关于范数  α-强凸的。
可以验证当函数fα强凸的当前仅当fα2  2是凸的。

下图中给出了凸函数、强凸函数和非凸函数的直观形象:

光滑性刻画了函数变化的缓急程度。直观上,如果自变量的微小变化只会引起函数值的微小变化,我们说这个函数是光滑的。对于可导和不可导函数,这个直观性质有不同的数学定义。

对于不可导函数,通常用Lipschitz性质来描述光滑性。

Lipschitz连续 考虑实值函数f:RdRRd上范数  ,如果存在常数L>0,对任意自变量w,vRd都有下列不等式成立:

|f(w)f(v)|Lwv

则称函数f关于范数  L-Lipschitz连续的。

对于可导函数,光滑性质依赖函数的导数,定义如下:

光滑函数 考虑实值函数f:RdRRd上范数  ,如果存在常数β>0,对任意自变量w,vRd都有下列不等式成立:

f(w)f(v)f(v)T(wv)+β2wv2

则称函数f关于范数  β-光滑的。
下图是Lipshitz连续函数和光滑函数的直观形象:

可以验证,凸函数fβ-光滑的充分必要条件是其导数fβ-Lipschitz连续的。所以,β-光滑函数的光滑性质比Lipschitz连续的函数的光滑性质更好。

5 算法分类和发展历史

数值优化算法的发展历史如下图所示:

可以看到,优化算法最初都是确定性的,也就是说只要初始值给定,这些算法的优化结果就是确定性的。不过近年来随着机器学习中数据规模的不断增大,优化问题复杂度不断增高,原来越多的优化算法发展出了随机版本和并行化版本。

为了更好地对众多算法进行分析,我们对其进行了如下分类:

  • 依据是否对数据或变量进行随机采样,把优化算法分为确定性算法和随机算法。
  • 依据算法在优化过程中所利用的是一阶导数信息还是二阶导数信息,把优化算法分为一阶方法和二阶方法。
  • 依据优化算法是在原问题空间还是在对偶空间进行优化,把优化算法分为原始方法和对偶方法。

以上分类可以用下图加以总结:

我们下面的博客将依次讨论一阶和二阶确定性算法、单机随机优化算法和并行优化算法,大家可以继续关注。

参考

posted @   orion-orion  阅读(2001)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~
点击右上角即可分享
微信分享提示