ML Theory 太魔怔了!!!!!
我们来考虑更快的下降算法。
对 L-smooth 的 Gradient Descent,我们有两种视角来看它。一种是局部视角,梯度方向相近的点的函数值一定会下降,另一种是全局视角,用一个二次函数为整个 f 提供了一个 lowerbound。当局部梯度的范数很大时,函数值会下降的很快;当全局梯度的范数很小时,每一个 lowerbound 会更紧。所以我们考虑从两种视角出发分别设计一种策略,之后将两者耦合,以达到更快的速率。
为了半形式化地描述两种视角,我们将 Gradient Descent 一般化,称其为 Mirror descent。名字 Mirror 来源于原空间到对偶空间的映射。如果 f 定义在一个原空间上,那么 ∇f 的值域在其对偶空间上,即在每个位置提供了一个线性函数。此时,梯度下降 xt+1=xt+η∇f(xt) 便是将一个原空间的元素和一个对偶空间的元素进行了线性组合。在 L2 范数下,由于其自对偶,这能够说得通,但是在一般的范数中这会变得奇怪。此时应该按照对偶空间的理念,将 ∇f(xt) 认作一个线性函数,因此
f(xt)+(∇f(xt))(x−xt)
便是对 f(x) 的线性近似。
第一种视角称为正则化视角。我们希望 f(x) 小,但是又希望 x,xt 不要差太远,否则近似的效果会差,因此考虑加入正则化项 12η∥x−xt∥2,则
xt+1=argminx{f(xt)+(∇f(xt))(x−xt)+12η∥x−xt∥2}
它的解便是 xt−η∇f(xt)。这个正则化的观点,避免了原空间和对偶空间的直接接触。现在考虑对这个正则化项一般化。
定义 对一个凸函数 w,其 Bregman divergence 为 Vx(y)=w(y)−⟨∇w(x),y−x⟩−w(x),w 被称作距离生成函数。
w 的凸性是为了保证转化后的问题仍然是凸优化问题。
命题 (triangle equality) ∀x,y,⟨−∇Vx(y),y−u⟩=Vx(u)−Vy(u)−Vx(y).
注意 ∇Vx(y) 是认 x 为参数,对 y 求的梯度。
证明
⟨−∇Vx(y),y−u⟩=⟨∇w(x)−∇w(y),y−u⟩=(w(u)−w(x)−⟨∇w(x),u−x⟩)−(w(u)−w(y)−⟨∇w(y),u−y⟩)=−(w(y)−w(x)−⟨∇w(x),y−x⟩)=Vx(u)−Vy(u)−Vx(y)
其一个例子为 GD 一讲中
1η⟨wi+1−wi,wi−w∗⟩−12η∥wi−wi+1∥22=12η(∥wi−w∗∥22−∥wi+1−w∗∥22)
其中 x=wi+1,y=wi,u=w∗,w(x)=∥x∥22,∇w(x)=2x。
定义一个步长为 α 的 Mirror step 为
xk+1=Mirrx(α∇f(xk))
Mirrx(ξ)=argminy(⟨ξ,y−x⟩+Vx(y))
其中 V 当作正则化项。如果 x=xk,Vx(y)=∥x−y∥2 那就是常见的 GD。
第二种视角称为镜像空间 (Mirror space) 视角,一个 Mirror step 可被视作对偶空间上的梯度下降,即声明一个新的梯度,去找其对应的极值点。过程形如
- 将 x 通过 Mirror map 映射到对偶空间上的 θk。
- θk+1=θk−α∇f(xk)。
- 将 θk+1 映射回原空间上的 ¯¯¯¯xk+1。
- 将 ¯¯¯¯xk+1 投影到约束集中,投影使用 Bregman divergence 作为其距离,即 xk+1=argminyV¯¯¯¯xk+1(y)。
按照 Mirror step 的式子,可以看出 Mirror map 就是 ∇w(⋅)。因此实际过程为
- θk=∇w(x).
- θk+1=θk−α∇f(xk).
- ¯¯¯¯xk+1=(∇w)−1(θk+1).
- xk+1=argminyV¯¯¯¯xk+1(y).
这个视角提出了一点假设,(∇w)−1(xk+1) 始终存在,即 {∇w(x)}=Rn。
我们来简单地证明两种视角描述的算法是同一件事。
xk+1=argminyV¯¯¯¯xk+1(y)=argminy{w(y)−⟨∇w(¯¯¯¯xk+1),y−¯¯¯¯xk+1⟩−w(¯¯¯¯xk+1)}=argminy{w(y)−⟨∇w(¯¯¯¯xk+1),y⟩}=argminy{w(y)−⟨θk−α∇f(xk),y⟩}=argminy{α⟨∇f(xk),y⟩+w(y)−⟨∇w(x),y⟩}=argminy{α⟨∇f(xk),y−x⟩+Vx(y)}
命题 若 f 是 ρ-Lipschitz 的,w 是 1-强凸的,则 T=O(ρ2ϵ2) 轮后,f(¯¯¯¯x)−f(u)<ε。
证明
1-强凸说明
Vx(y)≥12∥x−y∥22
先来做一个类似于 GD 中 L-smooth,不使用 f convex 的一段证明。
⟨α∇f(xk),xk−u⟩=⟨α∇f(xk),xk−xk+1⟩+⟨α∇f(xk),xk+1−u⟩=⟨α∇f(xk),xk−xk+1⟩+⟨−∇Vxk(xk+1),xk+1−u⟩(∇(Vxk(y)+⟨α∇f(xk),y−xk⟩))(xk+1)=0=⟨α∇f(xk),xk−xk+1⟩+Vxk(u)−Vxk+1(u)−Vxk(xk+1)⟨−∇Vx(y),y−u⟩=Vx(u)−Vy(u)−Vx(y)≤(⟨α∇f(xk),xk−xk+1⟩−12∥xk−xk+1∥22)+Vxk(u)−Vxk+1(u)≤α22∥∇f(xk)∥22+Vxk(u)−Vxk+1(u)≤α2ρ22+Vxk(u)−Vxk+1(u)
令 ¯¯¯¯x=1k∑k−1t=0xt,根据 f 的凸性,有
f(¯¯¯¯x)≤1kk−1∑t=0f(xt)
则
αT(f(¯¯¯¯x)−f(u))≤Tα2ρ22+Vx0(u)−VxT(u)
假设 Vx0(x∗)≤Θ,其中 Θ 为常数,则有
f(¯¯¯¯x)−f(x∗)≤αρ22+ΘαT
令
α=√2Θρ√T
则有
f(¯¯¯¯x)−f(x∗)≤ρ√2Θ√T
故 T=O(ρ2ϵ2)。
考虑到 ρ-Lipschitz 等价于 ∥∇f(x)∥2≤ρ。如果我们能给 ∥∇f(x)∥2 设一个阈值 K,对 GD,每一步减小 ∥∇f∥222L≥K22L,所以只需要 O(ϵLK2) 轮;对 MD,只需要 O(K2ϵ2) 轮,令 K=ϵ√Lϵ,就有 T=O(1√ϵ),或称,O(1T2) 的收敛速率。
但 MD 对梯度的要求是全局的,GD 的速率是单点的,因此我们并不能把一个一般的函数用一个全局的阈值 K 分分清楚。于是我们引入今天的重点,线性耦合 (linear coupling)。当 GD 得到 yk,MD 得到 zk 作为下一步时,我们让 xk+1=τzk+(1−τ)yk。具体地,
- x0=y0=z0.
- xk+1=τzk+(1−τ)yk.
- yk+1=−∇f(xk+1).
- zk+1=Mirrzk(α∇f(xk+1)).
命题 存在 τ∈(0,1),使得 T=O(1√ϵ) 轮后,f(¯¯¯¯x)−f(x∗)<ϵ。
这里非常取巧地把 Mirr 的下标改为了和梯度中不一样的参数,这便是一般化起到的作用。在上述 MD 结论的推导中,我们并没有强依赖于下标和梯度参数的一致,在这里这么做实际上只是为了可以裂项,而只有我们将其一般化之后才意识到可以随意地改变参数,如果只是在 GD 的视角下,这个操作不合理的(即在一个点借用别处的梯度)。
证明
尝试使用和 MD 类似的方法,但是不把 ∥∇f(x)∥22 化为 ρ2,而是用 GD 化为 f(y),再考虑如何将 y 也裂项。
α⟨∇f(xk+1),zk−u⟩≤α22∥∇f(xk+1)∥22+Vzk(u)−Vzk+1(u)≤α2L(f(xk+1)−f(yk+1))+Vzk(u)−Vzk+1(u)
α⟨∇f(xk+1),xk+1−u⟩−α⟨∇f(xk+1),zk−u⟩=α⟨∇f(xk+1),xk+1−zk⟩=(1−τ)ατ⟨∇f(xk+1),yk−xk+1⟩τ(xk+1−zk)=(1−τ)(yk−xk+1)≤(1−τ)ατ(f(yk)−f(xk+1))Convexity
由此,令 1−ττ=αL,则有
α⟨∇f(xk+1),xk+1−u⟩≤α2L(f(yk)−f(yk+1))+Vzk(u)−Vzk+1(u)
αT(f(¯¯¯¯x)−f(x∗))≤T−1∑k=0α⟨∇f(xk),xk−x∗⟩≤α2L(f(y0)−f(yT))+Vx0(x∗)−VxT(x∗)
假设 f(y0)−f(x∗)≤d,Vx0(x∗)≤Θ,则有
f(¯¯¯¯x)−f(x∗)≤1T(αLd+Θα)
令 α=√ΘLd 即可得到
f(¯¯¯¯x)−f(x∗)≤2√LΘdT
T=4√LΘd,则
f(¯¯¯¯x)−f(x∗)≤d2
此时重新设置 α,再进行 T′=4√2LΘd 轮,便可以再缩小一倍,以此类推,最终达到 ϵ,总轮数为
O(√LΘϵ+√LΘ2ϵ+√LΘ4ϵ+…)=O(√LΘϵ)
似乎 Nesterov 证明了 O(1T2) 是在同假设下最优的下降速率,并且给出了第一代算法,巨难理解,这个线性拟合是最好理解的之一。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!