前言

大部分機器學習模型的

引數估計

問題都可以寫成最佳化問題。機器學習模型不同,損失函式不同,對應的最佳化問題也各不相同。瞭解最佳化問題的形式和特點,能幫助我們更有效地求解問題,得到模型引數,從而達到學習的目的。

問題1

機器學習中的最佳化問題,哪些是凸最佳化問題,哪些是非凸最佳化問題?請各舉幾個例子。

答:

要回答這個問題,需要先弄明白什麼是凸函式。

機器學習中的最佳化問題及無約束最佳化的直接法、迭代法(超精簡)

一個常用的機器學習模型——

邏輯迴歸

對應的最佳化問題就是凸最佳化問題(

SVM、線性迴歸也是!

)。具體來說,對於二分類問題,Y={1,-1},假設模型引數為θ,則邏輯迴歸的最佳化問題為

機器學習中的最佳化問題及無約束最佳化的直接法、迭代法(超精簡)

可以透過驗證目標函式二階 Hessian矩陣的(半)正定性來驗證凸性。

對於凸最佳化問題,所有的區域性極小值都是全域性極小值,因此這類問題一般認為是比較容易求解的問題。

另一方面,

主成分分析對應的最佳化問題是非凸最佳化問題(低秩模型如矩陣分解、深度神經網路模型也是!)

。令X=[x1,x2,。。。,xn]為資料中心化後構成的矩陣,則主成分分析的最佳化問題為

機器學習中的最佳化問題及無約束最佳化的直接法、迭代法(超精簡)

透過凸函式的定義可以驗證該最佳化問題的目標函式為非凸函式:

令V* 為最佳化問題的全域性極小值,則-V*也是該問題的全域性極小值,且有

機器學習中的最佳化問題及無約束最佳化的直接法、迭代法(超精簡)

這不滿足凸函式的定義,因此主成分分析的最佳化問題為非凸最佳化問題題。一般來說,非凸最佳化問題被認為是比較難求解的問題,

但主成分分析是一個特例,我們可以藉助SVD直接得到主成分分析的全域性極小值。

問題2

經典最佳化演算法有哪些?/假設有一道無約束最佳化問題擺在你面前: #FormatImgID_9# ,其中目標函式L(·)是光滑的。請問求解該問題的最佳化演算法有哪些?它的適用場景是什麼?

答:

分析與解答經典的最佳化演算法可以分為

直接法和迭代法

兩大類。

①直接法

,顧名思義,就是能夠直接給出最佳化問題最優解的方法。這個方法聽起來非常厲害的樣子,但它不是萬能的。

直接法要求目標函式需要滿足兩個條件

。第一個條件是,

L(·)是凸函式。

若L(·)是凸函式,那麼是最優解的

充分必要條件是L(·)在處的梯度為0。

因此,為了能夠直接求解出θ,

第二個條件是,上式有閉式解

。同時滿足這兩個條件的經典例子是嶺迴歸( Ridge Regression),其目標函式為

機器學習中的最佳化問題及無約束最佳化的直接法、迭代法(超精簡)

稍加推導就能得到最優解

機器學習中的最佳化問題及無約束最佳化的直接法、迭代法(超精簡)

直接法要滿足的這兩個條件限制了它的應用範圍

因此,在很多實際問題中,會採用迭代法。迭代法就是迭代地修正對最優解的估計

。假設當前對最優解的估計值為

\theta_t

,希望求解最佳化問題

機器學習中的最佳化問題及無約束最佳化的直接法、迭代法(超精簡)

來得到更好的估計值

機器學習中的最佳化問題及無約束最佳化的直接法、迭代法(超精簡)

迭代法又可以分為一階法和二階法兩類。

1)一階法

對函式L(

\theta_t+\delta

)做一階泰勒展開,得到近似式

機器學習中的最佳化問題及無約束最佳化的直接法、迭代法(超精簡)

由於該近似式僅在δ較小時才比較準確,因此在求解δ時一般加上L2正則項:

機器學習中的最佳化問題及無約束最佳化的直接法、迭代法(超精簡)

由此,一階法的迭代公式表示為

機器學習中的最佳化問題及無約束最佳化的直接法、迭代法(超精簡)

其中α稱為學習率。

一階法也稱梯度下降法

,梯度就是目標函式的一階資訊。

2)二階法

對函式L(

\theta_t+\delta

)做二階泰勒展開,得到近似式

機器學習中的最佳化問題及無約束最佳化的直接法、迭代法(超精簡)

其中

機器學習中的最佳化問題及無約束最佳化的直接法、迭代法(超精簡)

是函式L在處的 Hessian矩陣。透過求解近似最佳化問題

機器學習中的最佳化問題及無約束最佳化的直接法、迭代法(超精簡)

可以得到二階法的迭代公式

機器學習中的最佳化問題及無約束最佳化的直接法、迭代法(超精簡)

二階法也稱為牛頓法

, Hessian矩陣就是目標函式的二階資訊。

二階法的收斂速度一般要遠快於一階法

,但是在

高維情況下, Hessian矩陣求逆的計算複雜度很大,而且當目標函式非凸時,二階法有可能會收斂到鞍點

( Saddle Point)。

拓展延伸

①俄羅斯著名數學家Yurii Nesteriv在1983年提出了一階法的加速演算法,該演算法的收斂速率能夠達到一階法收斂速率的理論界。針對二階法矩陣求逆的計算複雜度過高的問題 Charles George Broyden, Roger Fletcher, Donald Goldfarb和 David Shanno於1970年獨立提出了後來被稱為BFGS的演算法114,1989年擴充套件為低儲存的L-bfgs演算法。

②平方根倒數速演算法

機器學習中的最佳化問題及無約束最佳化的直接法、迭代法(超精簡)

機器學習中的最佳化問題及無約束最佳化的直接法、迭代法(超精簡)

參考自:百面機器學習:演算法工程師帶你去面試 - 知乎書店