機器學習中的梯度下降法
05-02
機器學習中的大部分問題都是優化問題,而絕大部分優化問題都可以使用梯度下降法(Gradient Descent)處理,那麼搞懂什麼是梯度,什麼是梯度下降法就非常重要。
提到梯度,就必須從導數(derivative)、偏導數(partial derivative)和方嚮導數(directional derivative)講起,弄清楚這些概念,才能夠正確理解為什麼在優化問題中使用梯度下降法來優化目標函數,並熟練掌握梯度下降法(Gradient Descent)。一、導數
定義:
當函數y=f(x)的自變數x在一點x0上產生一個增量Δx時,函數輸出值的增量Δy與自變數增量Δx的比值在Δx趨於0時的極限a如果存在,a即為在x0處的導數,記作f(x0)或df(x0)/dx。二、偏導數
定義:
可以看到,導數與偏導數本質是一致的,都是當自變數的變化量趨於0時,函數值的變化量與自變數變化量比值的極限。
三、方嚮導數
定義:
在前面導數和偏導數的定義中,均是沿坐標軸討論函數的變化率。那麼當我們討論函數沿任意方向的變化率時,也就引出了方嚮導數的定義,即:某一點在某一趨近方向上的導數值
四、梯度
定義:
梯度的提出只為回答一個問題:
函數在變數空間的某一點處,沿著哪一個方向有最大的變化率?函數在某一點的梯度是這樣一個向量,它的方向與取得最大方嚮導數的方向一致,而它的模為方嚮導數的最大值。
這裡注意三點:
1)梯度是一個向量,即有方向有大小; 2)梯度的方向是最大方嚮導數的方向; 3)梯度的值是最大方嚮導數的值。五、梯度下降法
既然在變數空間的某一點處,函數沿梯度方向具有最大的變化率,那麼在優化目標函數的時候,自然是沿著負梯度方向去減小函數值,以此達到我們的優化目標。
如何沿著負梯度方向減小函數值呢?既然梯度是偏導數的集合,那麼我們在每個變數軸上減小對應變數值即可。
梯度下降法可以描述如下:以上就是梯度下降法的由來,大部分的機器學習任務,都可以利用Gradient Descent來進行優化。
參考資料
1. 《高等數學》第五版,高等教育出版社
2. https://blog.csdn.net/walilk/article/details/50978864#reply演算法競賽QQ交流群:648202993
推薦閱讀:
※無晶元不 AI !Synopsys :人工智慧時代機遇與挑戰並存
※你聽說過AI(人工智慧)音樂嗎?
※還在擔心 AI 偽造視頻?揭穿這類「謊言」的 AI 來了!
TAG:AI技術 |