點擊上方「AI算法與圖像處理」,選擇加"星標"或「置頂」python
重磅乾貨,第一時間送達
web
梯度降低算法是工業中最經常使用的機器學習算法之一,但也是不少新手難以理解的算法之一。
若是你剛剛接觸機器學習,那麼梯度降低算法背後的數學原理是比較難理解的。在本文中,我將幫助你瞭解梯度降低算法背後的工做原理。
咱們會了解損失函數的做用,梯度降低的工做原理,以及如何選擇學習參數。
什麼是損失函數
它是一個函數,用於衡量模型對任何給定數據的性能。損失函數將預測值與指望值之間的偏差進行量化,並以單個實數的形式表示出來。
在對初始參數進行假設後,咱們會計算了損失函數,以下降損失函數爲目標,利用梯度降低算法對給定數據進行參數修正。下面是它的數學表示:

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

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

Alpha被稱爲學習率-優化過程當中的一個調整參數,它決定了步長。
繪製梯度降低算法
當咱們有一個單一的參數(θ),咱們能夠在y軸上繪製因變量損失值,並在x軸上繪製θ。若是有兩個參數,咱們能夠進行三維繪圖,其中一個軸上有損失值,另兩個軸上有兩個參數(θ)。
它也能夠經過使用等高線來可視化,這會顯示一個二維的三維繪圖,其中包括沿兩個軸的參數和等高線的響應值。遠離中心的響應值增長,而且隨着環的增長而增長。
α-學習率
有了前進的方向以後,如今咱們必須決定咱們要採起的步大小。
-
若是學習率過高,咱們可能會超過最小值,而不會達到最小值
-
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等等微信

在「AI算法與圖像處理」公衆號後臺回覆:
CVPR2020
,便可下載1467篇CVPR 2020論文
