機器學習:梯度下降

人工智能遇見磐創 發佈 2020-06-17T09:58:41+00:00

梯度下降法是一種減少成本函數的疊代機器學習優化算法,使我們的模型能夠做出準確的預測。α是學習率,有助於對梯度下降法調整權重。

什麼是梯度下降?

梯度下降法是一種減少成本函數的疊代機器學習優化算法,使我們的模型能夠做出準確的預測。

成本函數(C)或損失函數度量模型的實際輸出和預測輸出之間的差異。成本函數是一個凸函數。

為什麼我們需要梯度下降?

在神經網絡中,我們的目標是訓練模型具有最優的權值(w)來進行更好的預測。

我們用梯度下降法得到最優權值。

如何找到最優的權值?

這可以用一個經典的登山問題來最好地解釋。

在登山問題中,我們想要到達一座山的最低點,而我們的能見度為零。

我們不知道我們是在山頂上,還是在山的中間,還是非常接近底部。

我們最好的選擇是檢查我們附近的地形,並確定我們需要從哪裡下降到底部。我們需要疊代地做這件事,直到沒有更多的下降空間,也就是我們到達底部的時候。

我們將在稍後的文章中討論,如果我們覺得已經到達了底部(局部最小值點),但是還有另一個山的最低點(全局最小值點),我們可以做什麼。

梯度下降法幫助我們從數學上解決了同樣的問題。

我們將一個神經網絡的所有權值隨機初始化為一個接近於0但不是0的值。

我們計算梯度,∂c/∂ω,它是成本相對於權重的偏導數。

α是學習率,有助於對梯度下降法調整權重

我們需要同時更新所有神經元的權重

學習速率

學習率控制著我們應該在多大程度上根據損失梯度調整權重。學習速率是隨機初始化的。

值越低,學習速度越慢,收斂到全局最小。

較高的學習率值不會使梯度下降收斂

由於我們的目標是最小化成本函數以找到最優的權值,所以我們使用不同的權值運行多個疊代,並計算成本以獲得最小的成本,如下所示

這座山可能有兩個不同的底部,用同樣的方法,我們也可以得到成本和權重之間的局部和全局最小點。

全局最小是整個域的最小點,局部最小是一個次優點,在這裡我們得到一個相對最小的點,但不是如下所示的全局最小點。

我們如何避免局部最小值,並始終嘗試得到基於全局最小值的最優權值?

首先我們來了解一下梯度下降的不同類型

不同類型的梯度下降是

  • 批處理梯度下降
  • 隨機梯度下降法
  • 小批量梯度下降

批處理梯度下降

在批量梯度中,我們使用整個數據集來計算梯度下降每次疊代的代價函數的梯度,然後更新權值。

由於我們使用整個數據集來計算梯度收斂速度較慢。

如果數據集很大,包含數百萬或數十億個數據點,那麼它就需要大內存和並且是計算密集的。

批量梯度下降的優點

  • 權值和收斂速度的理論分析很容易理解

批量梯度下降的缺點

  • 對大型數據集的相同訓練示例執行冗餘計算
  • 可能是非常緩慢和棘手的大數據集可能不適合在內存

隨機梯度下降法

在隨機梯度下降法中,我們使用單個數據點或實例來計算梯度,並在每次疊代中更新權值。

我們首先需要將數據集的樣本隨機排列,這樣我們就得到了一個完全隨機的數據集。由於數據集是隨機的,並且每個示例的權值都是可以更新的,所以權值和代價函數的更新將是到處亂跳的,如下所示

隨機樣本有助於得到全局的最小值,避免陷入局部的最小值。

對於非常大的數據集,學習要快得多,收斂也快得多。

隨機梯度下降法的優點

  • 學習比批量梯度下降快得多
  • 當我們一次抽取一個訓練樣本進行計算時,冗餘的計算被移除
  • 當我們一次抽取一個訓練樣本進行計算時,可以動態更新新數據樣本的權重

隨機梯度下降法的缺點

  • 隨著權重的頻繁更新,成本函數波動較大

小批量梯度下降

摘要小批量梯度法是一種隨機梯度下降法,它不採用單一訓練樣本,而是採用小批量樣本。

小批量梯度下降法應用廣泛,收斂速度快,穩定性好。

批處理大小可以根據數據集的不同而有所不同。

當我們取一批不同的樣本時,它減少了權值更新的方差噪聲,有助於更快地獲得更穩定的收斂。

小批量梯度下降的優點

  • 減少了參數更新的方差,從而達到穩定收斂的目的
  • 學習速度快
  • 有助於估計實際最小值的近似位置

小批量梯度下降的缺點

  • 每一個小批都要計算損失,因此所有小批都要累計總損失
關鍵字: