機器學習 梯度到底是什麼?

    梯度,到底是什麼?很容易混淆。

    站在山底,哪個方向爬坡最快,這個容易想象,但問題是,如果所在的高度是我們優化的目標的話,這個爬坡的方向並不是梯度的方向,這個是我們的目標值(函數值)的變化趨勢。

    我們先看一下定義:    

    即:梯度是一個向量,而向量就有方向,該方向是方向導數取得最大值的方向,那方向導數是什麼?

    可見:

  1. 方向導數是一個數
  2. 方向指的是函數定義域的內點變化的方向

    綜上,自變量沿着該方向變化,使函數值變化最大,機器學習中,函數值就是我們的優化目標。當函數值是損失函數值的時候,我們期望的是最小值,這個時候取梯度的反方向,即梯度下降即可。這就是爲什麼我們經常看到,理解梯度,先畫等高線示意圖的原因,投影到地面的等高線,其實就是自變量的定義域,也就是機器學習中的參數空間,我們需要知道,怎麼更新參數,才能讓損失函數值最快地減小。

      好,那現在的問題是梯度到底是哪個方向?也就是,自變量到底沿哪個方向變化,函數值變化最快。注意看右邊的等高線,假設有一個點A,無限放大等高線:

如上圖,也就是說,垂直於切線即法向量的方向,就是變化最快的方向,也就是梯度的方向。法向量的定義如下:

總結一下,梯度是個向量,自變量沿着該向量的方向變化,函數值變化最快。在機器學習中,爲使損失函數下降最快,我們需要讓模型參數沿着梯度的負方向更新,即梯度下降

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章