吳恩達(dá)機(jī)器學(xué)習(xí)——第二章:單變量線性回歸

下面就讓我們跟著吳恩達(dá)老師來學(xué)習(xí)單變量線性回歸這個基礎(chǔ)算法啦!停忿!有問題的盡管提出來就好啦!J裾恰瞎嬉!

在很多朋友們學(xué)習(xí)統(tǒng)計學(xué)或者機(jī)器學(xué)習(xí)時,一般第一個算法都是線性回歸算法厚柳,在下面的學(xué)習(xí)中氧枣,你將會了解到監(jiān)督學(xué)習(xí)過程完整的流程。關(guān)于監(jiān)督學(xué)習(xí)的簡述可以看我之前的文章哦1鹂濉便监!

一、模型表示

先從一個例子入手碳想。

這個例子是預(yù)測住房價格的烧董,我們要使用一個數(shù)據(jù)集,數(shù)據(jù)集包含俄勒岡州波特蘭市的住房價格胧奔。在這里逊移,我要根據(jù)不同房屋尺寸所售出的價格,畫出數(shù)據(jù)集龙填。假如胳泉,你的房子是1250平方尺大小,你要是賣了你能收到多少錢岩遗?我們現(xiàn)在可以做的就是根據(jù)數(shù)據(jù)構(gòu)建一個模型扇商,也許是條直線。


線性回歸

根據(jù)以往的數(shù)據(jù)可以擬合一條直線宿礁,然后就可以大概在直線上找到1250平方尺大小對應(yīng)的房子價格案铺,就在220000$左右(看到上圖綠色虛線與數(shù)字)。

這也是一個很典型的監(jiān)督學(xué)習(xí)算法的例子梆靖,因為對于每個數(shù)據(jù)控汉,我們給出了“正確的答案”,即告訴我們:根據(jù)我們的數(shù)據(jù)來說返吻,房子實際的價格是多少暇番,更具體地來說,這是一個回歸問題思喊”诔辏回歸就是我們根據(jù)之前的數(shù)據(jù)預(yù)測出一個準(zhǔn)確的輸出值,對于以上例子就是要預(yù)測一個準(zhǔn)確的房價恨课,同時舆乔,還有另一種最常見的監(jiān)督學(xué)習(xí)方式,叫做分類問題(參考第一章)剂公。在監(jiān)督學(xué)習(xí)中希俩,我們可以把已給的數(shù)據(jù)集,稱為訓(xùn)練集(Training Set)纲辽。

已房屋問題為例颜武,現(xiàn)在已有的數(shù)據(jù)集如下圖:


數(shù)據(jù)集

首先定義一下這個房屋回歸問題中牽涉的標(biāo)記:

m——訓(xùn)練集中實例的數(shù)量璃搜,即樣本數(shù)

x——特征或者是輸入變量,在此問題中就是房間平方尺數(shù)

y——目標(biāo)變量或者是輸出變量鳞上,在此問題中就是價格

(x,y)——訓(xùn)練集中的實例这吻,即樣本

(x^i ,y^i)——第i個實例,即第i個樣本

h——學(xué)習(xí)算法的解決方案或者函數(shù)也稱為假設(shè)


監(jiān)督學(xué)習(xí)的工作方式

上圖是監(jiān)督學(xué)習(xí)的工作方式篙议,首先把訓(xùn)練集放進(jìn)算法唾糯,然后就會輸出一個算法的解決方案h,然后把輸入變量x輸入鬼贱,在房屋例子中就是房屋的平方尺數(shù)移怯,然后通過h可以計算出輸出變量y,在房屋例子中就是房屋的價格这难。因此h是一個從x到y(tǒng)的函數(shù)映射舟误。

步驟和數(shù)據(jù)集都有了,接下來的問題就是如何定義和表達(dá)h呢姻乓?

h可被表達(dá)為:h_{\theta } (x)=\theta_{0}+ \theta_{1}x脐帝,因為只含有一個特征(輸入變量),因此這樣的問題叫作單變量線性回歸問題糖权。

二堵腹、代價函數(shù)


在線性回歸中我們有一個像上圖的訓(xùn)練集,m=47(樣本量為47)星澳。假設(shè)函數(shù)疚顷,此假設(shè)函數(shù)就是用來預(yù)測的函數(shù)。

接下來我們要做的就是為模型選擇合適的參數(shù) \theta _{0}禁偎, \theta _{1}腿堤。在房屋問題中,\theta _{0} 是直線的斜率如暖,\theta _{1} 是在y軸上的截距笆檀。


我們選擇的參數(shù)決定了我們得到的直線相對于我們的訓(xùn)練集的準(zhǔn)確程度,模型所預(yù)測的值與訓(xùn)練集中實際值之間的差距(上圖中藍(lán)線所指)就是建模誤差盒至。我們的目標(biāo)便是選擇出可以使得模型誤差的平方和最小的模型參數(shù)酗洒。

這里可以引出代價函數(shù)J(\theta _{0}, \theta _{1})=\frac{1}{2m}\sum\nolimits_{i=1}^m(h_{\theta } (x^i)-y^i)^2枷遂,目標(biāo)就是使代價函數(shù)最小樱衷。


等高圖

我們繪制了一個等高線圖,三個坐標(biāo)分別是\theta _{0}酒唉、 \theta _{1}J(\theta _{0}矩桂, \theta _{1}),可以從圖中看出痪伦,在三維空間中存在一個使J(\theta _{0}侄榴, \theta _{1})最小的點雹锣。

代價函數(shù)也被稱作平方誤差函數(shù),有時也被稱作為平方誤差代價函數(shù)癞蚕。我們之所以要求出誤差貧寒方和蕊爵,使因為誤差平方代價含糊對于大多數(shù)問題都是一個合理的選擇,特別是回歸問題涣达。還有其他的代價函數(shù)也能很好地發(fā)揮作用,但是平方誤差代價函數(shù)可能是解決回歸問題最常用的手段了证薇。

下面我們就對代價函數(shù)做個簡單的可視化度苔。設(shè)假設(shè)函數(shù)h_{\theta } (x)=\theta _1x(令\theta _0=0)。那么此時的代價函數(shù)為J( \theta _{1})=\frac{1}{2m}\sum\nolimits_{i=1}^m(h_{\theta1 } (x^i)-y^i)^2浑度,我們的優(yōu)化目標(biāo)就是令J(\theta _1)最小化寇窑。

通過對比假設(shè)函數(shù)和代價函數(shù),我們可以觀察到箩张,假設(shè)函數(shù)h_{\theta } (x)是關(guān)于x的函數(shù)甩骏,而代價函數(shù)J( \theta _{1})是關(guān)于\theta _{1}的函數(shù),它控制著直線的斜率先慷。

現(xiàn)在來繪制這兩個函數(shù)讓我們更深入地了解饮笛。我們暫時設(shè)\theta _{1}=1,可以繪制出h_{\theta } (x)的圖像论熙。當(dāng)\theta _{1}=1時福青,h_{\theta } (x^i)=y^i,所以J( \theta _{1})=J(1)=0。如下圖



當(dāng)\theta _{1}=0.5時脓诡,斜率是一條0.5的直線无午,只給了三個樣本,所以樣本量m=3祝谚,此時得到代價函數(shù)J(0.5)=\frac{1}{2*3}[(0.5-1)^2+(1-2)^2+(1.5-3)^2]\approx 0.58

宪迟,如下圖。


以此類推可以求出\theta _{1}=0交惯,\theta _{1}=2...對應(yīng)的J(0)次泽,J(2)....根據(jù)求出來的值可以繪制以下圖像。


代價函數(shù)圖像

對于每個不同的\theta _{1}都有對應(yīng)的J( \theta _{1})席爽,可以從圖中看出箕憾,當(dāng)\theta _{1}=1時,對應(yīng)的J( \theta _{1})=J(1)是最小的拳昌。那么我們的目的就達(dá)成了袭异。線性回歸的目標(biāo)就是找到適合的\theta _{1},使得代價函數(shù)J( \theta _{1})最小炬藤。

三御铃、梯度下降

梯度下降是一個用來求函數(shù)最小值的算法碴里,我們將使用梯度下降法來求出代價函數(shù)J(\theta _{0}, \theta _{1})的最小值上真。

梯度下降背后的思想:開始時我們隨機(jī)選擇一個參數(shù)的組合\theta _0,\theta _1,......,\theta _n,計算代價函數(shù)咬腋,然后我們尋找下一個能讓代價函數(shù)值下降最多的參數(shù)組合。我們持續(xù)這么做直到找到一個局部最小值(local minimum)睡互,因為我們并沒有嘗試完所有的參數(shù)組合根竿,所以不能確定我們得到的局部最小值是否便是全局最小值(global minimum),選擇不同的初始參數(shù)組合就珠,可能會找到不同的局部最小值寇壳。


可能這樣說有點抽象,我們再說得簡單易懂些妻怎。

想象一下你正站立在山的這一點上壳炎,站立在你想象的公園這座紅色山上(如上圖),在梯度下降算法中逼侦,我們要做的就是旋轉(zhuǎn)360度匿辩,看看我們的周圍,并問自己要在某個方向上榛丢,用最快的路線小碎步下山铲球。這些小碎步需要朝什么方向?如果我們站在山坡上的這一點晰赞,你看一下周圍睬辐,你會發(fā)現(xiàn)最佳的下山方向,你再看看周圍宾肺,然后再一次想想溯饵,我應(yīng)該從什么方向邁著小碎步下山?然后你按照自己的判斷又邁出一步锨用,重復(fù)上面的步驟丰刊,從這個新的點,你環(huán)顧四周增拥,并決定從什么方向?qū)羁煜律阶那桑缓笥诌~進(jìn)了一小步,并依此類推掌栅,直到你接近局部最低點的位置秩仆。我們可以認(rèn)為梯度下降法就是最快下山,就是根據(jù)你認(rèn)為最快的路線和方向一點點小碎步下山猾封,到達(dá)最低點澄耍。

批量梯度下降(batch gradient descent)算法的公式為:\theta _j:=\theta _j-\alpha \fracqnyee21{d\theta _j} J(\theta _0,\theta _1)

其中\alpha 學(xué)習(xí)率learning rate),符號“:=”代表賦值學(xué)習(xí)率決定了我們沿著能讓代價函數(shù)下降程度最大的方向向下邁出的步子有多大齐莲,如果\alpha ?值很大痢站,我們將會邁著很大的步子下山,梯度下降就很迅速选酗,相反則步子很小梯度下降緩慢阵难。在批量梯度下降中,我們每一次都同時讓所有的參數(shù)減去學(xué)習(xí)速率乘以代價函數(shù)的導(dǎo)數(shù)芒填。求導(dǎo)的目的就是求出與函數(shù)相切的直線的斜率呜叫。

我們將會反復(fù)做梯度下降,直到達(dá)到最低點殿衰。

實現(xiàn)梯度下降算法的微妙之處是對于梯度下降法的公式朱庆,你需要同時更新\theta _0\theta _1,那就是說你要計算出公式的右邊部分播玖,然后賦值到公式左邊的部分椎工。下面會給出公式來闡述這個更新的過程饭于。



先把公式右邊計算出來的結(jié)果賦值給temp0蜀踏,然后再把temp0賦值給\theta _0\theta _1也是同樣的方法掰吕。

在梯度下降算法中果覆,這是正確實現(xiàn)同時更新的方法。當(dāng)人們談到梯度下降時殖熟,他們的意思就是同步更新局待。

學(xué)習(xí)率\alpha 太大或太小

如果\alpha 太小了,即我的學(xué)習(xí)速率太小菱属,結(jié)果就是只能這樣像小寶寶一樣一點點地挪動钳榨,去努力接近最低點,這樣就需要很多步才能到達(dá)最低點纽门,所以如果\alpha 太小的話薛耻,可能會很慢,因為它會一點點挪動赏陵,它會需要很多步才能到達(dá)全局最低點饼齿。

如果\alpha 太大,那么梯度下降法可能會越過最低點蝙搔,甚至可能無法收斂缕溉,下一次迭代又移動了一大步,越過一次吃型,又越過一次证鸥,一次次越過最低點,直到你發(fā)現(xiàn)實際上離最低點越來越遠(yuǎn),所以敌土,如果\alpha 太大镜硕,它會導(dǎo)致無法收斂,甚至發(fā)散返干。

現(xiàn)在有個問題兴枯,如果我們預(yù)先把\theta _1放在一個局部的最低點,你認(rèn)為下一步梯度下降法會怎樣工作矩欠?


假設(shè)你將\theta _1初始化在局部最低點财剖,在這兒,它已經(jīng)在一個局部的最優(yōu)處或局部最低點癌淮。結(jié)果是局部最優(yōu)點的導(dǎo)數(shù)將等于零躺坟,因為它是那條切線的斜率。這意味著你已經(jīng)在局部最優(yōu)點乳蓄,它使得\theta _1不再改變咪橙。因此,如果你的參數(shù)已經(jīng)處于局部最低點虚倒,那么梯度下降法更新其實什么都沒做美侦,它不會改變參數(shù)的值。這也解釋了為什么即使學(xué)習(xí)速率\alpha 保持不變時魂奥,梯度下降也可以收斂到局部最低點菠剩。

下面來看一個例子。


我想找到它的最小值耻煤,首先初始化我的梯度下降算法具壮,在那個紫色的點初始化,如果我更新一步梯度下降哈蝇,也許它會帶我到這個點棺妓,因為這個點的導(dǎo)數(shù)是相當(dāng)陡的。現(xiàn)在炮赦,在這個綠色的點怜跑,如果我再更新一步,你會發(fā)現(xiàn)我的導(dǎo)數(shù)眼五,也即斜率妆艘,是沒那么陡的。隨著我接近最低點看幼,我的導(dǎo)數(shù)越來越接近零批旺,所以,梯度下降一步后诵姜,新的導(dǎo)數(shù)會變小一點點汽煮。然后我想再梯度下降一步,在這個綠點,我自然會用一個稍微跟剛才在那個紫色點時比暇赤,再小一點的一步心例,到了新的紅色點,更接近全局最低點了鞋囊,因此這點的導(dǎo)數(shù)會比在綠點時更小止后。所以,我再進(jìn)行一步梯度下降時溜腐,我的導(dǎo)數(shù)項是更小的译株,\theta _1更新的幅度就會更小。所以隨著梯度下降法的運(yùn)行挺益,你移動的幅度會自動變得越來越小歉糜,直到最終移動幅度非常小,你會發(fā)現(xiàn)望众,已經(jīng)收斂到局部極小值匪补。

回顧一下,在梯度下降法中烂翰,當(dāng)我們接近局部最低點時夯缺,梯度下降法會自動采取更小的幅度,這是因為當(dāng)我們接近局部最低點時刽酱,很顯然在局部最低時導(dǎo)數(shù)等于零喳逛,所以當(dāng)我們接近局部最低時瞧捌,導(dǎo)數(shù)值會自動變得越來越小棵里,所以梯度下降將自動采取較小的幅度,這就是梯度下降的做法姐呐。所以實際上沒有必要再另外減小學(xué)習(xí)率\alpha 殿怜。

這就是梯度下降算法,你可以用它來最小化任何代價函數(shù)J曙砂,不只是現(xiàn)行回歸中的代價函數(shù)头谜。

我們剛剛使用的算法,有時也稱為批量梯度下降鸠澈。實際上柱告,在機(jī)器學(xué)習(xí)中,通常不太會給算法起名字笑陈,但這個名字”批量梯度下降”际度,指的是在梯度下降的每一步中,我們都用到了所有的訓(xùn)練樣本涵妥,在梯度下降中乖菱,在計算微分求導(dǎo)項時,我們需要進(jìn)行求和運(yùn)算,所以窒所,在每一個單獨(dú)的梯度下降中鹉勒,我們最終都要計算這樣一個東西,這個項需要對所有m個訓(xùn)練樣本求和吵取。因此禽额,批量梯度下降法這個名字說明了我們需要考慮所有這一"批"訓(xùn)練樣本,而事實上皮官,有時也有其他類型的梯度下降法绵疲,不是這種"批量"型的,不考慮整個的訓(xùn)練集臣疑,而是每次只關(guān)注訓(xùn)練集中的一些小的子集盔憨。

參考:https://github.com/fengdu78/Coursera-ML-AndrewNg-Notes

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市讯沈,隨后出現(xiàn)的幾起案子郁岩,更是在濱河造成了極大的恐慌,老刑警劉巖缺狠,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件问慎,死亡現(xiàn)場離奇詭異,居然都是意外死亡挤茄,警方通過查閱死者的電腦和手機(jī)如叼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來穷劈,“玉大人笼恰,你說我怎么就攤上這事⌒眨” “怎么了社证?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長评凝。 經(jīng)常有香客問我追葡,道長,這世上最難降的妖魔是什么奕短? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任宜肉,我火速辦了婚禮,結(jié)果婚禮上翎碑,老公的妹妹穿的比我還像新娘谬返。我一直安慰自己,他們只是感情好杈女,可當(dāng)我...
    茶點故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布朱浴。 她就那樣靜靜地躺著吊圾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪翰蠢。 梳的紋絲不亂的頭發(fā)上项乒,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天,我揣著相機(jī)與錄音梁沧,去河邊找鬼檀何。 笑死,一個胖子當(dāng)著我的面吹牛廷支,可吹牛的內(nèi)容都是我干的频鉴。 我是一名探鬼主播,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼恋拍,長吁一口氣:“原來是場噩夢啊……” “哼垛孔!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起施敢,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤周荐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后僵娃,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體概作,經(jīng)...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年默怨,在試婚紗的時候發(fā)現(xiàn)自己被綠了讯榕。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,427評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡匙睹,死狀恐怖愚屁,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情垃僚,我是刑警寧澤集绰,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布规辱,位于F島的核電站谆棺,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏罕袋。R本人自食惡果不足惜改淑,卻給世界環(huán)境...
    茶點故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望浴讯。 院中可真熱鬧朵夏,春花似錦、人聲如沸榆纽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至饥侵,卻和暖如春鸵赫,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背躏升。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工辩棒, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人膨疏。 一個月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓一睁,卻偏偏與公主長得像,于是被迫代替她去往敵國和親佃却。 傳聞我的和親對象是個殘疾皇子者吁,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,440評論 2 359

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