梯度降低算法的工做原理

點擊上方AI算法與圖像處理」,選擇加"星標"或「置頂」python

重磅乾貨,第一時間送達web

介紹
梯度降低算法是工業中最經常使用的機器學習算法之一,但也是不少新手難以理解的算法之一。
若是你剛剛接觸機器學習,那麼梯度降低算法背後的數學原理是比較難理解的。在本文中,我將幫助你瞭解梯度降低算法背後的工做原理。
咱們會了解損失函數的做用,梯度降低的工做原理,以及如何選擇學習參數。

什麼是損失函數

它是一個函數,用於衡量模型對任何給定數據的性能。損失函數將預測值與指望值之間的偏差進行量化,並以單個實數的形式表示出來。
在對初始參數進行假設後,咱們會計算了損失函數,以下降損失函數爲目標,利用梯度降低算法對給定數據進行參數修正。下面是它的數學表示:

什麼是梯度降低

假設你在玩一個遊戲,玩家在山頂,他們要求到達山的最低點,此外,他們還蒙着眼睛,那麼,你認爲怎樣才能到達最低點呢?
最好的辦法是觀察地面,找出地面降低的地方,從這個位置開始,向降低方向邁出一步,重複這個過程,直到到達最低點。

梯度降低法是一種求解函數局部極小值的迭代優化算法。
要用梯度降低法求函數的局部極小值,必須選擇與當前點處函數的負梯度(遠離梯度)方向。若是咱們採起與梯度的正方向,咱們將接近函數的局部極大值,這個過程稱爲梯度上升。
梯度降低最初是由柯西在1847年提出的,它也被稱爲最速降低。
梯度降低算法的目標是最小化給定函數(好比損失函數)。爲了實現這一目標,它迭代地執行兩個步驟:
  1. 計算梯度(斜率),函數在該點的一階導數
  2. 在與梯度相反的方向上移動一步(移動)

Alpha被稱爲學習率-優化過程當中的一個調整參數,它決定了步長。

繪製梯度降低算法

當咱們有一個單一的參數(θ),咱們能夠在y軸上繪製因變量損失值,並在x軸上繪製θ。若是有兩個參數,咱們能夠進行三維繪圖,其中一個軸上有損失值,另兩個軸上有兩個參數(θ)。
它也能夠經過使用等高線來可視化,這會顯示一個二維的三維繪圖,其中包括沿兩個軸的參數和等高線的響應值。遠離中心的響應值增長,而且隨着環的增長而增長。

α-學習率

有了前進的方向以後,如今咱們必須決定咱們要採起的步大小。
必須謹慎選擇,以達到局部最小值。
  • 若是學習率過高,咱們可能會超過最小值,而不會達到最小值
  • 若是學習率過低,訓練時間可能會太長
a) 學習率最優,模型收斂到最小
b) 學習速度過小,須要更多的時間,但會收斂到最小值
c) 學習率高於最優值,較慢速度的收斂(1/c<η<2/c)
d) 學習率很是大,它會過分偏離,偏離最小值,學習性能降低
注:隨着梯度減少而向局部最小值移動,步長減少,所以,學習速率(alpha)能夠在優化過程當中保持不變,而不須要迭代地改變。

局部最小值

成本函數能夠由許多最小點組成。梯度能夠落在任何一個極小值上,這取決於初始點(即初始參數θ)和學習速率,所以,在不一樣的起點和學習率下,優化能夠收斂到不一樣的點。

梯度降低的Python代碼實現

結尾

一旦咱們調整了學習參數(alpha)並獲得了最優的學習速率,咱們就能夠開始迭代了,直到咱們收斂到局部最小值。
參考連接:https://www.analyticsvidhya.com/blog/2020/10/how-does-the-gradient-descent-algorithm-work-in-machine-learning/

下載1:速查表算法


AI算法與圖像處理」公衆號後臺回覆:速查表,便可下載21張 AI相關的查找表,包括 python基礎,線性代數,scipy科學計算,numpy,kears,tensorflow等等微信



下載2 CVPR2020

AI算法與圖像處公衆號後臺回覆: CVPR2020 便可下載1467篇CVPR 2020論文
 
    
    
     
     
              
     
 
    
我的微信(若是沒有備註不拉羣!
請註明: 地區+學校/企業+研究方向+暱稱


以爲有趣就點亮在看吧app



本文分享自微信公衆號 - AI算法與圖像處理(AI_study)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。機器學習

相關文章
相關標籤/搜索