深度解讀機(jī)器學(xué)習(xí)“梯度下降”

梯度下降是機(jī)器學(xué)習(xí)中用來(lái)求最小值的算法,它被廣泛應(yīng)用于像邏輯回歸、線性回歸和神經(jīng)網(wǎng)絡(luò)的模型中。

一、全局誤差函數(shù)

要了解為什么使用“梯度下降法”去求最小值,必須先知道機(jī)器學(xué)習(xí)求得模型的方式。比如現(xiàn)在有一份線性數(shù)據(jù)的關(guān)系,假設(shè)他的模型為線性,w為權(quán)值(隨機(jī)),b為偏置,e為假設(shè)的“誤差”:

假設(shè)擬合模型

我們把這個(gè)方程做一下變換,得到關(guān)于真實(shí)值和模型擬合值的誤差

公式轉(zhuǎn)換

上面只是關(guān)于一個(gè)數(shù)據(jù)的誤差,接下來(lái)對(duì)所有數(shù)據(jù)的誤差進(jìn)行一次加和,然后再平方。得到一個(gè)所有真實(shí)值與擬合值誤差的平方函數(shù),將其定義為“全局性誤差函數(shù)”loss

誤差函數(shù)loss

我們回過(guò)頭去想,機(jī)器學(xué)習(xí)的目的就是擬合出一個(gè)可以準(zhǔn)確描述這組數(shù)據(jù)的模型。按照上面的公式來(lái)看,如果令“Loss=0”,也就是令所有真實(shí)值與擬合值誤差的平方為零,就等于說(shuō)這個(gè)模型是可以準(zhǔn)確描述真實(shí)世界數(shù)據(jù)的。而讓Loss為零時(shí)的w與b,就是描述這個(gè)模型的參數(shù)

至于為什么要進(jìn)行平方處理,是應(yīng)用了最小二乘的思想。我們本來(lái)是想找到一個(gè)合適的模型,對(duì)此構(gòu)建了一個(gè)真實(shí)值與擬合值的“平方差模型”,找到了這個(gè)平方差模型的解,也就等于是找到了我們需要的“擬合模型”

本質(zhì)上,我們是通過(guò)上面的方式,把一個(gè)求模型的問(wèn)題,轉(zhuǎn)換成了一個(gè)函數(shù)求解“最小值”的數(shù)學(xué)問(wèn)題。那么問(wèn)題來(lái)了,如何找到這個(gè)函數(shù)中的最小值,就是“梯度下降”所解決的問(wèn)題。

二、梯度下降法

問(wèn)題變成了求解一個(gè)函數(shù)模型的最小值問(wèn)題,要用到高等數(shù)學(xué)里關(guān)于“導(dǎo)數(shù)”的一系列概念和知識(shí)作為鋪墊。想理解何為梯度,梯度是如何一步一步如何求得這個(gè)函數(shù)的最小值,就必須從他開(kāi)始

2.1梯度的定義

·導(dǎo)數(shù)

導(dǎo)數(shù)反映在下圖,是曲線上的某個(gè)點(diǎn)沿x軸正方向的變化率(即切線)。

導(dǎo)數(shù)

·偏導(dǎo)數(shù)

偏導(dǎo)數(shù)本質(zhì)上與導(dǎo)數(shù)一樣,都是當(dāng)自變量變化的時(shí)候,函數(shù)值的變化量與自變量變化值的比值(即某個(gè)點(diǎn)沿x軸正方向的變化率)。不同在于導(dǎo)數(shù)描述的一元函數(shù),而偏導(dǎo)描述的是多元函數(shù)

·方向?qū)?shù)

方向?qū)?shù)與導(dǎo)數(shù)和偏導(dǎo)不同在于,它描述的是一個(gè)多元函數(shù),在任意方向上的變化率。方向?qū)?shù)既有數(shù)值,也有方向(不再僅僅是正方向一個(gè)方向)。

·梯度

那么問(wèn)題來(lái)了,你想不想知道在這個(gè)點(diǎn)的n多個(gè)方向?qū)?shù)中,哪個(gè)是下降的方向變化是最大的,哪個(gè)是上升的方向變化最大的。這就引出了對(duì)“梯度”的定義:

梯度,即函數(shù)在某個(gè)點(diǎn)的一個(gè)向量,它的方向與取得最大方向?qū)?shù)的方向一致,模為該方向?qū)?shù)的最大值。

梯度與方向?qū)?shù)的關(guān)系,可以理解為它是方向?qū)?shù)中兩個(gè)極端的“子集”,因?yàn)榉较驅(qū)?shù)可以說(shuō)有無(wú)數(shù)個(gè)方向,而梯度就是兩個(gè)上升和下降變化率最大的兩個(gè)方向

2.2梯度下降法

(1)核心思想

理解了全局性誤差函數(shù)模型和對(duì)梯度的定義,讓我們來(lái)看看梯度下降是怎么找到函數(shù)最小值的。

梯度下降的核心思想為:當(dāng)你在一個(gè)模型中隨機(jī)選取了一個(gè)點(diǎn)并求得該點(diǎn)的Loss,此時(shí)你的目的是找到讓Loss等于或最接近零的點(diǎn),你為了讓loss減小,就要尋找下一個(gè)能讓這個(gè)loss下降最多的點(diǎn)。但如果對(duì)所有的方向依次試一遍,那工作量實(shí)在是太大了!這時(shí)候就可以引入“梯度”來(lái)解決這個(gè)問(wèn)題

我們已經(jīng)知道梯度是某個(gè)點(diǎn)的“最大方向?qū)?shù)”,如果沿著“梯度負(fù)方向”,也就是沿著這個(gè)點(diǎn)在模型中“下降最多方向”的方向?qū)?shù),就最有可能以最快的速度找個(gè)“最小值”點(diǎn)。

梯度下降

可以借著上面的圖,想象自己在一個(gè)山上的點(diǎn),你想要下山的話,環(huán)顧一下四周,沿著一個(gè)最最陡峭的方向挪一下,又到了一個(gè)點(diǎn),繼續(xù)環(huán)顧四周,找到當(dāng)前最陡峭的方向,繼續(xù)挪......梯度下降就是這樣一個(gè)過(guò)程

(2)局部最優(yōu)

當(dāng)然,即時(shí)是沿著“負(fù)向”梯度方向,也不一定能保證所到達(dá)的點(diǎn)一定是全局最優(yōu)解。目前幾乎所有的實(shí)用算法,都不能像上帝視角一樣保證每次都能找到全局最優(yōu)解。不過(guò)即使是“局部最優(yōu)”,也能解決很大問(wèn)題了。

(3)梯度下降公式

梯度下降算法的公式如下:

梯度下降算法公式

公式依次代表為“下次迭代的點(diǎn)”、“目前所在的點(diǎn)”、“學(xué)習(xí)率”和“最大負(fù)向梯度”。按照這個(gè)公式,每次迭代都會(huì)根據(jù)上次的步長(zhǎng)減去學(xué)習(xí)率乘以“梯度”的值,去一步一步更新,這樣能可以每次迭代都朝著最大負(fù)方向去迭代。

(4)學(xué)習(xí)率

讓我們來(lái)看看學(xué)習(xí)率a代表什么。它直接決定著每次更新的挪動(dòng)大小。

如果a太小,那么每次挪動(dòng)的距離只會(huì)一點(diǎn)一點(diǎn)挪動(dòng),這樣就需要很多步才能到達(dá)最低點(diǎn)。

如果a太大,那么梯度下降法可能會(huì)越過(guò)最低點(diǎn),甚至可能“無(wú)法收斂”都不一定哦。因?yàn)槟忝看闻矂?dòng)的距離都很大,這次越過(guò)了一個(gè)最低點(diǎn),下次又越過(guò)了一次最低點(diǎn),直到越過(guò)所有“最低點(diǎn)”,那么你就永遠(yuǎn)都找不到“局部最優(yōu)解”了,也就發(fā)散了

(5)自動(dòng)減小幅度值

梯度下降法還有一個(gè)優(yōu)勢(shì),就是越接近最小值的時(shí)候,梯度下降法會(huì)自動(dòng)調(diào)整更新的幅度,這是因它的公式本身而決定的,以下圖為例,假設(shè)我最開(kāi)始在取值在函數(shù)中的最高點(diǎn)(粉紅色),那么很顯然每次下降之后的點(diǎn),梯度都會(huì)變得越來(lái)越小。

梯度下降步驟(由上至下)

當(dāng)你接近局部最優(yōu)解的時(shí)候,很顯然在局部最低時(shí)導(dǎo)數(shù)等于零,當(dāng)接近局部最優(yōu)解時(shí),導(dǎo)數(shù)值(即公式的最后一部分)會(huì)變得越來(lái)越小,所以梯度下降將自動(dòng)采取較小的幅度。很神奇有木有,你都不用刻意去調(diào)整學(xué)習(xí)率a的值,梯度下降法會(huì)自動(dòng)保證不越過(guò)最低點(diǎn)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,197評(píng)論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,415評(píng)論 3 415
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 176,104評(píng)論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 62,884評(píng)論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,647評(píng)論 6 408
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 55,130評(píng)論 1 323
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,208評(píng)論 3 441
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 42,366評(píng)論 0 288
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,887評(píng)論 1 334
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,737評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,939評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,478評(píng)論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,174評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 34,586評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 35,827評(píng)論 1 283
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,608評(píng)論 3 390
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,914評(píng)論 2 372

推薦閱讀更多精彩內(nèi)容