基於梯度的優化方法


1.目標函數(objective function)或准則(criterion)

  要最小化或最大化的函數

  最小化時,我們也把它稱為代價函數(cost function)、損失函數(loss function)或誤差函數(error function)

  一個上標 ∗ 表示最小化或最大化函數的 x 值。如我們記 x ∗ =argminf(x)

2.梯度下降(gradient descent)

  將 x 往導數的反方向移動一小步來減小 f(x)

  f(x − ϵsign(f ′ (x)))

  f ′ (x) = 0 的點稱為臨界點(critical point)或駐點(stationary point)

  一個局部極小點(local minimum)意味着這個點的 f(x) 小於所有鄰近點,因此不可能通過移動無窮小的步長來減小f(x)

  一個局部極大點(local maximum)意味着這個點的 f(x) 大於所有鄰近點,因此不可能通過移動無窮小的步長來增大 f(x)

  臨界點既不是最小點也不是最大點。這些點被稱為鞍點(saddle point)

    

  使 f(x) 取得絕對的最小值(相對所有其他值)的點是全局最小點(global minimum)

  最小化具有多維輸入的函數:f : R n → R。針對具有多維輸入的函數,我們需要用到偏導數(partial derivative)的概念

  偏導數衡量點 x 處只有 x i增加時 f(x) 如何變化

  梯度(gradient)是相對一個向量求導的導數:f 的導數是包含所有偏導數的向量,記為 ∇ x f(x)

  梯度的第i個元素是 f 關於 x i 的偏導數。在多維情況下,臨界點是梯度中所有元素都為零的

  在 u(單位向量)方向的方向導數(directional derivative)是函數 f 在 u 方向的斜率

  方向導數是函數 f(x + αu) 關於 α 的導數(在 α = 0 時取得)。使用鏈式法則,我們可以看到當 α = 0 時,∂/∂α  f(x + αu) = u⊤ ∇ x f(x)

  計算方向導數

    

    其中 θ 是 u 與梯度的夾角,將 ∥u∥ 2 = 1 代入,並忽略與 u 無關的項,就能簡化得到 minucosθ。

    這在 u 與梯度方向相反時取得最小。換句話說,梯度向量指向上坡,負梯度向量指向下坡。

    我們在負梯度方向上移動可以減小 f。這被稱為最速下降法(method of steepest descent) 或梯度下降(gradient descent)

    最速下降建議新的點為

      

    其中 ϵ 為學習率(learning rate),是一個確定步長大小的正標。

3.Jacobian(Jacobian)矩陣

  如果我們有一個函數:f : R m → R n ,f 的 Jacobian 矩陣 J ∈ R n×m 定義

    

4.Hessian(Hessian)矩陣

  

5.最優步長

  

    

  當 f ′ (x) = 0 且 f ′′ (x) > 0 時,x 是一個局部極小點。同樣,當 f ′ (x) = 0 且 f ′′ (x) < 0 時,x 是一個局部極大點

  當 f ′′ (x) = 0 時測試是不確定的。在這種情況下,x 可以是一個鞍點或平坦區域的一部分

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM