梯度下降法的基本思想可以模擬為乙個下山的過程。
假設這樣乙個場景:乙個人被困在山上,需要從山上下來(找到山的最低點)。但此時山上的濃霧很大,導致可視度很低;因此,下山的路徑就無法確定,必須利用自己周圍的資訊一步一步地找到下山的路。這個時候,便可利用梯度下降演算法來幫助自己下山。怎麼做呢,首先以他當前的所處的位置為基準,尋找這個位置最陡峭的地方,然後朝著下降方向走一步,然後又繼續以當前位置為基準,再找最陡峭的地方,再走直到最後到達最低處;同理上山也是如此,只是這時候就變成梯度上公升演算法了
f(x)-f(x₀)≈(x-x₀)•f'(x₀)
ps:場景中說的是下山,但那是在空間座標系下討論,這裡為了方便,只在平面座標系下做討論,但是不管維度是多少,原理是一樣的。
首先,我們有乙個可微分(可微<=>可導)的函式。這個函式就代表著一座山。我們的目標就是找到這個函式的最小值(此時導數為0),也就是山底。根據之前的場景假設,最快的下山的方式就是找到當前位置最陡峭的方向,然後沿著此方向向下走(梯度的反方向),就能讓函式值下降的最快!因為梯度的方向就是函式之變化最快的方向
所以,我們重複利用這個方法,反覆求取梯度,最後就能到達區域性的最小值,這就類似於我們下山的過程。而求取梯度就確定了最陡峭的方向,也就是場景中測量方向的手段。
f(θ)-f(θ₀)≈(θ-θ₀)•▽f(θ₀)
因為這是乙個可微分方程,所以(θ-θ₀)是乙個微小向量,我們知道標量*單位向量=向量,所以令:
(θ-θ₀)=ŋν(其中 ŋ是標量,ν是單位向量)
注意:(θ-θ₀)不能太大,否則線性近似就不夠準確
重點,區域性下降的目的是希望每次θ更新 ->f(θ)↓,重複這個過程,直到▽f(θ₀)=0。所以:
f(θ)-f(θ₀) ≈ (θ-θ₀)•▽f(θ₀) = ŋν•▽f(θ₀) < 0
因為ŋ是標量,且一般設定為正數,所以可以忽略,則不等式變成:
ν•▽f(θ₀) < 0 其中ν是需要我們求解的
那麼,這個不等式在表達什麼
我們知道▽f(θ₀)是當前位置的梯度方向,
也就是說當ν的方向是梯度的反方向時,
不等式能最大程度的小,也就保證了ν的方向是區域性下降最快的方向
將這個公式跟開頭的公式對比,事情到這裡就結束了,我們終於獲得了梯度下降的公式,有沒有發現公式推導出來後,f(θ)-f(θ₀)不見了,因為只要滿足梯度下降公式,f(θ)就會一直下降(前提:(θ-θ₀)不太大),而我們只需要在影象上觀察f(θ)的值就好了
ps:後向傳播演算法的目的在於快速計算神經網路中各層引數的梯度,它與梯度下降演算法是包含關係。
梯度下降演算法 梯度下降演算法公式推導
場景假設 梯度下降法的基本思想可以模擬為乙個下山的過程。假設這樣乙個場景 乙個人被困在山上,需要從山上下來 找到山的最低點 但此時山上的濃霧很大,導致可視度很低 因此,下山的路徑就無法確定,必須利用自己周圍的資訊一步一步地找到下山的路。這個時候,便可利用梯度下降演算法來幫助自己下山。怎麼做呢,首先以...
梯度下降演算法推導
x y 都表示 權重,f 表示損失函式。f x delta x,y delta y f x,y frac cdot delta x frac cdot delta y f x delta x,y delta y f x,y frac cdot delta x frac cdot delta y de...
用泰勒公式推導梯度下降原理
泰勒公式,應用於數學 物理領域,是乙個用函式在某點的資訊描述其附近取值的公式。如果函式足夠平滑的話,在已知函式在某一點的各階導數值的情況之下,泰勒公式可以用這些導數值做係數構建乙個多項式來近似函式在這一點的鄰域中的值。說白了,泰勒公式就是 可以使用函式在某點的各階導數組成高次多項式去逼近乙個函式。泰...