梯度下降法——奔流到海不復回
請從雲端找出最速下降的路線
一個簡單的例子
求函數
的最小值。
用微積分的方法,先求的導數
再令,解得時,為最小值。
以上是導數方法的簡單應用,求導與解方程,兩步搞定。
記住,導數為零的地方,函數值最小。
一個稍微複雜的例子
求函數
(1)
的最小值。
請問,上一個例子的方法是否可以炮製?我們試試。
先求導數如下
(2)
令得到方程如下
以上方程有若干實根,每個根就是的極值點,比較後取最小極值,就能得到最小值。但是,五次或五次以上的高次方程,沒有代數的求根公式。因此,第一個例子的方法,在這裡失效。
雖然解方程的方法行不通,但我們可以通過搜索的方法尋找的零點與的極值點,如圖1。
圖1 函數與及其導數的圖像
取並隨機地取初始值,如圖1。
因為,所以令。
因為,所以令。
……
因為,所以令
最後,因為,所以是的極值點。恭喜你,馬到成功!
本質上,上述過程在尋找導數為零的窪地(平地)。
這個例子展示如何使用梯度下降法求函數的極值,但稍顯粗糙,不能解決一般性的最小值問題。一般情況下,你可能會遇到如下問題:
第一個問題:在點,大部分情況不會剛好出現的情況,而是。
若出現這種情況,把變小,比如令,並沿反方向搜索,即令,再驗證的符號。這樣,直到為0或足夠小。
在的左邊還是右邊,取決於函數的增減,即的符號。若在增,即,則取,在的左邊。反之,若在減,,則取,在的右邊。
這個方法,用多元函數微分學的術語來講,是找使最快下降的增量向量,就是梯度下降法。在一元微分學中,向量只有兩個方向,就是正與負;在二元中,是平面向量,方向有360度;而二元以上,向量的方向用內積表示。
第二個問題:函數不是凸函數,如圖2,在中間位置設置初始點,按如上的手算規則,則陷入局部最小值。而從最左邊的區間初始化,則找不到函數的最小值,陷入無底洞()。
圖2 非凸問題
這種情況的最小值問題,是非凸問題,用如上步驟無法解決非凸問題。
後面我們會看到,很多問題總是能轉化成凸問題,從而通過以上步驟解決。另外,解決非凸問題的終極辦法是遺傳演算法,該演算法是應用數學的偉大而精巧的設計,它利用進化論知識,通過優勝劣汰的方法,找到問題的近似全局最優解。
方嚮導數
如圖3,考察區域內的二元可微函數
設,沿著與軸夾角為的方向取,設
。
圖3 方嚮導數
因為在內可微,所以
兩邊除以得
(3)
從圖3中可以看出
代入(3)得
令兩邊取極限得
以上極限是函數在方向的方嚮導數,記作
(4)
其中射線與軸的逆時針夾角為。
對於多元函數
可以如法炮製地推導出方嚮導數
(5)
其中,射線與向量方向相同,是與第個坐標軸的逆時針夾角,根據高維空間餘弦的內積公式,可以得到
(6)
函數的梯度
對於二元函數
的方嚮導數,應用柯西不等式,如下
所以
當且僅當
等號成立,也就是說,當
,
的時候,方嚮導數取得最大值為。
容易看出,在點,向量的方向就是取得最大的方向,其模是方嚮導數的最大值。因為在點,是函數增長最大的方向,因此我們稱向量為函數的梯度,記作:
(7)
以場論的觀點看,是標量場,但梯度是向量場。
記住,梯度是一個向量,它表示標量函數增長的最快方向,它的反方向是標量函數減少的最快方向。同時的模
(8)
是該方向的導數值。
同樣用柯西不等式,可以推導出多元函數
的梯度為
(9)
對應的方嚮導數為
(10)
梯度下降法
函數
在區域的最小值,理論上可以通過偏導數的零點方程組來求得。
但是,如本文第二個例子所述,由於大多數方程沒有代數解法,因此演算法上就需要一種逼近的方法去近似求解。梯度下降法就是利用函數的梯度求多元函數最小值的方法,其步驟如下:
1.初始化移動步長。
2.在區域內取一組初始點。
3.在該點求各個變數的偏導數
如果,則把該點代入求得是得而最小值,結束。
4.按如下方法,沿著梯度的反方向置換,即
跳轉到第3步。
自然界的梯度下降
圖4 水流沿著山勢的梯度尋找大海
我與兒子丁丁都喜歡看貝爾格里爾斯的《荒野求生》,貝爾格里爾斯在他的節目中告訴我們,在森林裡,尋找出路的最好辦法是順著山谷往下走,若有水流,就順著水流往下走。
與小朋友一起觀看視頻節目的好處是,他會向你問很多問題。比如,丁丁曾經問我,為什麼在森林裡迷失,要沿著水流的方向找出路?
在節目中,貝爾格里爾斯給出了一個答案,因為河水的下游住人的概率比較大。其實,從數學的角度看,還有一個原因,那就是水流的方向是梯度下降的方向。按照這個方向走,可以快速到達平原,從而找到森林的出口。
若把山的海拔高度看成是函數,這條路線是由函數的梯度指出的路線,這是梯度下降法在野外生存的直觀應用。
君不見黃河之水天上來,奔流到海不復回!河水怎麼找到大海?
記住,地面水流方向,是梯度方向,這個方向,是奔流到海的最速路線。
球上奔騰的河流,人類的認知路線,動物的進化路線,它們都沿著梯度的方向在實踐優化過程。
進化就是要在生存的環境中找到最優的生物參數,使物種能夠最好地生存與繁衍。而進化的路線像水流,是在這個複雜的環境中找一條最有效的調優路線,這條路線就是梯度下降的路線。
本質上,我們的基因像流水一樣,在進化的過程中,去尋找大海。但從悲觀的角度看問個問題,「大海」找到了,在海拔0米的地方,這基因還能進化嗎?在不能繼續進化的時候,生物還有什麼意義?
任何物種,在漫長的進化歷程中,頭頂上都有一顆普照大地的太陽,這顆太陽,能夠使處在零海拔的水滴蒸發到高山上,重新匯聚成奔騰的江河。因此,高級生物衰亡後,必然有新的微生物的出現,重新演繹一段進化的歷史。
圖5 演算法沿著函數的梯度下降去搜索最優解
數學的神奇,在於我們總是能夠利用它創造模型,來描述自然規律。比如,梯度下降法這個優化演算法,用向量場為山勢建模,用梯度來模仿水流的方向。如圖5,連接星形的路線,是求函數最小值的最佳路線,請做個實驗,在路線的始點倒一杯水,看看水流的方向與梯度的方向是否一致。
關注優秀公眾號
TAG:事事關耳 |
※天氣再熱,回到家看到這個裝修感覺溫度都下降好幾度
※借唄額度下降了?網友不緊不慢,已經找到回復額度的方法!
※航母船錨多下降時,不控制船錨下降速度會不會讓航母拉翻!
※從東奔到西行,流動人口連續三年下降
※線性回歸和梯度下降的介紹
※SSD價格持續穩步下降 終於要回到過去了
※海運費連續五期下降 後續或將企穩回升
※顯卡熱度下降,將迎來新一波價格下調!
※跑步雖好但不要運動過度 過度會造成免疫力下降
※如何改進梯度下降演算法
※流量下降了,鹿晗到了接拍防脫髮廣告的地步?下一個是蔡徐坤嗎
※我國風疹流行強度大幅下降
※體重不再下降?5個燃脂方法,讓你度過減肥平台期!
※天然「降壓藥」終於被找到了,每天吃點,血壓不飆升,慢慢往下降
※終於知道海水每天以千億噸的速度消失,而海平面也沒有顯著下降
※遇到減脂平台期,一個飲食方法,讓體脂率繼續往下降!
※房價走勢出來了,不排除下降的可能
※如何做到視力不容易下降
※遇到平台期除了運動外,還有一個飲食方法,讓體重繼續往下降!
※溫度升高、面積下降!綠豆價格或迎來上漲!