梯度下降是一種常用的優化演算法,公式是這樣的:w(
τ+1)
=wτ−
α∇e(
wτ) w(τ
+1)=
wτ−α
∇e(w
τ)其中, ∇e
(w) ∇e(
w)是cost函式的梯度,減去這個值和學習率的乘積,就代表沿著最陡峭的面滑向最低點。嗯,沒有問題。
可是有一天看到有本書提到梯度上公升,公式是這樣的:w=
w+α∇
wf(w
) w=w
+α∇w
f(w)
嗯,也容易理解,式1中 e(
w)e (w
)是個碗的形狀,要下降到最低點,式2中 f(
w)f (w
)是個蘑菇的形狀,要上公升到最頂點。e(
w)e (w
)加個負號就變成 f(
w)f (w
)了。等等,這一對比才意識到還有乙個問題:為什麼下降就一定是減,上公升就一定是加?
要回答這個問題,就要理解梯度的含義,梯度是三維以上座標系的概念,它在平面座標系對應的概念是導數。
那麼我們先來看導數,它表示線的斜率,斜率又可以分兩部分來看,乙個是傾斜的程度(我有多斜),乙個是傾斜的方向(我往那兒斜)。此處只討論傾斜方向。
其實二維平面上只兩個傾斜方向:往左斜和往右斜。有人就懷疑了,為什麼沒有往上斜和往下斜,因為那是根線啊,這兩種說法一樣,我們取其一種說法而已。又有人懷疑了,你說它上頭往左斜,它同時下頭就往右斜啊。也對,那為了把事兒說清楚,我們就只看
一、二象限。總而言之,傾斜方向只有兩個,為了表述清楚,我們需要加一些限制。二維平面的傾斜方向正好對應導數的正負,導數為正,線右傾,導數為負,線左傾。
二維平面中,導數代表線的傾斜方向和傾斜程度,三維空間中,梯度代表面的傾斜方向和傾斜程度。線的傾斜方向只有兩個用正負表示,而面的傾斜方向是無窮的,是由向量表示。
梯度是個向量,向量的方向就代表傾斜方向,向量的模就代表傾斜程度。圖1繪製了三維空間中兩個傾斜的平面和乙個參考水平面,為了清晰,畫出了兩個視角的截圖:
如圖所示,三維空間中面的梯度是二維向量,我把它畫在z=0的xy平面上,它就是這個傾斜平面的梯度向量,它垂直於這個平面與水平面的交線,圖中畫的兩個面傾斜方向是一樣的,傾斜程度不同,也就是梯度向量方向相等,模不相等。這裡就可以看到面的傾斜方向的含義,同樣的,為了表述明確,需要幾個限制,一是傾斜是以麵的銳角夾角方向,二是從右手座標系上方視角來看的。
現在很明顯了,加梯度,就是自變數沿著面的傾斜方向移動,函式值就會向上移動。對於平面如此,而到了曲面上,某個點的梯度就是該點切面的傾斜方向和傾斜程度。所以對碗形函式求極小值,就要減梯度,對蘑菇形函式求極大值,就要加梯度。
梯度下降?梯度上公升?梯度提公升?
最近被這三個詞搞蒙了。原本沒覺得它們有多難區分,但真要向乙個人解釋清類似 為何要有梯度提公升 這類問題,似乎還是很吃力,從而發現自己其實並沒有完全理解其中的含義。也許根本就不存在什麼 梯度上公升 只有 梯度提公升 罷,但我覺得,至少在中文環境裡,大家越發的喜歡無意識地將這兩個詞分別開來,從而這兩個詞...
根據權威文獻區分梯度上公升與梯度下降
參考 第五頁 the analogy of boosting 9 10 to steepest descent minimization 意思是,梯度提公升法用於最小化函式 由於國內的凸函式是國外的凹函式 國外的凸函式是國內的凹函式。所以可知,上面這句意思是 梯度提公升用於處理國外定義中的凸函式,講...
梯度上公升和梯度下降演算法區別與聯絡
函式上當前點對應的梯度方向是增大最快的方向,反方向是減小最快的方向 要計算的是函式的極大值,如最大化似然函式,加上學習率 梯度 要計算的是函式的極小值,如最小化損失函式,減去學習率 梯度 在某些地方可能說是梯度下降,但是用的卻是加法,有兩種解釋 減號代入了梯度中 梯度下降和梯度上公升本質上是一樣的,...