Proximal Gradient Descent for L1 Regularization


[本文鏈接:http://www.cnblogs.com/breezedeus/p/3426757.html,轉載請注明出處]

 

假設我們要求解以下的最小化問題:
                                                                                \(  \min\limits_x f(x)  \) 。
如果\( f(x) \)可導,那么一個簡單的方法是使用Gradient Descent (GD)方法,也即使用以下的式子進行迭代求解:
                                               \( x_{k+1} := x_{k} - \alpha \nabla f(x_{k}) \) 。
對GD的一種解釋是\( x_{k} \)沿着當前目標函數的下降方向走一小段,只要步子足夠小,總能保證得到 \( f(x_{k+1}) \leq f(x_{k}) \)。

 

如果\( \nabla f(x) \)滿足L-Lipschitz,即:
                                                 \( ||\nabla f(x') - \nabla f(x)|| \leq L ||x’ - x|| \),
那么我們可以在點\( x_{k} \)附近把\( f(x) \)近似為:
                             \(  \hat{f}(x, x_k) \doteq f(x_k) + \langle \nabla f(x_k), x - x_k \rangle + \frac{L}{2} ||x - x_k||^2 \)。

把上面式子中各項重新排列下,可以得到:

                           image  

顯然\(  \hat{f}(x, x_k) \)的最小值在

                                                      \( x_{k+1} = x_k - \frac 1 L \nabla f(x_k) \)

獲得。所以,從這個角度上看的話,GD的每次迭代是在最小化原目標的一個二次近似函數。

                                          image  

 

在很多最小化問題中,我們往往會加入非光滑的懲罰項\( g(x) \),比如常見的L1懲罰:\( g(x) = ||x||_1 \)。這個時候,GD就不好直接推廣了。但上面的二次近似思想卻可以推廣到這種情況:

                              image  。

這就是所謂的proximal gradient descent(PGD)算法。只要給定\( g(x) \)時下面的最小化問題能容易地求解,PGD就能高效地使用:

                                    image  。

比如\( g(x) = ||x||_1 \)時, \(\text{prox}_{\mu g} (z)\)能夠通過所謂的soft thresholding獲得:

                                                 \( \text{prox}_{\mu g} (z) = \text{sign}(z) \max\{|z| - \mu, \ 0\} \)。

 

[References]

[1] John Wright. Lecture III: Algorithms, 2013.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM