梯度下降 算法的公式非常簡(jiǎn)單,”沿著梯度的反方向(坡度最陡)“是我們?nèi)粘=?jīng)驗(yàn)得到的,,其本質(zhì)的原因到底是什么呢,?為什么局部下降最快的方向就是梯度的負(fù)方向呢?也許很多朋友還不太清楚,。沒(méi)關(guān)系,,接下來(lái)我將以通俗的語(yǔ)言來(lái)詳細(xì)解釋梯度下降算法公式的數(shù)學(xué)推導(dǎo)過(guò)程。
假設(shè)我們位于黃山的某個(gè)山腰處,,山勢(shì)連綿不絕,,不知道怎么下山。于是決定走一步算一步,也就是每次沿著當(dāng)前位置最陡峭最易下山的方向前進(jìn)一小步,,然后繼續(xù)沿下一個(gè)位置最陡方向前進(jìn)一小步,。這樣一步一步走下去,一直走到覺(jué)得我們已經(jīng)到了山腳,。這里的下山最陡的方向就是梯度的負(fù)方向,。
首先理解什么是梯度?通俗來(lái)說(shuō),,梯度就是表示某一函數(shù)在該點(diǎn)處的方向?qū)?shù)沿著該方向取得較大值,,即函數(shù)在當(dāng)前位置的導(dǎo)數(shù)。
其中,,θo是自變量參數(shù),,即下山位置坐標(biāo),η是學(xué)習(xí)因子,,即下山每次前進(jìn)的一小步(步進(jìn)長(zhǎng)度),,θ是更新后的θo,即下山移動(dòng)一小步之后的位置,。
這里需要一點(diǎn)數(shù)學(xué)基礎(chǔ),,對(duì)泰勒展開(kāi)式有些了解。簡(jiǎn)單地來(lái)說(shuō),,一階泰勒展開(kāi)式利用的就是函數(shù)的局部線(xiàn)性近似這個(gè)概念,。我們以一階泰勒展開(kāi)式為例:
凸函數(shù)f(θ)的某一小段[θo,θ]由上圖黑色曲線(xiàn)表示,可以利用線(xiàn)性近似的思想求出f(θ)的值,,如上圖紅色直線(xiàn),。該直線(xiàn)的斜率等于f(θ)在θo處的導(dǎo)數(shù)。則根據(jù)直線(xiàn)方程,,很容易得到f(θ)的近似表達(dá)式為:
這就是一階泰勒展開(kāi)式的推導(dǎo)過(guò)程,,主要利用的數(shù)學(xué)思想就是曲線(xiàn)函數(shù)的線(xiàn)性擬合近似。
知道了一階泰勒展開(kāi)式之后,,接下來(lái)就是重點(diǎn)了,!我們來(lái)看一下梯度下降算法是如何推導(dǎo)的。
想要兩個(gè)向量的乘積小于零,,我們先來(lái)看一下兩個(gè)向量乘積包含哪幾種情況:
我們通過(guò)一階泰勒展開(kāi)式,,利用線(xiàn)性近似和向量相乘最小化的思想搞懂了梯度下降算法的數(shù)學(xué)原理。也許你之前很熟悉梯度下降算法,,但也許對(duì)它的推導(dǎo)過(guò)程并不清楚,。看了本文,,你是否有所收獲呢,?
|
|
來(lái)自: 其木Zimmer > 《待分類(lèi)》