近端梯度法

总目录

一、 凸优化基础(Convex Optimization basics)

凸优化基础(Convex Optimization basics)

二、 一阶梯度方法(First-order methods)

梯度下降(Gradient Descent)

次梯度(Subgradients)

近端梯度法(Proximal Gradient Descent)

随机梯度下降(Stochastic gradient descent)

三、对偶

线性规划中的对偶(Duality in linear programs)

凸优化中的对偶(Duality in General Programs)

KKT条件(Karush-Kuhn-Tucker Conditions)

对偶的应用及拓展(Duality Uses and Correspondences)

对偶方法(Dual Methods)

交替方向乘子法(Alternating Direction Method of Multipliers)

近端梯度法(Proximal Gradient Descent)

在凸优化问题中,对于可微分的目标函数,我们可以通过梯度下降法(gradient descent)迭代求解最优解,而对于不可微分的目标函数,通过引入次梯度(subgradient)也可以迭代求解最优解,然而比起梯度下降法,次梯度法的速度比较缓慢。为此,针对于一些整体不可微分但却可以分解的目标函数来说,我们可以使用一种更快的算法——近端梯度法。

1. 可分解的目标函数

考虑一个目标函数可以分解为如下形式的两个函数:

f ( x ) = g ( x ) + h ( x ) (1) f(x)=g(x)+h(x) \tag{1}

f(x)=g(x)+h(x)(1)

其中,g ( x ) g(x)g(x)是凸函数且是可微分的,h ( x ) h(x)h(x)也是凸函数但可能不可微分。使用近端梯度下降,可以实现O ( 1 / ϵ ) O(1/\epsilon)O(1/ϵ)的收敛率(ϵ = f ( x ( k ) ) − f ( x ∗ ) \epsilon=f(x^{(k)})-f(x^*)ϵ=f(x

(k)

)−f(x

),即当前迭代结果与最优解之间的偏差)。通过对近端梯度法加速,可以达到O ( 1 / ϵ ) O(1/\sqrt\epsilon)O(1/

ϵ

)收敛速率。

2. 梯度下降法回顾

对于一个可微分的凸函数f ( z ) f(z)f(z),假设起始点在x xx,则可以做二阶泰勒展开:

f ( z ) ≈ f ( x ) + ∇ f ( x ) T ( z − x ) + 1 2 ∇ 2 f ( x ) ∥ z − x ∥ 2 2 (2) f(z)\approx f(x)+\nabla f(x)^T(z-x)+\frac{1}{2}\nabla^2f(x)\|z-x\|^2_2 \tag{2}

f(z)≈f(x)+∇f(x)

T

(z−x)+

2

1

2

f(x)∥z−x∥

2

2

(2)

通过替换∇ 2 f ( x ) = 1 t I \nabla^2f(x)=\frac{1}{t}I∇

2

f(x)=

t

1

I,可以得到

f ( z ) ≈ f ( x ) + ∇ f ( x ) T ( z − x ) + 1 2 t ∥ z − x ∥ 2 2 (3) f(z)\approx f(x)+\nabla f(x)^T(z-x)+\frac{1}{2t}\|z-x\|^2_2 \tag{3}

f(z)≈f(x)+∇f(x)

T

(z−x)+

2t

1

∥z−x∥

2

2

(3)

最小化上述二次近似

x + = arg ⁡ min ⁡ z f ( x ) + ∇ f ( x ) T ( z − x ) + 1 2 t ∥ z − x ∥ 2 2 (4) x^+=\arg\min_zf(x)+\nabla f(x)^T(z-x)+\frac{1}{2t}\|z-x\|^2_2 \tag{4}

x

+

=arg

z

min

f(x)+∇f(x)

T

(z−x)+

2t

1

∥z−x∥

2

2

(4)

可以得到下一个点的位置

z = x + = x − t ∇ f ( x ) (5) z=x^+=x-t\nabla f(x) \tag{5}

z=x

+

=x−t∇f(x)(5)

这就是我们常见的梯度下降的迭代更新策略。

3. 近端投影

如果f ff不可微,但可以分解为上述的两个函数g gg和h hh,则我们仍然可以使用平滑部分g gg的二次近似来定义向最小值走的一步:

x + = arg ⁡ min ⁡ a g ( z ) + h ( z ) ≈ arg ⁡ min ⁡ z g ( x ) + ∇ g ( x ) T ( z − x ) + 1 2 t ∥ z − x ∥ 2 2 + h ( z ) (6)

\begin{aligned} x^+&=\arg\min_a g(z)+h(z) \\ &\approx \arg\min_z g(x)+\nabla g(x)^T(z-x)+\frac{1}{2t}\|z-x\|^2_2+h(z) \tag{6} \end{aligned}

\begin{aligned} x^+&=\arg\min_a g(z)+h(z) \\ &\approx \arg\min_z g(x)+\nabla g(x)^T(z-x)+\frac{1}{2t}\|z-x\|^2_2+h(z) \tag{6} \end{aligned}

x

+


=arg

a

min

g(z)+h(z)

≈arg

z

min

g(x)+∇g(x)

T

(z−x)+

2t

1

∥z−x∥

2

2

+h(z)

(6)

式(6)可以写成:

x + = arg ⁡ min ⁡ z 1 2 t ∥ z − ( x − t ∇ g ( x ) ) ∥ 2 2 + h ( z ) : = p r o x h , t ( x − t ∇ g ( x ) ) (7) x^+=\arg\min_z\frac{1}{2t}\|z-(x-t\nabla g(x))\|^2_2+h(z):=prox_{h,t}(x-t\nabla g(x)) \tag{7}

x

+

=arg

z

min


2t

1

∥z−(x−t∇g(x))∥

2

2

+h(z):=prox

h,t

(x−t∇g(x))(7)

其中,近端函数p r o x proxprox定义为

p r o x h , t ( x ) = arg ⁡ min ⁡ z 1 2 t ∥ z − x ∥ 2 2 + h ( z ) (8) prox_{h,t}(x)=\arg\min_z\frac{1}{2t}\|z-x\|^2_2+h(z) \tag{8}

prox

h,t

(x)=arg

z

min


2t

1

∥z−x∥

2

2

+h(z)(8)

4. 近端梯度下降

使用近端函数,我们可以定义一个迭代过程,叫做迭代梯度下降。其过程如下:

首先,选择一个初始点x ( 0 ) x^{(0)}x

(0)

,然后重复:

x ( i ) = p r o x h , t i ( x ( i − 1 ) − t i ∇ g ( x ( i − 1 ) ) ) , i = 1 , 2 , 3 , . . . (9) x^{(i)}=prox_{h,t_i}(x^{(i-1)}-t_i\nabla g(x^{(i-1)})), i=1,2,3,... \tag{9}

x

(i)

=prox

h,t

i

(x

(i−1)

−t

i

∇g(x

(i−1)

)),i=1,2,3,...(9)

使用该方法有几个优点:

对于许多h hh函数,其近端投影p r o x h , t prox_{h,t}prox

h,t

有解析解;

p r o x t prox_{t}prox

t

仅仅依赖于h hh,因此可以被用于不同的g gg函数;

g gg可以是任意复杂的函数,只要我们能计算其梯度;

4.1 例子:迭代软阈值算法(ISTA)

考虑下面lasso问题:

min ⁡ β ∈ R p 1 2 ∥ y − X β ∥ 2 2 + λ ∥ β ∥ 1 (10) \min_{\beta \in \mathcal{R}^p}\frac{1}{2}\|y-X\beta\|^2_2+\lambda\|\beta\|_1 \tag{10}

β∈R

p

min


2

1

∥y−Xβ∥

2

2

+λ∥β∥

1

(10)

令g ( β ) = 1 2 ∥ y − X β ∥ 2 2 g(\beta)=\frac{1}{2}\|y-X\beta\|^2_2g(β)=

2

1

∥y−Xβ∥

2

2

,h ( β ) = ∥ β ∥ 1 h(\beta)=\|\beta\|_1h(β)=∥β∥

1

。对于目标函数的近端映射可以用软阈值法来计算:

p r o x h , t ( β ) = arg ⁡ min ⁡ z 1 2 t ∥ β − z ∥ 2 2 + λ ∥ z ∥ 1 = S λ t ( β ) (11) prox_{h,t}(\beta)=\arg\min_z \frac{1}{2t}\|\beta-z\|^2_2+\lambda\|z\|_1=S_{\lambda t}(\beta) \tag{11}

prox

h,t

(β)=arg

z

min


2t

1

∥β−z∥

2

2

+λ∥z∥

1

=S

λt

(β)(11)

其中,S λ t ( β ) S_{\lambda t}(\beta)S

λt

(β)有解析解,相当于软阈值算子:

[ S λ t ] i = { β i − λ t , β i > λ t 0 , − λ t ≤ β i ≤ λ t β i + λ t , β i < − λ t (12) [S_{\lambda t}]_i=\left\{

βi−λt,0,βi+λt,βi>λt−λt≤βi≤λtβi<−λt

βi−λt,βi>λt0,−λt≤βi≤λtβi+λt,βi<−λt

\right. \tag{12}

[S

λt

]

i

=


β

i

−λt,

0,

β

i

+λt,



β

i

>λt

−λt≤β

i

≤λt

β

i

<−λt

(12)

而g ( β ) g(\beta)g(β)的梯度为X T ( X β − y ) X^T(X\beta-y)X

T

(Xβ−y),因此,我们可以得到近端梯度下降更新策略:

β + = S λ t ( β − t X T ( X β − y ) ) (13) \beta^+=S_{\lambda t}(\beta-tX^T(X\beta-y)) \tag{13}

β

+

=S

λt

(β−tX

T

(Xβ−y))(13)

5. 特殊情况

近端梯度下降相当于梯度下降法的一种推广,因此也被称为复合梯度下降(composite gradient descent)或者广义梯度下降(generalized gradient descent)。下面几个特殊的情况可以看出为什么称之为广义梯度下降。

5.1 梯度下降

当h ( x ) = 0 h(x)=0h(x)=0时,近端映射函数变为:

p r o x t ( x ) = arg ⁡ min ⁡ z 1 2 t ∥ x − z ∥ 2 2 = x (14) prox_t(x)=\arg\min_z\frac{1}{2t}\|x-z\|^2_2=x \tag{14}

prox

t

(x)=arg

z

min


2t

1

∥x−z∥

2

2

=x(14)

因此,更新策略变为

x ( k ) = x ( k − 1 ) − t k ∇ g ( x ( k − 1 ) ) , k = 1 , 2 , 3 , . . . (15) x^{(k)}=x^{(k-1)}-t_k\nabla g(x^{(k-1)}), k=1,2,3,... \tag{15}

x

(k)

=x

(k−1)

−t

k

∇g(x

(k−1)

),k=1,2,3,...(15)

即正常的梯度下降法。

5.2 投影梯度下降

当h ( x ) = I c h(x)=I_ch(x)=I

c

,I c I_cI

c

为集合C CC的指示函数时,近端映射函数变为:

p r o x t ( x ) = arg ⁡ min ⁡ z 1 2 t ∥ x − z ∥ 2 2 + I c = arg ⁡ min ⁡ z ∈ C 1 2 t ∥ x − z ∥ 2 2 = P C ( x ) (16)

proxt(x)=argminz12t∥x−z∥22+Ic=argminz∈C12t∥x−z∥22=PC(x)

proxt(x)=arg⁡minz12t‖x−z‖22+Ic=arg⁡minz∈C12t‖x−z‖22=PC(x)

\tag{16}

prox

t

(x)


=arg

z

min


2t

1

∥x−z∥

2

2

+I

c

=arg

z∈C

min


2t

1

∥x−z∥

2

2

=P

C

(x)

(16)

其中,P C ( x ) P_C(x)P

C

(x)表示集合C CC上的投影算子。

因此,更新策略变为

x ( k ) = P c ( x ( k − 1 ) − t k ∇ g ( x ( k − 1 ) ) ) , k = 1 , 2 , 3 , . . . (17) x^{(k)}=P_c(x^{(k-1)}-t_k\nabla g(x^{(k-1)})), k=1,2,3,... \tag{17}

x

(k)

=P

c

(x

(k−1)

−t

k

∇g(x

(k−1)

)),k=1,2,3,...(17)

即为投影梯度下降法。其先使用正常的梯度更新策略,然后将得到的x xx投影回集合C CC中。

5.3 近端最小化算法

当g ( x ) = 0 g(x)=0g(x)=0时,更新策略变为:

x ( k ) = arg ⁡ min ⁡ z 1 2 t ∥ x ( k − 1 ) − z ∥ 2 2 + h ( z ) , k = 1 , 2 , 3 , . . . (18) x^{(k)} = \arg\min_z\frac{1}{2t}\|x^{(k-1)}-z\|^2_2+h(z), k=1,2,3,... \tag{18}

x

(k)

=arg

z

min


2t

1

∥x

(k−1)

−z∥

2

2

+h(z),k=1,2,3,...(18)

其叫做近端最小化算法(proximal minimization algorithm)。其比次梯度方法快,但仅仅适用于近端算子是闭合形式的情况。

————————————————

版权声明:本文为CSDN博主「JimmyCM」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/zbwgycm/article/details/83060251

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,524评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,869评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,813评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,210评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,085评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,117评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,533评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,219评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,487评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,582评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,362评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,218评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,589评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,899评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,176评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,503评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,707评论 2 335

推荐阅读更多精彩内容