一、前言
? ? 熟悉機器學習的童靴會發現,機器學習中許多算法都是如下思路:問題提出、建立損失函數(loss function)、求出最優解。最優解的求解過程,往往是個迭代過程,使損失函數達到最優(或一定閾值范圍內)。這里列舉幾類機器學習常見優化問題:
? ??可見,最優化方法在機器學習中的重要地位。本文介紹幾種常用的導數優化方法,希望對更加深入(cui)學(niu)習(bi)機器學習有所幫助。
二、最優化問題及凸優化問題
2.1 最優化問題(optimization)
這里我先直接上度娘
如果對以上的解釋還有些迷糊,那看一下如下例題:
例1.
? ? 看完,我們基本上就都熟悉了,上面的例題是我們在高中一口氣做20道都不會錯的題目(如果忘了怎么解,請翻看《5年高考3年模擬精裝版》)
? ? 以上例1便是一個典型的最優化問題,更準確地說,是一個線性規劃問題。這里,我給出最優化問題的大白話解釋:
最優化問題:
? ? ? ? ? ? ? 1.根據應用場景找到目標函數(如例1中的盈利),這個目標函數將是你要優化的
? ? ? ? ? ? ? 2.找到一個能讓目標函數最優的方法
? ? ? ? ? ? ? 3.利用這個方法進行求解
2.2 最優化問題定義及分類
? ? 2.2.1 最優化問題定義
? ? 這里,給出最優化問題數學上形式化的定義:
? ? 其中x為n維向量,也是我們最終要求出的解;subject to (s.t.)為受限于,第一項為不等式約束,第二項為等式約束
2.2.1 最優化問題的分類
最優化問題有多種多樣的分類方法,主要依據不同的分類角度,這里列舉最簡單的兩種分類
? ? ? ? 1.根據約束函數分類:無約束優化、等式約束優化、不等式約束優化
? ? ? ? 2.根據目標函數是否為凸:凸優化、非凸優化
? ? 后面講到的都是無約束+凸的問題,無約束的凸優化是比較好求解(一定有最優解)同時很容易掌握的。
2.3 凸優化問題(convex optimization)
? ? 可以看到,凸優化問題只是在優化問題上加上了凸的限制。之所以要研究凸優化問題,是因為凸優化是一類特別“優”的優化問題,它的優體現在:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1.凸優化問題的可行域是凸集
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.凸優化問題的局部最優解均是全局最優解
? ? 有關凸集、凸函數的數學解釋不展開講,在求解最優化問題時記住以下形象比喻即可:
? ? ? ? ? ? ? ?1.凸優化問題,好比你面對的是一個峽谷,只要你一直往下走,一定能達到峽谷的最低點(最優解)
? ? ? ? ? ? ? 2.非凸優化,你可能面對的是一個坑坑洼洼的大草原,你可能走到了某個低洼地帶(局部最優),但這不是整個草原的最低點(全局最優)
? ? 常用的線性回歸、邏輯回歸都是凸問題。值得指出的是,很多童鞋認為k-means也是凸問題,其實k-means的目標函數是非凸的,所以k-means不保證能找到全局最優解,但每次都能找到局部最優解,所以k-means受初始點影響很大,一般都是多次計算取最優(相當于在幾個局部最優解選最優)。
三、導數優化問題
? ? 前面兩個章節,我們從最優化問題講到了凸優化問題,主要還是提綱挈領地講了一些概念性的知識點。那么,如何具體求解凸優化問題呢,本節主要介紹無約束條件下的導數優化方法。
? ? 導數優化方法的套路都是下降方法(descent method),通俗的說,就是以一定的步長、一定的方向往最優解(峽谷底部)靠近。下降方法的形式化定義如下:
? ? 以上的套路是比較通用的,不同方法的差異僅僅在搜索方向上。值得說明的是,如果遵循步子邁太大容易扯著蛋的原則,同時最優步長可計算的情況下,可以在每次迭代時選擇最優步長,但在實際應用中我們往往也使用固定步長。
? ? ? ? 依據搜索方向的不同,可以細分為許多不同的方法:
? ? 上述(1)~(4)為非常常用的幾類方法,(1)、(2)、(3)選擇了三種不同的搜索方向,(4)在(3)的基礎上做了改進,主要避免了Hesse矩陣逆的計算。由于篇幅所限,主要講解(1)和(2)
3.1 梯度下降法(Gradient descent/Steepest descent)
例2.
3.2 牛頓法
? ? 在梯度下降法中,我們看到,該方法主要利用的是目標函數的局部性質,具有一定的“盲目性”。牛頓法則是利用局部的一階和二階偏導信息,推測整個目標函數的形狀,進而可以求得出近似函數的全局最小值,然后將當前的最小值設定近似函數的最小值。相比梯度下降法,牛頓法帶有一定對全局的預測性,收斂性質也更優良。
對牛頓方向的推導:
? ? 將上述最后一項與下降方法一般式進行比較,會發現,牛頓法是以牛頓方向為搜索方向,1為固定步長進行迭代計算:
? ? ? ? ?優點:二次終止性。對于二次凸函數,經過有限次迭代必達到極小點
? ? ? ? ?缺點:步長恒等于1,并不能保證函數值穩定的下降
牛頓法迭代步驟:
例3.
? ? 牛頓法適用的情形:要求目標函數具有連續的一、二階導數;Hesse矩陣非奇異。但現實情況是,就算是滿足以上條件,由于要求解二階偏導及其逆矩陣,計算所需資源會很大,這時候DFP、BFGS等會是很好的替代方法。
四、小結
? ? 最優化方法是機器學習的重要基礎,上述的方法能很好的解決相關算法問題。比如。可以利用梯度下降法求解線性回歸以及矩陣分解問題,LR問題也可由牛頓法求解,后續會介紹相關應用。