原做者: 紅色石頭
|來自: AI有道
梯度降低
算法的公式很是簡單,」沿着梯度的反方向(坡度最陡)「是咱們平常經驗獲得的,其本質的緣由究竟是什麼呢?爲何局部降低最快的方向就是梯度的負方向呢?也許不少朋友還不太清楚。不要緊,接下來我將以通俗的語言來詳細解釋梯度降低算法公式的數學推導過程。
下山問題
假設咱們位於黃山的某個山腰處,山勢連綿不絕,不知道怎麼下山。因而決定走一步算一步,也就是每次沿着當前位置最陡峭最易下山的方向前進一小步,而後繼續沿下一個位置最陡方向前進一小步。這樣一步一步走下去,一直走到以爲咱們已經到了山腳。這裏的下山最陡的方向就是梯度的負方向。
首先理解什麼是梯度?通俗來講,梯度就是表示某一函數在該點處的方向導數沿着該方向取得較大值,即函數在當前位置的導數。
其中,θo是自變量參數,即下山位置座標,η是學習因子,即下山每次前進的一小步(步進長度),θ是更新後的θo,即下山移動一小步以後的位置。
一階泰勒展開式
這裏須要一點數學基礎,對泰勒展開式有些瞭解。簡單地來講,一階泰勒展開式利用的就是函數的局部線性近似這個概念。咱們以一階泰勒展開式爲例:
不懂上面的公式?沒有關係。我用下面這張圖來解釋
凸函數f(θ)的某一小段[θo,θ]由上圖黑色曲線表示,能夠利用線性近似的思想求出f(θ)的值,如上圖紅色直線。該直線的斜率等於f(θ)在θo處的導數。則根據直線方程,很容易獲得f(θ)的近似表達式爲:
這就是一階泰勒展開式的推導過程,主要利用的數學思想就是曲線函數的線性擬合近似。
梯度降低數學原理
知道了一階泰勒展開式以後,接下來就是重點了!咱們來看一下梯度降低算法是如何推導的。
想要兩個向量的乘積小於零,咱們先來看一下兩個向量乘積包含哪幾種狀況:
A和B均爲向量,α爲兩個向量之間的夾角。A和B的乘積爲:
總結
咱們經過一階泰勒展開式,利用線性近似和向量相乘最小化的思想搞懂了梯度降低算法的數學原理。也許你以前很熟悉梯度降低算法,但也許對它的推導過程並不清楚。看了本文,你是否有所收穫呢?