1. 程式人生 > >【機器學習】【線性迴歸】梯度下降的三種方式(BGD+SGD+MSGD)以及三種調優方法(加快收斂速度)

【機器學習】【線性迴歸】梯度下降的三種方式(BGD+SGD+MSGD)以及三種調優方法(加快收斂速度)

1.梯度下降演算法

梯度下降演算法的核心思路和公式推導,可以詳見前面的文章:梯度下降演算法的核心思路和公式推導

如果代價函式是凸函式,用梯度下降演算法一定可以求得最優解。

2.梯度下降的三種方式

在ML中,梯度下降有三種方式:

1)批量梯度下降(Batch Gradient  Descent,BGD)

2)隨機梯度下降(Stochastic Gradient Descent,SGD)

3)小批量梯度下降(Mini-Batch Gradient Descent,MBGD)

每種方式都有優缺點~

梯度下降演算法的核心是迭代更新計算θ,直到最新的θ不再變化,最新的θ就是最優θ,保證代價函式取得最小值,假設函式的擬合度最優~

迭代更新計算θ的公式:


假設我們一共有n個樣本資料集,其中m<=n,其中m表示我們用m個樣本進行訓練計算θ。

1)當m=n時,每次更新計算θ時,用全部的n個樣本資料集進行訓練計算θ,這就是批量梯度下降方式BGD

2)當m=1時,每次更新計算θ時,從n個樣本中隨機選擇一個樣本進行訓練計算θ,這就是隨機梯度下降方式SGD

下面公式表示用n個樣本中的第j個樣本資料集進行訓練,計算θ:


因為每次只用一個樣本資料集決定梯度方向,梯度方向變化較大,得到的θ可能不是最優θ~,但是訓練速度會很快。

3)當1<m<n時,每次更新計算θ時,從n個樣本中隨機選擇m個樣本進行訓練計算θ,這就是小批量梯度下降方式MBGD

    下面公式表示用x個子樣本資料集進行訓練,第一個子樣本資料集是t。可以通過調整子樣本個數x來調優MBGD。

    一般情況取x=10。


2.1批量梯度下降(BGD)

    訓練物件:訓練全部的樣本資料集

    缺點:樣本資料集很大時,訓練慢

    優點:可以得到全域性最優θ

    優點:方便並行實現

2.2隨機梯度下降(SGD)

    缺點:不是全域性最優θ

    缺點:不易並行實現

    優點:訓練快

2.3小批量梯度下降(MBGD)

    將BGD和SGD的缺點降低到最小,又結合了BGD和SGD的優點。

3如何選擇使用BGD SGD MBGD

1)樣本資料集小--->使用批量梯度下降法(BGD)

2)樣本資料集大--->使用隨機梯度下降法(SGD)

3)線上------------>使用隨機梯度下降法(SGD)

4)一般實際情況--->使用小批量梯度下降法(MBGD)

4梯度下降演算法的調優方法(目的:加快收斂速度)

當選擇好了使用BGD、SGD、MBGD其中一個梯度下降方式後,對下降梯度演算法需要進行調優,那麼應該從哪些方面進行調優?

4.1學習速率(Learning Rate)α調優

在θ迭代結算公式中,其中的偏導數的係數α是學習速率(Learning Rate),且α>0。

1)固定的α,α太大的話,導致迭代次數變少(因為θ增量變大),學習速率變快,訓練快。但是α不是越大越好,如果α太大的話,會導致梯度下降演算法在圖形的上坡和下坡上面來回震盪計算,嚴重的結果可能無法收斂;

2)固定的αα太小的話,導致迭代次數變多(因為θ增量變小),學習速率變慢,訓練慢。但是α不是越小越好,如果α太小的話,會導致梯度下降演算法在圖形迭代到最優點處整個過程需要訓練很長時間,導致訓練太慢,雖然可以取得最優θ。

3)變化的α,當梯度大的時候,學習速率變大,梯度小的時候,學習速率變小。則學習速率和梯度是一個正相關,可以提高下降演算法的收斂速度。α和梯度的正相關有一個比例係數,稱為Fixed Learning Rate。Fixed Learning Rate一般取0.1或者0.1附件的值,可能不是最好但是一定不會太差~

4.2選取最優的初始值θ

首先,初始值θ不同,獲得的代價函式的最小值也可能不同,因為每一步梯度下降求得的只是當前區域性最小而已。所以需要多次進行梯度下降演算法訓練,每次初始值θ都不同,然後選取代價函式取得的最小值最小的那組初始值θ。

4.3特徵資料歸一化處理

樣本不相同,特徵值的取值範圍也一定不同。特徵值的取值範圍可能會導致迭代很慢。所以就要採取措施減少特徵值取值範圍對迭代的影響,這個措施就是對特徵資料歸一化。

資料歸一化方法有:1)線性歸一化,2)均值歸一化。一般影象處理時使用線性歸一化方法,比如將灰度影象的灰度資料由[0,255]範圍歸一化到[0,1]範圍。如果原始資料集的分佈近似為正態(高斯)分佈,那麼可以使用均值歸一化對資料集進行歸一化,歸一化為:均值為0,方差為1的資料集。

這裡面採用均值歸一化,均值歸一化的公式如下所示:

                                                                    

其中μ是原始資料集的均值,σ是原始資料的標準差,求出來的歸一化資料的特點是:均值為0,方差為1的資料集。

經過特徵資料歸一化後,梯度下降演算法會在期望值為0,標準差為1的歸一化特徵資料上進行迭代計算θ,這樣迭代次數會大大加快~

This's all, enjoy it~

(end)