深度學習優化方法


梯度下降算法

梯度下降的框架主要分三種:
1,全量梯度下降。每次使用全部的樣本來更新模型參數,優點是收斂方向准確,缺點是收斂速度慢,內存消耗大。
2,隨機梯度下降。每次使用一個樣本來更新模型參數,優點是學習速度快,缺點是收斂不穩定。
3,批量梯度下降。每次使用一個batchsize的樣本來更新模型參數,平衡了全量梯度下降和隨機梯度下降的方法。

 

1、batch gradient descent(BGD 批量梯度下降)

所謂的梯度下降方法是無約束條件中最常用的方法。假設f(x)是具有一階連續偏導的函數,現在的目標是要求取最小的f(x) : min f(x)

核心思想:負梯度方向是使函數值下降最快的方向,在迭代的每一步根據負梯度的方向更新x的值,從而求得最小的f(x)。因此我們的目標就轉變為求取f(x)的梯度。

優點:

  • 當f(x)是凸函數的時候,用梯度下降的方法取得的最小值是全局最優解

缺點:

  • 在計算的時候,需要在每一步(xk處)計算梯度,它每更新一個參數都要遍歷完整的訓練集,不僅很慢,還會造成訓練集太大無法加載到內存的問題,此外該方法還不支持在線更新模型。

所以,為了提高速度,減少計算量,提出了SGD隨機梯度下降的方法,該方法每次隨機選取一個樣本進行梯度計算,大大降低了計算成本。

2、stochastic gradient descent(SGD隨機梯度下降)

隨機梯度下降算法和批量梯度下降的不同點在於其梯度是根據隨機選取的訓練集樣本來決定的,其每次對theta的更新,都是針對單個樣本數據,並沒有遍歷完整的參數。當樣本數據很大時,可能到迭代完成,也只不過遍歷了樣本中的一小部分。

優點:

  • 訓練速度快,避免了批量梯度更新過程中的計算冗余問題,對於很大的數據集,也能夠以較快的速度收斂。

缺點:

  • 不能保證每次的優化方向不一定是全局最優的。(雖然BGD可以讓參數達到全局最低點並且停止,而SGD可能會讓參數達到局部最優,但是仍然會波動,甚至在訓練過程中讓參數會朝一個更好的更有潛力的方向更新。但是眾多的實驗表明,當我們逐漸減少學習速率時,SGD和BGD會達到一樣的全局最優點。)
  • 由於是抽取,因此不可避免的,得到的梯度肯定有誤差.因此學習速率需要逐漸減小,否則模型無法收斂
  • 因為誤差,所以每一次迭代的梯度受抽樣的影響比較大,也就是說梯度含有比較大的噪聲,不能很好的反映真實梯度.並且SGD有較高的方差,其波動較大

考慮到每次只選擇一個樣本進行梯度更新存在較大的噪聲,學者們開始嘗試每次選擇一小批樣本進行梯度更新,在降低噪聲的同時提高速度,因此就有了下面的MBGD小批量梯度下降法。

3、mini-batch gradient descent(MBGD小批量梯度下降)

為了綜合上述兩種方法,提出了小批量梯度下降。它:(1)降低在SGD中高方差的問題,能使得收斂更加穩定;(2)可以利用深度學習中最先進的庫進行矩陣優化的操作,加速操作;(3)一般的小批量介於50~256,但是當適用很小的批量時,有時也統稱為SGD。

核心思想:在每次迭代時考慮一小部分樣本,比如考慮10個樣本,同時計算在這10個樣本點上的每個參數的偏導數,對於每個優化參數,將該參數在這10個樣本點的偏導數求和。

但是,需要注意的是因為這里也存在樣本選擇的隨機性,學習速率應該要逐漸減小,同時上述方法並不能保證好的收斂性。主要存在的挑戰有:

  • 選擇適當的學習率可能很困難。 太小的學習率會導致收斂性緩慢,而學習速度太大可能會妨礙收斂,並導致損失函數在最小點波動。
  • 使用學習率計划:嘗試在訓練期間調整學習率。 比如根據預先制定的規則緩慢的降低學習速率,或者當每次迭代之間的偏導差異已經低於某個閾值時,就降低學習速率。但是這里面的學習速率更新規則,以及閾值都是需要預先設定的,因此不適應於所有的數據集。
  • 此外,使用梯度更新的方法會導致所有參數都用學習速率更新。但是當訓練集數據是稀疏的,或者特征的頻率是不同的,我們可能不希望它們更新到同樣的程度,因此使用相同的學習速率會導致那些很少出現的特征有較大的變化。
  • 在求取那些高度非凸的誤差函數的最小值時,我們應該避免陷入局部最優解,實驗表明,最困難的不是從局部最優而是鞍點,鞍點就是沿着某一個方向他是穩定的,沿着另一個方向不穩定,既不是最小點也不是最大點。這會使得該點在所有維度上梯度為0,讓SGD難以逃脫。

基於上述問題,又有了如下更多的優化策略!

Momentum、Nesterov、Adagrad、Adadelta、RMSprop、Adam、Adamax、Nadam

這些優化方法請移步:https://blog.csdn.net/u012759136/article/details/52302426


免責聲明!

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



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