Skip to content

算法Algorithm

Frank–Wolfe 条件梯度法

Frank-Wolfe method · Conditional gradient method

以线性最小化代替投影,在紧凸集内做凸组合,并用线性化间隙认证目标误差。

形式陈述 ​

给定非空紧凸集 C⊂Rn,在包含 C 的开集上可微、且在 C 上凸并为 $L$-光滑的 f,求 minx∈Cf(x)。记直径 R=supx,z∈C‖x−z‖<∞,取 L>0 的有效上界。紧性与连续性保证最小点存在。

输入可行初值 x0、精度 ε、预算和一个精确线性最小化 oracle。对 k=0,1,…,先计算

(1)sk∈argmins∈C⟨∇f(xk),s⟩,Gk=⟨∇f(xk),xk−sk⟩.

若 Gk≤ε,返回已认证的 xk;否则取 γk=2/(k+2),更新 xk+1=(1−γk)xk+γksk。也可在整段 [0,1] 上精确线搜索,使 f(xk+γ(sk−xk)) 最小;下面的函数值界仍成立,因为它不差于预设步长。

执行不变量是 xk∈C。输出可行点、gap、线性oracle次数、线搜索费用和停止原因。线性oracle若失败或只能给未认证的近似解,不能把它产生的数字称作式(1)的精确gap。

直觉

投影梯度寻找接近梯度候选的可行点,通常要解一个二次距离问题。Frank–Wolfe只问“在当前线性价格下,哪个可行点最便宜”,再向它移动一部分。镜像下降则还要支付Bregman距离。三种子问题的成本不同,应该按约束结构选方法。

在概率单纯形 Δn 上,线性oracle只需找最小梯度坐标,返回相应顶点 ej。在半径 τ 的 ℓ1 球上,它返回 −τsign(gj)ej,其中 |gj|=‖g‖∞。若从一个可行原子开始,每次至多加入一个新的oracle原子,k 次更新后可表示为至多 k+1 个已访问原子的凸组合;在多面体上若oracle总返回顶点,这些原子就是顶点。这个“稀疏”指原子表示;一般原子本身可以是稠密向量。

间隙来自一条可计算支撑平面。对任意 z∈C,凸性给 f(z)≥f(x)+⟨∇f(x),z−x⟩。在线性oracle处取最小值,得到 f∗≥f(x)−G(x),从而

(2)0≤f(x)−f∗≤G(x).

这个下界与产生 x 的算法无关,任意可行候选都能检查;它也不需要知道 L 或最优值。

例子与边界

三个坐标的线搜索 ​

取 C=Δ3、f(x)=‖x‖2/2,从 x0=(1,0,0) 开始。∇f=x,选择并列最小坐标时取编号较小者,所以 s0=e2。第一段目标是 [(1−γ)2+γ2]/2,导数 −1+2γ 为零给 γ=1/2,得到 x1=(1/2,1/2,0)。

此时 s1=e3。第二段目标为 (1−γ)2/4+γ2/2,导数 −1/2+3γ/2 为零给 γ=1/3,得到 x2=(1/3,1/3,1/3)。三个点的目标分别是 1/2,1/4,1/6;用 G(x)=‖x‖2−minixi,间隙分别为 1,1/2,0。最后的零证书证明最优,无需凭图猜测均匀点。

若使用预设步长,首步 γ0=1 会从 e1 到 e2,目标不变。这不违反函数值上界;预设步长与精确线搜索不能混成同一条数值轨道。

近似oracle的误差必须加入证书 ​

假设返回 s~∈C,并有可信的加性误差 δ≥0,满足

⟨∇f(x),s~⟩≤mins∈C⟨∇f(x),s⟩+δ.

那么可报告的上界是 G~+δ,其中 G~=⟨∇f(x),x−s~⟩,因为 G≤G~+δ。如果不附误差保证,oracle在上例 e1 返回 s~=e1 就会报 G~=0,实际目标还比最优值高 1/3。一个方便的方向不一定是合格的证书。

紧性也有工作:若 C=R、f(x)=x2/2,在 x=1 的线性子问题是最小化 s,没有有限解,虽然原目标有唯一最小点。若去掉凸性,f(x)=−x2、C=[−1,1] 在 x=0 有 G=0,目标却高于全局最优值 1;式(2)的支撑平面步骤已经失败。

推论与应用

函数值的完整递推 ​

记 Δk=f(xk)−f∗、B=LR2。由下降引理和式(2),对任意 0≤γ≤1,

f(xk+γ(sk−xk))−f∗≤Δk−γGk+B2γ2≤(1−γ)Δk+B2γ2.

首步 γ0=1 给 Δ1≤B/2≤2B/3。若 Δk≤2B/(k+2),取 γk=2/(k+2) 得

Δk+1≤2B(k+1)(k+2)2≤2Bk+3,

最后一步因 (k+1)(k+3)≤(k+2)2。归纳得到 Δk≤2LR2/(k+2),k≥1。精确线搜索的值不大于这条试探步,因此沿用递推。

这个证明控制函数值,不等于已经证明每个末点的gap也是同一个 O(1/k) 上界。实际停止仍直接算式(1)。例如上述递推只使用 Gk≥Δk,这是把gap向下替换成目标差,不能反过来从小目标差推出小gap。

预算与问题选择 ​

每轮费用是梯度、线性oracle、O(n)凸组合及可选线搜索。在单纯形上选坐标为 O(n);若梯度已稠密,维护稀疏原子表示并不会让全部费用自动变成常数。复杂约束上的线性oracle本身也可能昂贵。

惩罚型 Lasso 与约束 ‖x‖1≤τ 的平方损失可在合适参数下关联,但一般并非每个 λ 与每个 τ 一一对应。对前者应使用Lasso 可行对偶间隙;对后者可用这里的线性oracle证书。比较两个数值gap前先核对它们认证的是同一个目标和可行域。

两道短自测 ​

  1. 对 Δ3上的 f=‖x‖2/2,候选 (1/2,1/4,1/4)的gap是多少?答案:‖x‖2=3/8,最小梯度为1/4,故gap为1/8;实际目标差为 3/16−1/6=1/48,证书可以保守。
  2. 近似线性oracle给 G~=0.01、经证明的误差 δ=0.03,能否认证误差不超过0.02?答案:只能认证0.04,不能达标;要么改善oracle,要么保留预算不足状态。
参考资料
关系图谱8 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

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

使用的工具