程序員的機(jī)器學(xué)習(xí)筆記-第四篇 梯度下降

????????我們?cè)谏弦黄P記中使用最小二乘法得到的目標(biāo)函數(shù)是一個(gè)形式簡(jiǎn)單的2次函數(shù)鞋吉,它是一個(gè)凸函數(shù),對(duì)它的各個(gè)參數(shù)求偏導(dǎo)并令偏導(dǎo)為0后得到的是一個(gè)線性方程組,如果這個(gè)線性方程組存在唯一解那么求解這個(gè)線性方程組就要求解X轉(zhuǎn)置乘X的逆矩陣,但是在實(shí)際中X轉(zhuǎn)置乘X不一定可逆,而且即便逆矩陣存在栗精,當(dāng)矩陣的維度很高時(shí)求解解析解也是極為耗時(shí)。另一方面瞻鹏,在其它一些復(fù)雜的模型中悲立,目標(biāo)函數(shù)并不是2次函數(shù),那么令偏導(dǎo)為0后得到的方程組可能是非線性方程組新博,使用計(jì)算機(jī)并不能很方便地直接求解這個(gè)非線性方程組薪夕。

????????由于上述的原因在機(jī)器學(xué)習(xí)中經(jīng)常放棄求解解析解,而使用計(jì)算機(jī)擅長(zhǎng)的迭代計(jì)算的方式去逐步地逼近目標(biāo)函數(shù)的局部最優(yōu)解赫悄,當(dāng)目標(biāo)函數(shù)是凸函數(shù)時(shí)原献,局部最優(yōu)解也是全局最優(yōu)解馏慨,在機(jī)器學(xué)習(xí)中目標(biāo)函數(shù)就是損失函數(shù)。

????????這篇筆記要介紹的梯度下降法就是這樣一種迭代算法姑隅。所謂函數(shù)F(x)在a點(diǎn)的梯度是指F(x)在a點(diǎn)的偏導(dǎo)數(shù)組成的向量写隶,例如,如果F是一個(gè)二元函數(shù)讲仰,即F = F(x, y)慕趴,且F在其定義域內(nèi)具有一階連續(xù)偏導(dǎo)數(shù),則對(duì)于其定義域內(nèi)每一點(diǎn)(x', y')其梯度?F(x', y')為:

????????梯度是一個(gè)向量鄙陡,向量是有方向的冕房,所以梯度有時(shí)也稱梯度方向,沿著梯度方向函數(shù)值增長(zhǎng)最快趁矾,沿著負(fù)梯度方向(梯度相反方向)函數(shù)值下降最快耙册。梯度下降算法的依據(jù)是:

????????如果函數(shù)F(x)在點(diǎn)a處可導(dǎo),那么F(x)在a點(diǎn)沿著負(fù)梯度的方向-?F(a)下降最快愈魏。F(x)在a點(diǎn)沿著負(fù)梯度方向前進(jìn)一小步到達(dá)一個(gè)新的點(diǎn)再沿著新的點(diǎn)的負(fù)梯度方向前進(jìn)一小步觅玻,重復(fù)這個(gè)步驟想际,直到到達(dá)F(x)的最小值點(diǎn)處培漏。

????????下面我們結(jié)合線性回歸模型來看看梯度下降算法的執(zhí)行過程。先看看最簡(jiǎn)單的單變量的情況胡本,在單變量線性回歸模型中牌柄,模型可以表述如下:

????????假設(shè)函數(shù):

????????為了和參考資料中的標(biāo)記保持一致,這里使用θ作為參數(shù)標(biāo)記侧甫,上一篇筆記中用的是w珊佣,實(shí)際上標(biāo)記符號(hào)是什么無所謂。

????????損失函數(shù):

????????損失函數(shù)是參數(shù)θ0和θ1的函數(shù)披粟,是二元的咒锻,我們的目標(biāo)是找到損失函數(shù)取最小值時(shí)θ0和θ1的值,即:

????????目標(biāo):

????????算法:我們解決這個(gè)最優(yōu)化問題所采用的算法是梯度下降算法守屉,總體步驟為:

????????1. 任意給定θ0和θ1的初始值惑艇,以及一個(gè)給定的步長(zhǎng)??;

????????2. 朝著負(fù)梯度方向不斷修改θ0和θ1的值直到達(dá)到最優(yōu)值點(diǎn)(或其附近)拇泛。θ0和θ1每次修改的增量是負(fù)梯度向量中對(duì)應(yīng)于θ0或θ1的分量與步長(zhǎng)??的乘積滨巴。

????????對(duì)于二元的目標(biāo)函數(shù),上面的步驟可以描述如下:

????????repeat until convergence的意思是“重復(fù)直到收斂”俺叭,也就是重復(fù)大括號(hào)里的值更新操作直到J(θ)達(dá)到最小值恭取。迭代公式中的??為每一次迭代的步長(zhǎng),在機(jī)器學(xué)習(xí)中稱為學(xué)習(xí)率熄守。J(θ0, θ1)對(duì)θj的偏導(dǎo)即為梯度向量中對(duì)應(yīng)于θj的分量蜈垮。

????????形象化解釋梯度下降:

????????我們可以結(jié)合下圖來形象化地理解梯度下降的過程耗跛。下圖為任意二元函數(shù)J可能的函數(shù)圖像J(θ0, θ1),我們需要找到這個(gè)函數(shù)J的一個(gè)局部的最小值窃款。首先任意找一個(gè)點(diǎn)课兄,比如下圖中的黑點(diǎn):

????????選定一個(gè)初始點(diǎn)后,朝著這個(gè)點(diǎn)的負(fù)梯度方向前進(jìn)一步到達(dá)一個(gè)新的點(diǎn)晨继,重復(fù)這個(gè)過程烟阐,持續(xù)朝負(fù)梯度方向前進(jìn),最終到達(dá)函數(shù)J的一個(gè)局部最小值紊扬,其軌跡可能如下:

????????我們可以把這個(gè)過程形象地想象成下山的過程蜒茄,初始點(diǎn)即為你在山上站的初始位置,然后你環(huán)顧四周餐屎,找到了一個(gè)下山最快的方向檀葛,然后朝這個(gè)方向邁了一步,你一直重復(fù)這個(gè)過程直到到達(dá)山腳下腹缩。

????????從上面的圖我們可以看出下山的路徑應(yīng)該是和初始位置有關(guān)的屿聋,即,選定不同的初始點(diǎn)藏鹊,梯度下降法可能會(huì)收斂到不同的局部最優(yōu)值润讥,如下所示:

????????一般而言這種情況的確是有可能的,但是對(duì)于線性回歸中的J(θ0, θ1)來說不會(huì)存在不同的局部最優(yōu)值盘寡,因?yàn)镴(θ0, θ1)是均方誤差的形式楚殿,它是一個(gè)凸函數(shù),只有一個(gè)唯一的最優(yōu)值竿痰,其形狀如下:

????????所以脆粥,對(duì)于線性回歸中的均方誤差損失函數(shù)來說,無論選取何初始點(diǎn)最終都會(huì)收斂到相同的最小值處影涉。

????????在這里還要提及兩個(gè)要點(diǎn):

????????要點(diǎn)一:同時(shí)更新

????????通過上一篇筆記变隔,我們知道,J(θ0, θ1)對(duì)θj的偏導(dǎo)數(shù)如下:

????????代入到算法中蟹倾,可得:

????????注意到h(x)是θ0和θ1的函數(shù):

????????所以匣缘,在更新θ0和θ1的值的時(shí)候是需要用到更新前的θ0和θ1的值的,需要注意的是喊式,在一次迭代中θ0和θ1的值是同時(shí)更新的孵户,θ0和θ1的新值都是基于θ0和θ1的更新前的值來算的,而并不是算完θ0后用新的θ0來計(jì)算θ1岔留。

????????要點(diǎn)二:學(xué)習(xí)率

????????如果學(xué)習(xí)率??太小夏哭,梯度下降的收斂過程可能會(huì)很慢,因?yàn)閷W(xué)習(xí)率??過小的話梯度下降的迭代次數(shù)會(huì)增多献联。

????????但是竖配,學(xué)習(xí)率??也不能太大何址,如果學(xué)習(xí)率太大,梯度下降的過程可能會(huì)越過最小值进胯,那么梯度下降過程可能無法收斂用爪。

????????這兩種情況如下圖所示:

??的大小對(duì)梯度下降過程的影響

????????還有一個(gè)問題,如果我們?cè)O(shè)定了一個(gè)學(xué)習(xí)率后胁镐,需要隨著迭代過程不斷調(diào)整學(xué)習(xí)率的大小嗎偎血?答案是,不需要盯漂。學(xué)習(xí)率不需要在每次迭代中改變颇玷,固定的學(xué)習(xí)率也可以保證收斂,因?yàn)樵浇咏顑?yōu)值時(shí)梯度越小就缆,梯度與學(xué)習(xí)率的乘積也就越小帖渠,對(duì)x的更新也就越小。也就是說竭宰,接近最優(yōu)值時(shí)空郊,梯度下降會(huì)自動(dòng)地使用較小的增量,如下圖所示:

????????但是切揭,記住狞甚,學(xué)習(xí)率不能太大,太大的學(xué)習(xí)率可能導(dǎo)致梯度下降無法收斂伴箩。

????????最后入愧,對(duì)于單變量線性回歸的梯度下降鄙漏,我們來可視化地看看其過程嗤谚。首先介紹一下等高線圖,我們已經(jīng)知道單變量線性回歸中的損失函數(shù)J(θ0, θ1)的形狀如下:

????????想象一下怔蚌,如果我們用一系列平行于θ0θ1平面的平面沿著縱軸去截函數(shù)J(θ0, θ1)的曲面巩步,那么這些平面與函數(shù)J(θ0, θ1)的交點(diǎn)為一系列的橢圓曲線,同一個(gè)橢圓上的所有點(diǎn)對(duì)應(yīng)的函數(shù)值J都相等桦踊,而且橢圓越大椅野,對(duì)應(yīng)的函數(shù)值J越大,橢圓越小J值越小籍胯,我們把這些橢圓曲線垂直投影到θ0θ1平面竟闪,得到如下的等高線圖,圖中同一個(gè)橢圓上的所有(θ0, θ1)點(diǎn)對(duì)應(yīng)的J(θ0, θ1)值相同杖狼,不同的橢圓上的點(diǎn)的J值不同炼蛤,橢圓越大J越大,橢圓越小J越小蝶涩,中心點(diǎn)處J最欣砼蟆:

????????現(xiàn)在假設(shè)我們要使用線性回歸模型來根據(jù)房屋面積來預(yù)測(cè)房?jī)r(jià)(顯然這不是一個(gè)很好的模型絮识,這里只是用于說明梯度下降的過程),我們的訓(xùn)練數(shù)據(jù)集中的樣本為(面積嗽上,售價(jià))數(shù)據(jù)對(duì)次舌。下面的這些圖中,右邊的坐標(biāo)圖為J(θ0, θ1)的等高線圖兽愤,圖中的紅色x點(diǎn)彼念,為某次迭代中θ0和θ1的取值。左邊坐標(biāo)圖的橫坐標(biāo)為面積浅萧,縱坐標(biāo)為售價(jià)国拇,圖中的散點(diǎn)為訓(xùn)練數(shù)據(jù)集中的樣本點(diǎn),圖中的藍(lán)色直線為θ0和θ1取右圖中紅色x點(diǎn)的值時(shí)對(duì)應(yīng)的h(x)=θ0 +? θ1x的函數(shù)圖像惯殊。

????????下面的每個(gè)圖對(duì)應(yīng)了梯度下降過程中的一次迭代酱吝,對(duì)于每次迭代,右圖確定了一個(gè)θ0和θ1土思,左圖顯示了對(duì)應(yīng)這個(gè)θ0和θ1時(shí)的h(x)的圖像务热。從下面這些圖我們可以看到,隨著梯度下降過程的進(jìn)行己儒,θ0和θ1不斷地朝著J(θ0, θ1)值減小的方向更新崎岂,對(duì)應(yīng)的h(x)對(duì)訓(xùn)練數(shù)據(jù)集的擬合程度也越來越好,最后梯度下降收斂在J(θ0, θ1)的最小值處闪湾,此時(shí)的θ0和θ1為最終的模型參數(shù)冲甘,得到的h(x)與訓(xùn)練數(shù)據(jù)擬合度最高,損失最型狙(訓(xùn)練誤差最薪肌)。

第一次迭代何暇,初始θ0和θ1
第二次迭代
第三次迭代
第四次迭代
第五次迭代
第六次迭代
第七次迭代
第八次迭代


第九次迭代

????????在這篇筆記中我們了解了梯度下降算法陶夜,以及它在線性回歸模型中的用途,還可視化地理解了梯度下降及其在單變量線性回歸中的執(zhí)行過程裆站。關(guān)于梯度下降還有一些內(nèi)容沒有提及条辟,將放在下一篇筆記中討論。


參考資料:

Andrew NG 《Machine Learning》課程宏胯。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末羽嫡,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子肩袍,更是在濱河造成了極大的恐慌杭棵,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件了牛,死亡現(xiàn)場(chǎng)離奇詭異颜屠,居然都是意外死亡辰妙,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門甫窟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來密浑,“玉大人,你說我怎么就攤上這事粗井《疲” “怎么了?”我有些...
    開封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵浇衬,是天一觀的道長(zhǎng)懒构。 經(jīng)常有香客問我,道長(zhǎng)耘擂,這世上最難降的妖魔是什么胆剧? 我笑而不...
    開封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮醉冤,結(jié)果婚禮上秩霍,老公的妹妹穿的比我還像新娘。我一直安慰自己蚁阳,他們只是感情好铃绒,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著螺捐,像睡著了一般颠悬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上定血,一...
    開封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天赔癌,我揣著相機(jī)與錄音,去河邊找鬼糠悼。 笑死届榄,一個(gè)胖子當(dāng)著我的面吹牛浅乔,可吹牛的內(nèi)容都是我干的倔喂。 我是一名探鬼主播,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼靖苇,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼席噩!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起贤壁,我...
    開封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤悼枢,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后脾拆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體馒索,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡莹妒,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了绰上。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片旨怠。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖蜈块,靈堂內(nèi)的尸體忽然破棺而出鉴腻,到底是詐尸還是另有隱情,我是刑警寧澤百揭,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布爽哎,位于F島的核電站,受9級(jí)特大地震影響器一,放射性物質(zhì)發(fā)生泄漏课锌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一祈秕、第九天 我趴在偏房一處隱蔽的房頂上張望产镐。 院中可真熱鬧,春花似錦踢步、人聲如沸癣亚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)述雾。三九已至,卻和暖如春兼丰,著一層夾襖步出監(jiān)牢的瞬間玻孟,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工鳍征, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留黍翎,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓艳丛,卻偏偏與公主長(zhǎng)得像匣掸,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子氮双,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

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