問題:
優化一個目標函數f(x),滿足一些約束c(x),等式或者不等式。滿足約束的解成為可行解。
分類:
連續/離散優化問題
約束/非約束優化問題
線性/非線性優化問題
全局/局部優化問題
隨機/確定性優化問題
凸優化:
1、凸集:如果集合S為凸集,當且僅當 x∈S, y∈S 並且α(x)+(1−α)(y) inS;α∈[0,1]
2、凸函數:凸函數:如果函數f(x)為凸函數,當且僅當S為凸集,x∈S, y∈S; αf(x)+(1−α)f(y)≥f(αx+(1−α)y); α∈[0,1]
3、嚴格凸函數,凸函數能夠取到非等號,即α∈(0,1)
4、凸優化問題:對於標准形式目標函數為凸函數,等式約束為線性約束;不等式約束為凹函數。
無約束最優化問題:
在機器學習中,有大量的問題可以歸約為無約束最優化問題,例如線性回歸、LR等。因此對於無約束問題的研究也很深入從簡單的GD、SGD、TR到CG、Newton、(L-)BFGS等
1. 無約束最優化問題可以表示為 minf(x); x∈ℝn
2. 全局最優解 VS 局部最優解
* 全局最優簡單理解為在整個定義域內解最小
* 局部最優:在某個鄰域內解最小
3. 對於凸優化問題,任何局部最優解都是全局最優解。
局部最優解的幾個定理:
1、泰勒展開公式,根據泰勒公式對於函數f(x)可以近似為
一階展開近似:f(x)≈f(x0)+∇f(x0)T(x−x0)
二階展開近似:f(x)≈f(x0)+∇f(x0)T(x−x0)+12(x−x0)T∇2f(x0)(x−x0)
2、局部最小值的一階必要條件,如果 x∗ 為局部最優解並且函數f一階可導,則在 x∗ 的鄰域內 ∇f(x∗)=0
3、局部最優解的二階必要條件,如果 x∗為局部最優解並且一階和二階可導,則∇f(x∗)=0 並且 ∇2f(x)正定
證明:對於定理2,3的證明采用反證法。例如對於定理2. 假設 ∇f(x∗)≠0, 則根據泰勒一階展開則可以找到∇f(x∗)T(x−x∗)≤0
4、局部最優的二階充分條件:如果函數f在 x∗ 處滿足∇f(x∗)=0並且∇2f(x)正定,則 x∗ 為局部最優解
5、如果函數f為凸函數,則f的任何局部最優解都為全局最優解。
優化算法概述:
在后面會介紹一系列解決該問題的算法,先介紹幾個簡單的概念。
1. 通過數值優化算法求解,一般會給定初始點 x0,找到一系列點x1,x2,x3 ... xn→x∗
2. 通常有兩大類比較重要的策略 線搜索(Line Search)和信賴域(Trust Region)
3. Line Search策略:假設在某點xk,尋找方向pk和步長α使得 min f(xk+αpk) 最小,如果pk確定則只需要解決一維最優化問題就可以找到下一個搜索點,如何確定pk后面介紹幾類策略,最簡單的策略就是當前點的梯度。
4. Trust Region策略:在某店xk解決優化問題 min mk(xk+pk),其中mk為函數f在xk點的近似,同時為保證mk為一個較好的近似,即當pk 遠離 xk 時偏離太大,則需要保證xk+pk 在一個可信賴的區域內;
5. 通常情況下信賴域選擇為橢圓、球或者盒狀區域,即一個凸集容易找到最優解。
6. 模型mk一般可以選擇為函數f的泰勒二階近似,即
其中Bk為Hessian矩陣或者其近似
7. 以上兩類策略的相同點是在某點xk通過解決一個優化問題找到下一個搜索點。LS首先選擇方向pk通過解決一維最優化問題找到步長α;TR首先對步長進行約束,通過解決簡單的優化問題尋找搜索方向。
線搜索中的方向:
1、最速下降:負梯度方向 pk=−∇fk
2、牛頓方向:pNk=−(∇2fk)−1∇fk
3、擬牛頓方向:pk=−B−1k∇fk
4、非線性共軛梯度方向:
pk=−∇fk+βkpk−1