1. 程式人生 > >機器學習中常見的優化方法:梯度下降法、牛頓法擬牛頓法、共軛梯度法、拉格朗日乘數法

機器學習中常見的優化方法:梯度下降法、牛頓法擬牛頓法、共軛梯度法、拉格朗日乘數法

機器學習中常見的優化方法:

梯度下降法、牛頓法擬牛頓法、共軛梯度法、拉格朗日乘數法

  • 主要內容
    • 梯度下降法
    • 牛頓法擬牛頓法
    • 共軛梯度法
    • 拉格朗日乘數法

  許多機器學習演算法,往往建立目標函式(損失函式+正則項),通過優化方法進行優化,根據訓練樣本訓練出滿足要求的模型。常見的優化方法有梯度下降法、牛頓法擬牛頓法、共軛梯度法、拉格朗日乘數法等等。

一、梯度下降法
  梯度下降法(Gradient Descent)是一種常用的一階優化方法,是求解無約束優化問題的經典方法。通過反覆迭代,沿目標函式梯度的反方向逼近目標函式的最優解(當目標函式為凸函式時,才能得到全域性最優)。目標函式極值點附近,收斂速度變慢。
  梯度下降方法包括批量梯度下降法(Batch Gradient Descent,BGD)以及隨機梯度下降法(Stochastic Gradient Descent,SGD)。
  假設目標函式為均方誤差損失函式:

J(θ)=12Ni=1N(yiyi^)2其中,N表示訓練樣本個數,θ為模型引數集合,即需要梯度下降求解的引數。
  假設需要擬合的函式模型為:
yi=f(xi)=j=1Dθjxij即線性迴歸模型,其中D表示樣本特徵的個數。
  1、批量梯度下降法
  批量梯度下降法,每一次迭代,需要用到所有訓練樣本。
  目標函式J關於引數θj求偏導:Jθj=Jyi^yi^θj=i=1N(yiyi^)xij
  根據所有訓練樣本,更新引數
θj
取值(梯度的負方向):θj=θjJθj
  由於批量梯度下降法,每一次迭代需要用到所有訓練樣本,因此如果訓練樣本數量很大,則迭代速度變得非常緩慢。但是,由於最小化所有訓練樣本的目標函式,因此最終求解的是全域性最優解。
  2、隨機梯度下降法
  隨機梯度下降法,每一次迭代,僅僅需要一個訓練樣本。
  目標函式J可以寫成:J(θ)=12Ni=1N(yiyi^)2=1Ni=1Ncost(θ,(xi,yi))其中,