機器學習 學習率

2021-07-30 12:51:39 字數 1740 閱讀 4548

本文從梯度學習演算法的角度中看學習率對於學習演算法效能的影響,以及介紹如何調整學習率的一般經驗和技巧。

在機器學習中,監督式學習(supervised learning)通過定義乙個模型,並根據訓練集上的資料估計最優引數。梯度下降法(gradient descent)是乙個廣泛被用來最小化模型誤差的引數優化演算法。梯度下降法通過多次迭代,並在每一步中最小化成本函式(cost function)來估計模型的引數(weights)。

梯度下降的偽**如下:

重複已下過程,直到收斂為止

說明:(1) ωj 是模型引數, f()是成本函式, ∂f(ωj) / ∂ωj 是ωj  的一階導數,λ 是學習率

(2)如果f()是單調函式,經過多次迭代會得到最小的成本函式;如果f()非單調,那麼我們有可能陷入區域性最優,乙個簡單的解決辦法是通過多次嘗試不同的ωj 初始值,對比不同估計引數下的成本函式的值是否一致,來發現是否陷入區域性最優。

(3)梯度下降法未必是最優的計算權重引數的方法,但是作為一種簡單快速的方法,常常被使用。參照andrew ng的stanford公開課程。

梯度下降過程的圖示如下:

學習率的調整

為了能夠使得梯度下降法有較好的效能,我們需要把學習率的值設定在合適的範圍內。學習率決定了引數移動到最優值的速度快慢。如果學習率過大,很可能會越過最優值;反而如果學習率過小,優化的效率可能過低,長時間演算法無法收斂。所以學習率對於演算法效能的表現至關重要。

對於不同大小的資料集,調節不同的學習率

根據我們選擇的成本函式f()不同,問題會有區別。當平方誤差和(sum of squared errors)作為成本函式時, ∂f(ωj) / ∂ωj 會隨著訓練集資料的增多變得越來越大,因此學習率需要被設定在相應更小的值上。

解決此類問題的乙個方法是將學習率λ 乘上1/n,n是訓練集中資料量。這樣每部更新的公式變成下面的形式:

ωj = ωj - (λ/n) * ∂f(ωj) / ∂ωj

另外一種解決方法是:選擇乙個不被訓練集樣本個數影響的成本函式,如均值平方差(mean squared errors)。

在每次迭代中調節不同的學習率

在每次迭代中去調整學習率的值是另一種很好的學習率自適應方法。此類方法的基本思路是當你離最優值越遠,你需要朝最優值移動的就越多,即學習率就應該越大;反之亦反。

但是這裡有乙個問題,就是我們並不知道實際上的最優值在**,我們也不知道每一步迭代中我們離最優值有多遠。

解決辦法是,我們在每次迭代的最後,使用估計的模型引數檢查誤差函式(error function)的值。如果相對於上一次迭代,錯誤率減少了,就可以增大學習率,以5%的幅度;如果相對於上一次迭代,錯誤率增大了(意味著跳過了最優值),那麼應該重新設定上一輪迭代ωj 的值,並且減少學習率到之前的50%。這種方法叫做 bold driver.

建議:歸一化輸入向量

歸一化輸入向量在機器學習問題中是乙個通用的方法。在一些應用中,由於使用距離或者特徵方差,要求必須歸一化輸入向量,因為如果不歸一化將導致結果會嚴重被具有大方差的特徵和不同的尺度影響。歸一化輸入能夠幫助數值最優方法(例如,梯度下降法)更快,更準確地收斂。

儘管有一些不同的歸一化變數的方法,[0,1]歸一化(也叫做min-max)和z-score歸一化是兩種最為廣泛應用的。

xminmaxnorm = (x - min(x)) / (max(x) - min(x));

xzscorenorm = (x - mean(x)) / std(x);

機器學習 學習率

本文從梯度學習演算法的角度中看學習率對於學習演算法效能的影響,以及介紹如何調整學習率的一般經驗和技巧。在機器學習中,監督式學習 supervised learning 通過定義乙個模型,並根據訓練集上的資料估計最優引數。梯度下降法 gradient descent 是乙個廣泛被用來最小化模型誤差的引...

機器學習,引數之 學習率設定

1,機器學習中的學習率設定 學習率控制的是引數的更新速度,學習率設定過大,會導到損失函式在極小值附近來回變化,不收斂,學習率設定過小,會導到學習速度變慢。tensorflow中提供了學習率衰減機制,可以開設定乙個較大的學習率和乙個衰減係數,讓損失函式在剛開始 以的較快的速度下降,隨著訓練次數增加,學...

和學習率 機器學習中的成本函式,學習率和梯度下降

我們在機器學習中最主要的目標是最小化成本函式,因此,將執行優化過程以最小化該成本函式。成本函式由下式給出 為了深入了解成本函式的幾何形狀,讓我們學習凹函式和凸函式 凹函式 在凹函式g x 中,對於x軸上的任意兩個值,即a和b,點g a 和g b 之間的直線總是位於g x 的下方。凹函式的最大值是乙個...