《机器学习理论导引》笔记目录
0 感言
最近一直在跑自己的代码,距离上次三月多努力投稿水博客混毛毯已经过去了快两个月的时间了,最近抽空把机器学习理论再更新一章。
收敛率在我看来也是很重要的一个概念,它可以帮助我们更好的理解算法的收敛速度,以及算法的收敛速度和算法的性能之间的关系。本章的内容不得不说也算是十足重要了。
7.1 基本概念
我们可以将优化问题一般性地表示为
w∈Wminf(w)
其中 f(⋅) 是优化的目标函数,w 是优化变量,W 是优化变量的可行域。其对应的最优解可以写成
w∗=w∈Wargminf(w)
优化算法旨在高效地寻找问题的最优解 w∗ 与其对应的目标函数的最小值 f(w∗)。事实上,直接的精确求解是困难的,优化算法因此常被设计为迭代算法,通过不断迭代与近似来逼近最优解。因此研究收敛率是很重要的一件事情,
- 迭代算法能否收敛到最终期待的精确解
- 迭代算法以多快的速度收敛到最终的精确解
这些都对我们逼近最优解有着重要的影响。记迭代优化算法为 A,该算法生成一组序列 {w1,w2,…wt…} 来不断逼近目标函数的最优解 w∗。可以将一般情况下的迭代优化算法表示,其中 M 为优化算法的更新策略,O 为函数信息源。
wt+1=M(wt,O(f,wt))
- 根据所使用的函数信息源 O 的不同,常用优化算法可以分为零阶算法、一阶算法和二阶算法。
- 刻画优化算法性能有两种等价的衡量标准 : 收敛率 (convergence rate) 和迭代复杂度 (iteration complexity)。假设算法迭代了 T 轮,wT 为最终输出。
- 收敛率 (convergence rate) 旨在刻画优化误差 f(wT)−f(w∗) 与迭代轮数 T 之间的关系。常见的包括 :
f(wT)−f(w∗)=O(T1),O(T1),O(T21),O(βT1)
- 迭代复杂度 (iteration complexity) 旨在刻画为了达到 ϵ-最优解,需要的迭代轮数,如为了达到 f(wT)−f(w∗)⩽ϵ,迭代轮数 T 和 ϵ 之间的关系。上面收敛率对应的迭代复杂度分别为 :
T=Ω(ϵ21),Ω(ϵ1),Ω(ϵ1),Ω(logϵ1)
- 当最优解唯一时,也可以采用当前解与最优解之间的距离 dist(wt,w∗) 来评估算法的性能指标。
- 常用的优化算法可以分为确定优化 (deterministic optimization) 和随机优化 (stochastic optimization) 两大类。确定优化利用函数的真实信息来进行迭代更新,而随机优化则会利用一些随机信息来进行迭代更新。
7.2 确定优化
7.2.1 凸函数
凸函数具有局部最优解就是全局最优解的数学性质,下面给出简要证明。
证明
假设 x∗ 是局部最优,即 x∗ 周围存在一个邻域满足
S=B(x∗,δ),∀x∈S,f(x)⩾f(x∗)
因此有
∀y,f(x∗)⩽f((1−t)x∗+ty),{t⩽∣x∗−y∣δ}
由凸函数性质推导 :
∀y,f(x∗)≤f((1−t)x∗+ty)≤(1−t)f(x∗)+tf(y)⇒f(x∗)≤f(y)
所以对于一般的凸优化问题,可以采用梯度下降达到 O(1/T) 的收敛率,其基本流程如下 :
在第 t 轮迭代中,首先计算函数 f(⋅) 在 wt 上的梯度 ∇f(wt),然后依据梯度下降 wt+1′=wt−ηt∇f(wt) 来更新参数,其中 ηt 为步长。在原始问题中存在 w∈W 的约束,但是通过梯度下降获得的中间解 wt+1′ 可能不满足约束条件,因此需要对其进行投影 wt+1=ΠW(wt+1′) 保证其属于 W,投影操作对应的定义为 :
ΠW(z)=x∈Wargmin∥x−z∥
算法希望在集合 W 中寻找距离输入最近的点,最后,将算法 T 轮迭代的平均值作为输出。下面给出其对应的理论保证。
定理 7.1 (梯度下降收敛率) 若目标函数是 l-Lipschitz 连续函数,且可行域有界,则采用固定步长梯度下降的收敛率为 O(T1)
证明 假设可行域 W 的直径为 Γ,并且目标函数是 l-Lipschitz 连续,即对于任意 u,v∈W
∥u−v∥⩽Γ,∥∇f(u)∥⩽l
简化分析,考虑固定 ηt=η,则对于任意的 w∈W,有
f(wt)−f(w)⩽⟨∇f(wt),wt−w⟩=η1⟨wt−wt+1′,wt−w⟩=2η1(∥wt−w∥2−∥∥wt+1′−w∥∥2+∥∥wt−wt+1′∥∥2)=2η1(∥wt−w∥2−∥∥wt+1′−w∥∥2)+2η∥∇f(wt)∥2⩽2η1(∥wt−w∥2−∥wt+1−w∥2)+2η∥∇f(wt)∥2
最后一个不等号利用了凸集合投影操作的非扩展性质 :
∥ΠW(x)−ΠW(z)∥⩽∥x−z∥,∀x,z
注意到目标函数满足 l-Lipschitz 连续性,由上面两式可得
f(wt)−f(w)⩽2η1(∥wt−w∥2−∥wt+1−w∥2)+2ηl2
对其从 t=1 到 t 求和有
t=1∑Tf(wt)−Tf(w)⩽2η1(∥w1−w∥2−∥wT+1−w∥2)+2ηTl2⩽2η1∥w1−w∥2+2ηTl2⩽2η1Γ2+2ηTl2
最后,依据 Jensen 不等式有
f(wT)−f(w)=f(T1t=1∑Twt)−f(w)⩽T1t=1∑Tf(wt)−f(w)⩽2ηTΓ2+2ηl2
因从,
f(wT)−w∈Wminf(w)⩽2ηTΓ2+2ηl2=TlΓ=O(T1)
其中步长设置为 η=Γ/(lT),定理得证。
7.2.2 强凸函数
首先补充一下强凸函数的定义
定义 (强凸函数) 对定义在凸集上的函数 f:Rd→R,若 ∃λ∈R+,使得 ∀x,z∈Ψ 都有
f(θx+(1−θ)z)⩽θf(x)+(1−θ)f(z)−2λθ(1−θ)∥x−z∥2(∀0⩽θ⩽1)
则称之为 λ-强凸函数。
本节考虑目标函数 f:W↦R 是 λ-强凸函数,其具备以下定理
定理 7.2 λ-强凸函数性质 : 假设 f 是 λ-强凸函数,w∗ 为其最优解,对于 w∈W 有
f(w)−f(w∗)⩾2λ∥w−w∗∥2
此外,若梯度有上界 l,则
∥w−w∗∥f(w)−f(w∗)⩽λ2l⩽λ2l2
为了收敛得更快,考虑强凸且光滑的函数,即要求目标函数在强凸的同时也满足如下的光滑条件 :
f(w′)⩽f(w)+⟨∇f(w),w′−w⟩+2γ∥w′−w∥2,∀w,w′∈W
这时称 f:W↦R 为 γ-光滑函数,上式表明,对于光滑函数 f(⋅),可以在任意一个点 w 处构造一个二次函数作为其上界。而对于光滑且强凸的函数的梯度下降算法的基本流程如下 :
在该算法中依据迭代公式更新当前 wt+1,可以得知其对应的闭式解为
wt+1=ΠW(wt−γ1∇f(wt))
所以其本质仍然是进行梯度下降更新后再投影到可行域
定理 7.3 梯度下降收敛率 若目标函数满足 λ-强凸和 γ-光滑,梯度下降取得了线性收敛了 O(βT1),其中 β>1
证明 根据目标函数的性质以及更新公式有
f(wt+1)(利用光滑条件)⩽f(wt)+⟨∇f(wt),wt+1−wt⟩+2γ∥wt+1−wt∥2(利用光滑且强凸函数的梯度下降算法)=w∈Wmin(f(wt)+⟨∇f(wt),w−wt⟩+2γ∥w−wt∥2)⩽w∈Wmin(f(w)−2λ∥w−wt∥2+2γ∥w−wt∥2)⩽w=αw∗+(1−α)wtα∈[0,1]min(f(w)+2γ−λ∥w−wt∥2)=α∈[0,1]min(f(αw∗+(1−α)wt)+2γ−λ∥αw∗+(1−α)wt−wt∥2)⩽α∈[0,1]min(αf(w∗)+(1−α)f(wt)+2γ−λα2∥w∗−wt∥2)=α∈[0,1]min(f(wt)−α(f(wt)−f(w∗))+2γ−λα2∥w∗−wt∥2)(根据定理 7.2 中第一个不等式)⩽α∈[0,1]min(f(wt)−α(f(wt)−f(w∗))+2γ−λλ2α2(f(wt)−f(w∗)))=α∈[0,1]min(f(wt)+(λγ−λα2−α)(f(wt)−f(w∗)))
- 如果 2(γ−λ)λ⩾1,令 α=1,则有
f(wt+1)−f(w∗)⩽λγ−λ(f(wt)−f(w∗))⩽21(f(wt)−f(w∗))
- 如果 2(γ−λ)λ<1,令 α=2(γ−λ)λ,则有
f(wt+1)−f(w∗)⩽(1−4(γ−λ)λ)(f(wt)−f(w∗))=4(γ−λ)4γ−5λ(f(wt)−f(w∗))
结合上面两种情况进行如下赋值
β={γ−λλ,4γ−5λ4(γ−λ),2(γ−λ)λ⩾12(γ−λ)λ<1
则可以保证 f(wt+1)−f(w∗)⩽β1(f(wt)−f(w∗)) 总是成立,进而可扩展为
f(wT)−f(w∗)⩽βT−11(f(w1)−f(w∗))=O(βT1)