梯度下降兩大痛點:陷入局部極小值和過擬合

2020-11-29 電子發燒友

梯度下降兩大痛點:陷入局部極小值和過擬合

胡薇 發表於 2018-04-27 17:01:36

介紹

基於梯度下降訓練神經網絡時,我們將冒網絡落入局部極小值的風險,網絡在誤差平面上停止的位置並非整個平面的最低點。這是因為誤差平面不是內凸的,平面可能包含眾多不同於全局最小值的局部極小值。此外,儘管在訓練數據上,網絡可能到達全局最小值,並收斂於所需點,我們無法保證網絡所學的概括性有多好。這意味著它們傾向於過擬合訓練數據。

有一些手段有助於緩解這些問題,不過並沒有絕對地預防這些問題產生的方法。這是因為網絡的誤差平面一般很難穿越,而神經網絡整體而言很難解釋。

隨機梯度下降與mini-batch隨機梯度下降

這些算法改編了標準梯度下降算法,在算法的每次迭代中使用訓練數據的一個子集。SGD在每權重更新上使用一個樣本,mini-batch SGD使用預定義數目的樣本(通常遠小於訓練樣本的總數)。這大大加速了訓練,因為我們在每次迭代中沒有使用整個數據集,它需要的計算量少得多。同時,它也有望導向更好的表現,因為網絡在訓練中斷斷續續的移動應該能讓它更好地避開局部極小值,而使用一小部分數據集當有助於預防過擬合。

正則化

正則化基本上是一個懲罰模型複雜度的機制,它是通過在損失函數中加入一個表示模型複雜度的項做到這一點的。在神經網絡的例子中,它懲罰較大的權重,較大的權重可能意味著神經網絡過擬合了訓練數據。

最左:欠擬合;最右:過擬合

若網絡的原損失函數記為L(y, t),正則化常數記為λ,則應用了L2正則化後,損失函數改寫為如下形式:

正則化在損失函數中加入了網絡的每個權重的平方和,以懲罰給任何一個連接分配了過多權重的模型,希望能降低過擬合程度。

動量

簡單來說,動量在當前權重更新上加上一小部分前次權重更新。這有助於預防模型陷入局部極小值,因為即使當前梯度為0,之前梯度絕大多數情況下不為0,這樣模型就不那麼容易陷入極小值。另外,使用動量也使誤差平面上的移動總體上更為平滑,而且移動得更快。

基於這一簡單的動量概念,我們可以重寫權重更新等式至如下形式(α為動量因子):

還有其他一些更高級的動量形式,比如Nesterov方法。

學習率退火

我們可以不在整個訓練過程中使用同一學習率,而是隨著時間的進展降低學習率,也就是退火。

最常見的退火規劃基於1/t關係,如下圖所示,其中T和μ0為給定的超參數,μ為當前學習率:

這經常被稱為「搜索並收斂」(search-then-converge)退火規劃,因為直到t達到T之前,網絡都處於「搜索」階段,學習率沒有下降很多,在此之後,學習率減慢,網絡進入「收斂」階段。這和探索(exploitation)與利用(exploration)間的平衡多多少少有些關係。剛開始我們優先探索搜索空間,擴展我們關於空間的整體知識,隨著時間的推進,我們過渡到利用搜索空間中我們已經找到的良好區域,收縮至特定的極小值。

結語

這些改進標準梯度下降算法的方法都需要在模型中加入超參數,因而會增加調整網絡所需的時間。最近提出的一些新算法,比如Adam、Adagrad、Adadelta,傾向於在每個參數的基礎上進行優化,而不是基於全局優化,因此它們可以基於單獨情況精細地調整學習率。在實踐中,它們往往更快、更好。下圖同時演示了之前提到的梯度下降變體的工作過程。注意看,和簡單的動量或SGD相比,更複雜的變體收斂得更快。

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • 線性回歸和梯度下降的初學者教程
    這就是為什麼我們需要使用梯度下降。梯度下降是一種找到最佳擬合線的工具。在深入研究梯度下降之前,先看看另一種計算最佳擬合線的方法。最佳擬合線的統計計算方法:直線可以用公式表示:y=mx+b。回歸線斜率m的公式為:m = r * (SD of y / SD of x)。
  • 從梯度下降到擬牛頓法:詳解訓練神經網絡的五大學習算法
    正則項主要就是通過給特徵權重增加罰項而控制神經網絡的有效複雜度,這樣可以有效地控制模型過擬合問題。訓練損失函數取決於神經網絡中的自適應參數(偏置項和突觸權重)。我們很容易地將神經網絡的權重組合成一個 n 維權重向量 w,而訓練損失就是以這些權重為變量的函數。下圖描述了損失函數 f(w)。如上圖所示,點 w* 是訓練損失函數的極小值點。
  • 梯度下降—Python實現
    梯度下降是數據科學的基礎,無論是深度學習還是機器學習。深入了解梯度下降原理一定會對你今後的工作有所幫助。你將真正了解這些超參數的作用以及處理使用此算法可能遇到的問題。然而,梯度下降並不局限於一種算法。另外兩種流行的梯度下降(隨機和小批量梯度下降)建立在主要算法的基礎上,你可能會看到比普通批量梯度下降更多的算法。
  • 機器學習:隨機梯度下降和批量梯度下降算法介紹
    機器學習:隨機梯度下降和批量梯度下降算法介紹 佚名 發表於 2017-11-28 04:00:28 隨機梯度下降(Stochastic gradient descent)
  • 梯度下降算法詳解
    神經網絡中的後向傳播算法其實就是在進行梯度下降,GDBT(梯度提升樹)每增加一個弱學習器(CART回歸樹),近似於進行一次梯度下降,因為每一棵回歸樹的目的都是去擬合此時損失函數的負梯度,這也可以說明為什麼GDBT往往沒XGBoost的效率高,因為它沒辦法擬合真正的負梯度,而Xgboost 的每增加的一個弱學習器是使得損失函數下降最快的解析解。
  • 今日面試題分享:牛頓法和梯度下降法有什麼不同?
    具體步驟: 首先,選擇一個接近函數 f (x)零點的 x0,計算相應的 f (x0) 和切線斜率f  ' (x0)(這裡f ' 表示函數 f  的導數)。 然後我們計算穿過點(x0,f(x0))並且斜率為f '(x0)的直線和x軸的交點的x坐標,也就是求如下方程的解:
  • 吳恩達機器學習筆記 - 線性回歸、代價函數與梯度下降
    比如預測房屋價格:輸入和輸出:房屋的預測價格 y = h(房屋面積 x)機器學習算法的訓練就是計算最優的參數 a 和 b,這裡的函數只有一個輸入特徵面積,所以叫單變量線性回歸模型。三、代價函數我的理解:代價函數(cost function,loss function)在機器學習中的作用是確定最優的函數參數,使得擬合數據點的誤差達到最小,即擬合效果最好。
  • 【乾貨】機器學習最常用優化之一——梯度下降優化算法綜述
    批量梯度下降每次學習都使用整個訓練集,因此其優點在於每次更新都會朝著正確的方向進行,最後能夠保證收斂於極值點(凸函數收斂於全局極值點,非凸函數可能會收斂於局部極值點),但是其缺點在於每次學習時間過長,並且如果訓練集很大以至於需要消耗大量的內存,並且全量梯度下降不能進行在線模型參數更新。
  • 最清晰的講解各種梯度下降法原理與Dropout
    二、全量梯度下降法(Batch gradient descent)全量梯度下降法每次學習都使用整個訓練集,因此每次更新都會朝著正確的方向進行,最後能夠保證收斂於極值點,凸函數收斂於全局極值點,非凸函數可能會收斂於局部極值點,缺陷就是學習時間太長,消耗大量內存。
  • 梯度下降背後的數學原理幾何?
    2、第二種變體:隨機梯度下降下面進入……隨機梯度下降!這兩種方法之間的根本區別在於,隨機梯度下降法隨機化了整個數據集並對每個單獨的訓練樣本進行權重和參數的更新,而批量梯度下降是在分析了整個訓練集之後對參數進行更新。對模型連續更新可以提供更高的準確率和更快的計算速度。
  • 技術| 深度解讀最流行的優化算法:梯度下降
    如果你不熟悉梯度下降法的話,你可以在這裡找到一個很好的關於優化神經網絡的介紹。 梯度下降法變體 本文討論了三種梯度下降法的變體——它們的不同之處在於,一次性使用多少數據來計算目標函數的梯度。對於不同的數據量,我們需要在參數更新準確性和參數更新花費時間兩方面做出權衡。
  • 隨機梯度下降法介紹及其參數講解
    而在求解機器學習參數的優化算法中,使用較多的就是基於梯度下降的優化算法(Gradient Descent,GD)。算法優勢優點:效率。在梯度下降法的求解過程中,只需求解損失函數的一階導數,計算的代價比較小,可以在很多大規模數據集上應用。缺點:求解的是局部最優值,即由於方向選擇的問題,得到的結果不一定是全局最優。
  • 一文讀懂線性回歸和梯度下降
    耐心點,梯度下降一會兒就出來了)我們先來看當訓練樣本只有一個的時候的情況,然後再將訓練樣本擴大到多個的情況。訓練樣本只有一個的情況,我們借鑑LMS算法的思想。擴大到多個我們稍後說。我們又兩種方式將只有一個樣本的數學表達轉化為樣本為多個的情況:梯度下降(gradient descent)和正則方程(The normal equations)。這裡我們重點講梯度下降。
  • 深度學習優化入門:Momentum、RMSProp 和 Adam
    雖然局部極小值和鞍點會阻礙我們的訓練,但病態曲率會減慢訓練的速度,以至於從事機器學習的人可能會認為搜索已經收斂到一個次優的極小值。讓我們深入了解什麼是病態曲率。 病態曲率 考慮以下損失曲線圖。梯度下降沿著峽谷的山脊反彈,向最小的方向移動的速度非常慢。這是因為山脊的曲線在 W1 方向上彎曲的更陡。 考慮山脊表面的 A 點。我們看到,梯度在這點可以分解為兩個分量,一個沿著 W1 方向,另外一個沿著 W2 方向。如果 f 顯著下降的唯一方向是低曲率的,那麼優化可能會變得太慢而不切實際,甚至看起來完全停止,造成局部最小值的假象。
  • 機器學習之多元線性回歸模型梯度下降公式與代碼實現(篇二)
    比如在消費水平預測模型中,工資水平、受教育程度、職業、地區、家庭負擔等因素都會影響到消費水平,而這些影響因素的單位和量級肯定是不同的,雖然不會影響自變量的重要程度,但是對回歸係數的大小還是有直接影響作用的。標準化回歸係數沒有單位,其值越大,說明該自變量對因變量的影響越大。
  • 六步走,時刻小心過擬合 | 入門指南
    如果,模型訓練還是很慢,或者效果不好的話,可以用Adam優化,代替初始架構裡的隨機梯度下降 (SGD) 優化。過擬合的其中一個原因,就是權重大。而權重衰減,可以有效打擊大權重。輸入歸一化 (Normalize Inputs)減少過擬合的第三小步,就是把輸入特徵的均值和方差,各自除以訓練集,歸一化。特徵x1除以訓練樣本總數m,要等於0,方差要等於1。
  • 超聲法在檢測高壓開關櫃內局部放電的應用
    對於局部放電定位方法國內外已有很多的研究,其中傳統的有最小二乘法,最速下降法,牛頓法,共軛梯度法,DFP法等等。但是最小二乘法和牛頓法無法達到全局最優;最速下降法具有全局收斂性,但其極值振蕩現象頻繁,誤差較大;共軛梯度法和DFP法計算量大導致算法的穩定性較差。綜上所述,本文提出使用梯度收縮法(Gradient Shrink Met hod)。
  • 文科生都能看懂的機器學習教程:梯度下降、線性回歸、邏輯回歸
    梯度下降/最佳擬合線  (雖然這個傳統上並不被認為是一種機器學習算法,但理解梯度對於了解有多少機器學習算法可用,及如何優化至關重要。)梯度下降幫助我們根據一些數據,獲得最準確的預測。  舉個例子。你有一個大的清單,列出每個你認識的人身高體重。然後做成下面這種分布圖:
  • 一分鐘看完梯度下降法
    今天,我想講一下梯度下降法(Gradient Descent),基於線性回歸損失函數的梯度下降法。
  • 詳解梯度下降算法 正確訓練模型利刃!
    【IT168 資訊】梯度下降是目前最流行的優化策略,目前用於機器學習和深度學習。它在訓練模型時使用,可以與每種算法結合使用,易於理解和實施。因此,每個使用機器學習的人都應該理解它的概念。閱讀完這篇文章後,你將了解梯度下降是如何工作的,它今天使用了哪些類型,以及它們的優點和權衡。