日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

梯度与梯度下降法详解

發布時間:2024/1/17 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 梯度与梯度下降法详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

梯度與梯度下降法

  • 1 前言
  • 2 導數
  • 3 導數與偏導數
  • 4 導數與方向導數
  • 5導數與梯度
  • 6 導數與向量
  • 7 梯度下降法
  • 8 梯度下降法與機器學習
  • 9 梯度下降法的缺點
  • 10 補充:向量函數求導的問題
    • 10.1對標量求導
  • 10.2對向量求導

1 前言

?機器學習中的大部分問題都是優化的問題,而絕大部分問題都可以使用梯度下降法處理,那么搞懂什么是梯度,什么是梯度下降法就非常重要了,這是基礎中的基礎,也是必須掌握的概念.

2 導數

一張圖讀懂導數與微分

導數定義如下:

反映的是函數y=f(x)在某一點沿著x軸的正方向的變化率/變化趨勢.直觀地看,也就是在x軸上某一點處,如果f(x)>0,說明f(x)的函數值在x點沿著x軸(方向)正方向是趨于增加的,相應的f(x)<0,說明函數f(x)的值在x點沿著x軸(方向)正反向趨于減少.

3 導數與偏導數

偏導數的定義如下:

導數與偏導數的本質一致,都是當自變量的變化量趨于0時,函數值的變化量與自變量比值的極限,直觀地說,偏導數也就是函數在某個點沿著坐標軸(xi方向)正方向的變化率(如上面公式是沿著xj軸(方向)的變化率).同時如果一個函數有多個自變量(xi)時,某個點是有多個方向所對應的偏導數的.

4 導數與方向導數

方向導數的定義如下:

在前面導數與偏導數的定義中,均是沿著坐標軸正方向討論函數的變化率,那么當我們討論函數沿任意方向的變化率時,也就引出了方向導數的定義,即某一點在某個趨近方向上的導數值.
通俗的解釋:
?我們不僅要知道函數在坐標軸正方向上的變化率(即偏導數),而且還需要知道設法求得函數在其他特定方向上的變化率,而方向導數就是函數在其他特定方向上的變化率.
?特定方向:方向導數中畫黑線的就是一個方向,上圖定義的就是函數某點在l方向的方向導數.而

就是這個點沿著l方向,分別在x0軸,x1軸…xn軸方向的增量.

5導數與梯度

梯度的定義如下:

梯度的提出只為回答一個問題:
函數在變量空間的某一點處,沿著哪一方向有最大的變化率?
梯度的定義如下:
?函數在某一點的梯度是這樣一個向量,它的方向與其取得最大方向導數的方向一致,而它的模為這個點方向導數的最大值.
這里注意三個點:
?梯度是一個向量,即有方向有大小
?梯度的方向是最大方向導數的方向
?梯度的值是最大方向導數的值
知道了函數在這個點的梯度,就相當于知道函數在這個點方向導數最大值的方向,沿著這個方向的負方向最大化的減小函數.梯度下降法就是用的這個原理.

6 導數與向量

提問:導數,偏導數,方向導數是向量么?
向量的定義是有方向,有大小的量
從前面的定義可以這樣看出,偏導數與方向導數描述是函數在某一點沿著某個方向的變化率,也就是具有方向和大小的.因此從這個角度來理解,我們可以把偏導數與方向導數看成一個向量,向量的方向就是變化率的方向,向量的模,就是變化率的大小
沿著這一思路來理解梯度:
梯度即函數在某一點最大的方向導數,函數沿著梯度方向函數有最大的變化率

7 梯度下降法

既然在變量空間的某一點處,函數沿梯度方向有最大的變化率,那么在優化目標函數的時候,自然是沿著負梯度方向去減小函數值,以此達到我們的優化目的.
如何沿著負梯度方向減小函數值呢?

同時梯度與偏導數都是向量,那么參考向量運算法則,我們在每個變量軸上減小對應變量值即可,梯度下降法可以描述如下:

對這里的理解:
此時函數f(x)在某一點處確定它的梯度,此時函數如果沿著梯度方向的負方向下降,學習步長為α(通常為0.1或0.01),函數值的下降是最快的.而右邊α與各軸偏導數的乘積可以看做f(x)沿著梯度負方向下降時,對應各軸的增量(增量導致x0…xn的變化必然會導致損失函數取值的減小).當下降到另一點時,需要重新計算當前點的梯度與再次迭代此函數值的變化,所以需要一個repeat的過程.從而找到函數f(x)的最小值.
取函數在某一點的負梯度方向來降低函數值:如圖所示

8 梯度下降法與機器學習

?上文提到的函數就可以理解為機器學習中的損失函數/目標函數.自變量x1,x2…xn就可以理解為損失函數中需要優化的參數,通過不斷的優化參數(更新x1,x2…xn),找到損失函數最小的那個點.
?自變量xi有時候與特征相對應,有時候與別的對應,具體要看損失函數是怎么定義的.

9 梯度下降法的缺點

1 靠近極小值時收斂速度減慢
2 直線搜索時可能會產生一些問題
3 可能會”之字形”地下降

10 補充:向量函數求導的問題

首先,向量求導只是矩陣求導的一個特例而已.

10.1對標量求導

1.向量對標量求導,結果是個向量
事實上就是向量的每一個元素對標量求導,舉個例子對于y(x)=(y1,…,yn),其中x是個標量:

2.矩陣對標量求導,結果是個矩陣
事實上也就是矩陣的每一個元素對標量求導.對于矩陣Y(x)=(yij):

10.2對向量求導

1.標量對向量求導,結果是向量
事實上這就是所謂的Gradient,即對于一般標量函數f(x),其中x=(x1,…,xn):
,有時候也記為▽f
以上的向量同時指代行向量與列向量
2.向量對向量求導,結果是矩陣
行向量對列向量求導:

列向量對行向量求導:

行向量對行向量求導:

所以結果向量中的每一個元素都是一個向量對標簽求導
列向量對列向量求導:

相當于結果向量中的每一個元素都是一個梯度.
3.矩陣對向量求導,結果是個三維object,先來個gradient,然后其中每個元素都是個matrix.

總結

以上是生活随笔為你收集整理的梯度与梯度下降法详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。