Skip to content

算法Algorithm

远离步 Frank–Wolfe 法

Away-step Frank–Wolfe · Away-steps Frank-Wolfe · AFW · 远离步条件梯度法

在有限凸包中维护原子权重,允许撤回不利原子的质量,并用权重上限、drop计数和可行gap分别认证更新与误差。

普通Frank–Wolfe每次向一个有利原子靠近,其他旧权重同比缩小。若某个旧原子已经不合适,反复缩小它可能很慢。远离步允许直接沿“离开这个原子”的方向移动;真正需要记录的状态于是除了当前位置,还有产生它的那份凸组合。

形式陈述 ​

输入、方向与权重更新 ​

设V⊂Rd为非空有限原子集,d≥1,可行域C=conv(V)是它的凸包。f在C的邻域可微、在C上凸,梯度在C上为L-Lipschitz,取正的有效上界L>0。输入一份已知可行表示

x0=∑v∈S0wvv,S0⊆V,wv>0,∑wv=1,

以及精确线性最小化oracle、容差与预算。原子集不要求每个成员都是极点,但同一原子只记一次。

在当前状态(x,S,w),沿用Frank–Wolfe的线性oracle与gap,并在当前支持内寻找最不利原子:

(1)s∈arg⁡minz∈V⟨∇f(x),z⟩,G=⟨∇f(x),x−s⟩,v∈arg⁡maxz∈S⟨∇f(x),z⟩,A=⟨∇f(x),v−x⟩.

G,A≥0,因为x是所比较原子的凸组合。若G≤ε,返回可行点及误差证书0≤f(x)−f∗≤G。否则按较大下降量选方向,并在并列时选FW:

(2)(d,γmax,g)={(s−x, 1, G),G≥A,(x−v, wv/(1−wv), A),G<A.

当支持只有一个原子时,A=0,不会选到第二分支,因此不会除以零。本页固定使用可直接计算的短步长

(3)γ=min{gL‖d‖22,γmax},x+=x+γd.

未停止时g>0,故d≠0。FW分支将旧权重乘1−γ,再给s加γ;away分支将所有旧权重乘1+γ,再从v的权重减γ。删去恰为零的权重,得到新支持。

在away分支若γ=γmax,称本页的一次drop步:所选原子被删去。其余更新称good步,包括可能一步到达s的FW步。这个计数约定用于后文证明,不把FW重置支持与away截短步混为同一类。

直觉

可行性为什么依赖当前表示 ​

FW分支的权重显然非负且和为1。away分支中,除v外的权重都增加;唯一可能变负的是

wv+=(1+γ)wv−γ=wv−γ(1−wv).

所以γ≤wv/(1−wv)恰好保持这份表示非负。全部新权重之和是(1+γ)−γ=1,因而仍得到x+∈C。这证明了每轮执行不变量。

在线性oracle值最低的原子s之外,算法还查当前支持里值最高的v。向s靠近和离开v都可能降低当前线性模型,比较G,A决定采用哪种。away并不只是把质量从v直接交给s,而是按原比例增加所有其他当前权重;直接在两个原子之间换质量属于另一种pairwise更新。

下降量怎样支付 ​

对可行线段,下降引理给

(4)f(x+γd)≤f(x)−γg+L2γ2‖d‖2.

式(3)在该二次上模型的最小点与权重允许上限之间取较小值。因此每轮目标不增。不过away允许上限可能非常小:即使方向很好,本轮也只能删掉一点剩余权重。这解释了为什么drop不能统一当成具有固定进展量的一轮。

例子与边界

两轮到达一个边界最小点 ​

在概率单纯形C={x∈R3:xi≥0,∑xi=1}上,令

(5)f(x)=12‖x−a‖2,a=(4/5,1/2,−3/10),x0=(1/3,1/3,1/3).

原子为e1,e2,e3,初始权重各1/3,L=1。梯度为(−7/15,−1/6,19/30),与x0内积为零。因此s=e1,v=e3,G=7/15,A=19/30,应选away。

方向d=(1/3,1/3,−2/3)有‖d‖2=2/3,未截短步长为19/20;权重只允许(1/3)/(2/3)=1/2。执行γ=1/2后,e3权重归零,另外两个变为1/2:

x1=(1/2,1/2,0).

第二轮梯度(−3/10,0,3/10),G=A=3/20。按并列规则选FW,d=(1/2,−1/2,0),故γ=(3/20)/(1/2)=3/10,得到

x2=(13/20,7/20,0).

此时梯度为(−3/20,−3/20,3/10),最小原子价格与当前加权价格同为−3/20,所以G=0。最优值为27/400。三轮检查中的目标与gap分别是

x0x1x2f97/3009/10027/400G7/153/200
远离步的几何与权重账

图中第一步是drop,第二步是good。目标下降与支持缩小分别有各自的计算依据,不能只凭某个坐标显示为零就宣布全局最优。

表示上限可能早于几何边界 ​

取正方形原子(0,0),(1,0),(1,1),(0,1),权重为(1/10,1/5,1/2,1/5),得到x=(7/10,7/10)。对线性目标f(x)=−x1−x2,away原子是v=(0,0),A=7/5,大于FW gap3/5。

当前表示允许γmax=1/9,所以drop后位置为(7/9,7/9),仍在正方形内部。沿同一几何射线其实能走到γ=3/7才碰到(1,1),但超过1/9会使原来(0,0)的权重为负。若想继续走,必须先找另一份非负表示;本算法没有假定拥有这样的额外子程序。

不能只看away gap停止 ​

当S只有一个原子时,A=0恒成立,原问题却未必最优。例如在式(5)从e3出发,away gap为零,但FW方向仍能大幅降低目标。停止量必须是全域线性oracle给的G,不是只在当前支持内搜索得到的A。

若oracle近似,需像普通FW一样给可信误差预算,不能把一个随意候选的线性差当成精确gap。若目标非凸,G=0一般只是一阶可行性信息,失去全局目标差证书;本页的收敛预算也随之失效。

推论与应用

good步的完整函数值界 ​

令ht=f(xt)−f∗。取正数R作为C直径的有效上界,并令

C0=max{G(x0),LR2}>0.

如果初始gap已经为零,直接结束。否则ht≤h0≤G(x0)≤C0,因为每步目标不增。两种方向都有‖d‖≤R,且所选下降量g≥G≥ht。

对于未触上限的步,式(4)给

ht−ht+1≥g22L‖d‖2≥ht22LR2.

对FW分支若截到γ=1,则g≥L‖d‖2,式(4)给下降至少g/2≥ht/2。因此每个good步都满足

(6)ht+1≤ht−ht22C0.

若尚未达到零误差,取倒数并用1/(1−u)≥1+u可得

1ht+1≥1ht+12C0.

drop期间h不增,所以倒数也不减。若前t次更新共有Nt个good步,求和得到

(7)ht≤2C0Nt+2.

中途误差为零时后续结论自动成立。式(7)控制目标差,不是给每个末点的G(xt)同样大小的上界;实际停止仍重算gap。

drop次数为什么受控 ​

记初始支持大小为s0≥1,前t步的away-drop数为Dt。每次这样的drop恰删一个原子;只有FW步能加入新原子,且一次至多加一个,所以加入次数不超过Nt。FW一步到顶点可能再删去其他原子,这只会减少可供未来删除的库存。由于支持始终非空,

(8)Dt≤Nt+s0−1,Nt≥max{0,⌈t−s0+12⌉}.

从单个顶点启动才可直接说good至少占一半。若初始支持很大,前面可以连续删原子,必须保留s0−1这一项。

成本与更强结论的范围 ​

每轮除梯度和线性oracle外,扫描s=|S|个显式d维原子需O(sd)时间,更新点需O(d)、权重需O(s);保存原子和权重需O(sd+s)。若全部V都显式扫描,线性oracle本身为O(|V|d)。稀疏或结构化原子可降低成本,但应按其实际接口重计。

凸性与光滑性已足以给式(7)–(8)。在强凸目标和有限多面体上,还可以用金字塔宽度等几何常数证明更强的线性率;这需要额外的方向—误差比较,不从本页的g≥h自动得到。把“这次成功删掉原子”解释为“以后每轮都会几何加速”也没有依据。

参考资料
关系图谱11 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系

使用的工具