優化演算法 無約束優化

2022-09-11 19:30:21 字數 2619 閱讀 1413

無約束優化問題可以表示為:

$min_ l(\theta)$

其中目標函式 $l(\cdot)$ 是光滑的。如何針對不同的目標函式,不同的應用場景求解乙個無約束優化問題是機器學習領域的關注點。

經典的優化演算法可以分為直接法和迭代法兩大類。

直接法,就是能夠直接給出優化問題的最優解的方法,這種方法能夠通過乙個解析式直接求出對應的最優解。但是有一系列的約束使得這種方法並不能廣泛適用。

直接法要求目標函式具有兩個條件:

(1)$l$ 是凸函式,如果$l$ 是凸函式,則 $ \theta^$ 是最優解的充分必要條件是 $l$ 在 $ \theta^$ 處的梯度為 0。即

$\********down l(\theta^) = 0$

(2)為了能夠直接求解出 $ \theta^$,需要上式有閉式解(解析解)。

而同時滿足上述兩個條件的經典的模型是嶺回歸(帶正則化項的線性回歸):

$l(\theta) = ||x \theta -y||_^+\lambda ||\theta||_^$

其最優解為:$\theta^ = (x^x+\lambda i)^ x^y$

迭代法,是通過迭代的修改當前對最優解的估計,使得目標朝著最優解的方向前進,最終得到最優解或最優解的近似估計值。

假設當前對最優解的估計為 $\theta_$,則希望求解優化問題:

$\delta_ = \underset l(\theta_+\delta)$

從而得到對最優解的更好的估計 $\theta_ = \theta_+\delta_$。

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

一階迭代法又稱為梯度下降法,通過對目標函式進行一階泰勒展開(在 $\theta_t$ 處展開)得到近似式:

由於該近似式在 $\delta$ 較小時才比較準確,因此在求解 $\delta_t$ 時一般加上 $l_2$ 正則項得到:

$\frac = \********down l(\theta_t)+\alpha \delta = 0$

$\delta_t = -\alpha \********down  l(\theta_t)$

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

$\theta_ =\theta_t -\alpha \********down  l(\theta_t)$

其中,$\alpha$ 是學習率,通過一維線性搜尋[1]得到。

二階迭代法又稱為牛頓法,通過對目標函式進行二階泰勒展開(在 $\theta_t$ 處展開)得到近似式:

其中,$ h_t = \********down ^l(\theta_t)$是函式 $l$ 在 $\theta_t$ 處的hessian矩陣[2]。通過求解近似優化問題

$\delta_t =\underset  \left ( l(\theta_t)+\********down l(\theta_t)^ \delta + \frac\delta^t h_t \delta \right )=-h_t^\********down l(\theta_t)$

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

$\theta_ = \theta_-h_t^\********down l(\theta_t)$

因為函式 $l(\theta)$ 有極值的必要條件是在極值點處一階導數為 0,即梯度向兩位零。特別是當 hessian 矩陣為正定矩陣時,函式$l(\theta)$ 的極值為極小值。

牛頓法的收斂速度一般要遠快於梯度下降法,但是在高維情況下,hessian 矩陣求逆的計算複雜度很大,而且當目標函式非凸時,二階法有可能會收斂到鞍點。因此針對牛頓法的 hessian 的逆的求解複雜高的問題,後面提出了擬牛頓法的思想。即考慮使用乙個 $n$ 階矩陣近似代替 $h(\theta_t)$。其中比較著名的是 bfgs 演算法。

bfgs 演算法的主要思想是使用乙個矩陣 $b_k$ 逼近 hessian 矩陣。首先由牛頓法可知,令:$l(\theta_t+\delta) = l(\theta)$,則

$l(\theta) = l(\theta_t)+\********down l(\theta_t)^(\theta-\theta_t)+\frac (\theta-\theta_t)^ h_t (\theta-\theta_t)$

$\;\;\;\;\; \;\;\frac=\********down l(\theta _t)^t+h_t(\theta -\theta _t)=0\\

\overset} \;\;\;\********down l(\theta _)-\********down l(\theta _t) = h_t(\theta_ -\theta _t) = h_t \delta_t$

令 $y_t = \********down l(\theta _)-\********down l(\theta _t)$,有 $y_t = h_t \delta_t$,用 $b_$ 近似 $h_t$,同時令 $b_ = b_t+p_t+q_t$ 得到:

$b_ \delta_t = b_t \\delta_t + p_t \delta_t+q_t \delta_t$

考慮使 $p_t $ 和 $q_t$ 滿足:

$p_t\delta_t = y_t$

$q_t \delta_t = -b_t \delta_t$

找到適合條件的$p_t$ 和 $q_t$,得到 bfgs 演算法矩陣 $b_$ 的迭代公式:

$b_ = b_t + \frac + \frac$

無約束優化問題

線性搜尋下降演算法 常用的終止準則 left nabla f left x right right leq epsilon 選擇步長 基於區間的直接搜尋法 非精確搜尋準則 下降方向 不同的下降方向選取方式就有了不同的演算法 收斂性 收斂速度 基本思想 給定初始點 x 0 依次沿著座標軸 e 1,do...

無約束最優化二

2.1 a k合理性討論 如下將要討論關於a k需要滿足的兩個條件,當a k滿足這兩個條件後,就可以認為從x k點移動到x k 1點的步長已經確定下來了。第乙個條件為sufficient decrease condition,從直觀角度來看,該條件主要要用保證x k 1點的函式值要小於x k點的函式...

無約束最優化三

2.2 a k步長的選擇 了解了a k的合理性之後,就相當於獲得了標尺,在此基礎上我們可以選擇合適的策略來求取a k。所有的line search過程在計算每一步的a k時,均需要提供乙個初始點a 0,然後再此基礎上生成一系列的,直到a i滿足2.1節所規定的條件為止,此時該a k即被確定為a i,...