文章目录
条件梯度下降
1. 基本概念
条件梯度下降法,即 Frank-Wolfe算法用来解决非线性约束问题的优化的。该算法的优势在于需要较少的内存以及在迭代中不需要用到投影方法。在算法中,给定一个初始点 x 0 x_0 x0,构建一个估计序列 x 1 , x 2 … x_1,x_2\dots x1,x2…,并最终收敛在问题的最优解。下面是该算法的一般描述:
输入 x 0 x_0 x0, tolerance δ > 0 \delta>0 δ>0
迭代 n n n次,其中第 k k k次迭代:
s k ∈ arg max s ∈ D ⟨ − ∇ f ( x k ) , s ⟩ s_k\in \argmax\limits_{s\in \mathfrak{D}}\langle -\nabla f(x_k),s\rangle sk∈s∈Dargmax⟨−∇f(xk),s⟩
d k = s k − x k d_k=s_k-x_k dk=sk−xk
g k = − ⟨ ∇ f ( x k ) , d k ⟩ g_k=-\langle \nabla f(x_k),d_k\rangle gk=−⟨∇f(xk),dk⟩
if g k < δ g_k < \delta gk<δ:
return x k x_k xk
update γ k ( g k ) \gamma_k(g_k) γk(gk)
x k + 1 = x k + γ k d k x_{k+1}=x_k+\gamma_kd_k xk+1=xk+γkdk
针对上面的算法中,对于 γ k \gamma_k γk的更新,有两种常用的方案:
1. γ k = min { g k L ∥ d k ∥ 2 , 1 } \gamma_k=\min \left\{\frac{g_k}{L\|d_k\|^2},1\right\} γk=min{
L∥dk∥2gk,1}.
2. γ k = arg min γ ∈ [ 0 , 1 ] f ( x k + γ d k ) \gamma_k=\argmin\limits_{\gamma\in [0,1]}f(x_k+\gamma d_k) γk=γ∈[0,1]argminf(xk+γdk)
算法中的主要步骤为:
1. s k ∈ arg min s ∈ D ⟨ ∇ f ( x k ) , s ⟩ s_k\in \argmin\limits_{s\in \mathfrak{D}}\langle \nabla f(x_k),s\rangle sk∈s∈Dargmin⟨∇f(xk),s⟩
2. x k + 1 = ( 1 − γ k ) x t + γ k ⋅ s k x_{k+1}=(1-\gamma_k)x_t+\gamma_k\cdot s_k xk+1=(1−γk)xt+γk⋅sk
当 D = { ∥ x ∥ ≤ τ } \mathfrak{D}=\{\|x\|\leq \tau\} D={
∥x∥≤τ},那么
s k ∈ arg min ∥ s ≤ τ ∥ ⟨ ∇ f ( x k ) , s ⟩ = − τ ( arg max ∥ s ∥ ≤ 1 ⟨ ∇ f ( x k ) , s ⟩ ) = − τ ∂ ∥ ∇ f ( x k ) ∥ s_k\in \argmin\limits_{\|s\leq \tau\|}\langle\nabla f(x_k),s\rangle=-\tau(\argmax\limits_{\|s\|\leq 1}\langle \nabla f(x_k),s\rangle)=-\tau\partial\|\nabla f(x_k)\| sk∈∥s≤τ∥argmin⟨∇f(xk),s⟩=−τ(∥s∥≤1argmax⟨∇f(xk),s⟩)=−τ∂∥∇f(xk)∥.
对偶范数的定义:设 ∥ ⋅ ∥ \|\cdot\| ∥⋅∥是 R \mathbb{R} R空间中的范数,则对偶范数为 ∥ z ∥ ∗ = sup x { z T x ∣ ∥ x ∥ ≤ 1 } \|z\|_*=\sup\limits_{x}\{z^Tx|\|x\|\leq 1\} ∥z∥∗=xsup{ zTx∣∥x∥≤1}。
范数的次微分: ∂ ∥ z ∥ ∗ ≡ { x : ⟨ x , z ⟩ = ∥ z ∥ ∗ , ∥ x ∥ ≤ 1 } \partial\|z\|_*\equiv\{x:\langle x,z\rangle=\|z\|_*, \|x\|\leq 1\} ∂∥z∥∗≡{ x:⟨x,z⟩=∥z∥∗,∥x∥≤1},因此 x ∗ ∈ { x : ⟨ x , z ⟩ = ∥ z ∥ ∗ , ∥ x ∥ ≤ 1 } x^*\in \{x:\langle x,z\rangle=\|z\|_*, \|x\|\leq 1\} x∗∈{ x:⟨x,z⟩=∥z∥∗,∥x∥≤1},即 x ∗ ∈ ∂ ∥ z ∥ ∗ x^*\in \partial\|z\|_* x∗∈∂∥z∥∗.
2. L 1 \mathfrak{L}_1 L1正则化问题
对于 L 1 \mathfrak{L}_1 L1正则化问题 :
min x f ( x ) , s . t . ∥ x ∥ 1 ≤ t \min\limits_{x}f(x),\ \ \ s.t.\ \ \|x\|_1\leq t xminf(x), s.t. ∥x∥1≤t,有 s k ∈ t ∂ ∥ ∇ f ( x k ) ∥ ∞ s_k\in t \partial\|\nabla f(x_k)\|_{\infty} sk∈t∂∥∇f(xk)∥∞,Frank-Wolfe的更新步骤为:
i k ∈ arg max i = 1 , … , p ∣ ∇ ( i ) f ( x k ) ∣ x k + 1 = ( 1 − γ k ) x k − γ k t ⋅ s i g n ( ∇ ( i k ) f ( x k ) ) e i k i_k\in \argmax\limits_{i=1,\dots,p}|\nabla^{(i)}f(x_k)|\\ x_{k+1}=(1-\gamma_k)x_k-\gamma_kt\cdot sign(\nabla^{(i_k)}f(x_k))e_{ik} ik∈i=1,…,pargmax∣∇(i)f(xk)∣xk+1