高等數學(凸優化)
一.凸優化基本概念
凸優化,或叫做凸最優化,凸最小化,是數學最優化的一個子領域,研究定義於凸集中的凸函式最小化的問題。凸優化在某種意義上說較一般情形的數學最優化問題要簡單,譬如在凸優化中區域性最優值必定是全域性最優值。凸函式的凸性使得凸分析中的有力工具在最優化問題中得以應用,如次導數等。
(1)什麼是最優化?
最優化是應用數學的一個分支,主要指在一定條件限制下,選取某種研究方案使目標達到最優的一種方法。最優化問題在當今的軍事、工程、管理等領域有著極其廣泛的應用。
數學模型中,最優化問題的共同特點是:求滿足一定條件的變數x1,x2,…,xn,使某函式f(x1,x2,…,xn)取得最大值或者最小值。
(2)最優化常見的方法
- 梯度下降法
- 牛頓法和擬牛頓法
- 共軛梯度法
- 啟發式優化方法等等
(3)應用領域
凸優化應用於很多學科領域,諸如自動控制系統,訊號處理,通訊和網路,電子電路設計,資料分析和建模,統計學(最優化設計),以及金融。
二.凸集
(1)凸集的定義
在凸幾何中,凸集(convex set)是在凸組合下閉合的仿射空間的子集。更具體地說,在歐氏空間中,凸集是對於集合內的每一對點,連線該對點的直線段上的每個點也在該集合內。例如,立方體是凸集,但是任何中空的或具有凹痕的例如月牙形都不是凸集。集合中的任意兩點連線的點都在該集合中,則稱該集合為凸集;凹集為非凸集。
(2)凸集的性質
- 凸集的交集是凸集。
- 凸集的並集不一定是凸集。
實數R上(或複數C上)的向量空間中,如果集合S中任兩點的連線上的點都在S內,則稱集合S為凸集。
三.凸函式
簡單理解為對曲線上任意兩點連線上的點對應的函式值不大於該兩點對應的函式值得連線上的值。
什麼是凹函式?簡單理解為對曲線上任意兩點連線上的點對應的函式值不小於該兩點對應的函式值得連線上的值。
凸函式的區域性最優解就是全域性最優解。
四.凸優化問題標準形式
(1)凸優化問題(OPT)的定義
即要求目標函式是凸函式,變數所屬集合是凸集合的優化問題。或者目標函式是凸函式,變數的約束函式是凸函式(不等式約束時),或者是仿射函式(等式約束時)。對於凸優化問題來說,區域性最優解就是全域性最優解。
(2)常見的凸優化問題
- 線性規劃(LP)
- 二次規劃(QP)
- 二次約束的二次規劃(QCQP)
- 半正定規劃(SDP)
其中SDP在機器學習領域應用很廣,最近很流行。
五.凸優化之Lagerange對偶化
無論原問題是不是凸優化問題,都可以將原問題轉化為凸優化問題來求解。
當Lagrange對偶問題的強對偶性成立時,可以利用求解對偶問題來求解原問題;而原問題是凸優化問題時,強對偶性往往成立。否則,可以利用求解對偶問題求出原問題最優值的下界。拉格朗日對偶講解
六.凸優化求解
有些凸優化問題比較簡單,是可以直接求解的,譬如二次規劃,這裡不做說明。求解凸優化問題,就要利用該問題的“凸”性——只要我一直朝著代價函式減小的方向去,那麼我一定不會走錯!這就是下降方法的基本思想。
(1)牛頓法
機器學習、深度學習中,損失函式的優化問題一般是基於一階導數梯度下降的。現在,從另一個角度來看,想要讓損失函式最小化,這其實是一個最值問題,對應函式的一階導數 f’(x) = 0。也就是說,如果我們找到了能讓 f’(x) = 0 的點 x,損失函式取得最小值,也就實現了模型優化目標。
- 牛頓法的迭代更新公式中沒有引數學習因子,也就不需要通過交叉驗證選擇合適的學習因子了。
- 牛頓法被認為可以利用到曲線本身的資訊, 比梯度下降法更容易收斂(迭代更少次數)。
(2)梯度下降
梯度下降法和牛頓法等基於導數作為判據的優化演算法,找到的都導數/梯度為0的點,而梯度等於0只是取得極值的必要條件而不是充分條件。如果我們將這個必要條件變成充分條件,即:
問題將會得到簡化。如果對問題加以限定,是可以保證上面這個條件成立的。其中的一種限制方案是:對於目標函式,我們限定是凸函式;對於優化變數的可行域(注意,還要包括目標函式定義域的約束),我們限定它是凸集。
(3)梯度下降 VS 牛頓法
梯度下降演算法是將函式在 xn 位置進行一次函式近似,也就是一條直線。計算梯度,從而決定下一步優化的方向是梯度的反方向。而牛頓法是將函式在 xn 位置進行二階函式近似,也就是二次曲線。計算梯度和二階導數,從而決定下一步的優化方向。一階優化和二階優化的示意圖如下所示:
梯度下降,一階優化
牛頓法,二階優化