2吳恩達(dá)Meachine-Learing之單變量線性回歸(Linear Regression with One Variable

未經(jīng)允許,不得擅自改動(dòng)和轉(zhuǎn)載

我們的第一個(gè)學(xué)習(xí)算法是線性回歸算法。在這段視頻中,你會(huì)看到這個(gè)算法的概況,更
重要的是你將會(huì)了解監(jiān)督學(xué)習(xí)過程完整的流程。

模型表示(Model Representation)

讓我們通過一個(gè)例子來開始:這個(gè)例子是預(yù)測住房價(jià)格的,我們要使用一個(gè)數(shù)據(jù)集,數(shù)
據(jù)集包含俄勒岡州波特蘭市的住房價(jià)格。比方說,如果你朋友的房子是 1250 平方尺大小,你要告訴他們這房子能賣多少錢

它被稱作監(jiān)督學(xué)習(xí)是因?yàn)閷τ诿總€(gè)數(shù)據(jù)來說,我們給出了“正確的答案”,即告訴我們:
根據(jù)我們的數(shù)據(jù)來說,房子實(shí)際的價(jià)格是多少,而且,更具體來說,這是一個(gè)回歸問題。回
歸一詞指的是,我們根據(jù)之前的數(shù)據(jù)預(yù)測出一個(gè)準(zhǔn)確的輸出值,對于這個(gè)例子就是價(jià)格,同
時(shí),還有另一種最常見的監(jiān)督學(xué)習(xí)方式,叫做分類問題,當(dāng)我們想要預(yù)測離散的輸出值,例
如,我們正在尋找癌癥腫瘤,并想要確定腫瘤是良性的還是惡性的,這就是 0/1 離散輸出的
問題。更進(jìn)一步來說,在監(jiān)督學(xué)習(xí)中我們有一個(gè)數(shù)據(jù)集,這個(gè)數(shù)據(jù)集被稱訓(xùn)練集。

我將在整個(gè)課程中用小寫的 m 來表示訓(xùn)練樣本的數(shù)目。

以之前的房屋交易問題為例,假使我們回歸問題的訓(xùn)練集(Training Set)如下表所示:

Training Set
  • m 代表訓(xùn)練集中實(shí)例的數(shù)量
  • x 代表特征/輸入變量
  • y 代表目標(biāo)變量/輸出變量
  • (x,y) 代表訓(xùn)練集中的實(shí)例
  • ( x(i),y(i) ) 代表第 i 個(gè)觀察實(shí)例
  • h 代表學(xué)習(xí)算法的解決方案或函數(shù)也稱為假設(shè)(hypothesis)

我將選擇最初的使用規(guī)則 h 代表 hypothesis,因而,要解決房價(jià)預(yù)測問題,我們實(shí)際上
是要將訓(xùn)練集“喂”給我們的學(xué)習(xí)算法,進(jìn)而學(xué)習(xí)得到一個(gè)假設(shè) h,然后將我們要預(yù)測的房屋
的尺寸作為輸入變量輸入給 h,預(yù)測出該房屋的交易價(jià)格作為輸出變量輸出為結(jié)果。那么,
對于我們的房價(jià)預(yù)測問題,我們該如何表達(dá) h?

一種可能的表達(dá)方式為:


因?yàn)橹缓幸粋€(gè)特征/輸入變量,因此這樣的問題叫作單變量線性回歸問題。

代價(jià)函數(shù)

在這段視頻中我們將定義代價(jià)函數(shù)的概念,這有助于我們弄清楚如何把最有可能的直線
與我們的數(shù)據(jù)相擬合。如圖


在線性回歸中我們有一個(gè)像這樣的訓(xùn)練集,m 代表了訓(xùn)練樣本的數(shù)量,比如 m = 47。
而我們的假設(shè)函數(shù),也就是用來進(jìn)行預(yù)測的函數(shù),是這樣的線性函數(shù)形式:

接下來我們會(huì)引入一些術(shù)語我們現(xiàn)在要做的便是為我們的模型選擇合適的參數(shù)
(parameters)θ0 和 θ1,在房價(jià)問題這個(gè)例子中便是直線的斜率和在 y 軸上的截距。

我們選擇的參數(shù)決定了我們得到的直線相對于我們的訓(xùn)練集的準(zhǔn)確程度,模型所預(yù)測的
值與訓(xùn)練集中實(shí)際值之間的差距(下圖中藍(lán)線所指)就是建模誤差(modeling error)


我們的目標(biāo)便是選擇出可以使得建模誤差的平方和能夠最小的模型參數(shù)。 即使得代價(jià)函數(shù)

最小。

我們繪制一個(gè)等高線圖,三個(gè)坐標(biāo)分別為 θ0 和 θ1 和 J(θ0,θ1):


則可以看出在三維空間中存在一個(gè)使得 J(θ0,θ1)最小的點(diǎn)。
代價(jià)函數(shù)也被稱作平方誤差函數(shù),有時(shí)也被稱為平方誤差代價(jià)函數(shù)。我們之所以要求出
誤差的平方和,是因?yàn)檎`差平方代價(jià)函數(shù),對于大多數(shù)問題,特別是回歸問題,都是一個(gè)合
理的選擇。
還有其他的代價(jià)函數(shù)也能很好地發(fā)揮作用,但是平方誤差代價(jià)函數(shù)可能是解決回
歸問題最常用的手段了。

也許這個(gè)函數(shù)J(θ0,θ1)有點(diǎn)抽象,可能你仍然不知道它的內(nèi)涵,在接下來的幾個(gè)視頻里,
我們要更進(jìn)一步解釋代價(jià)函數(shù)J 的工作原理 ,并嘗試更直觀地解釋它在計(jì)算什么,以及我
們使用它的目的。

代價(jià)函數(shù)的直觀理解

在上一個(gè)視頻中,我們給了代價(jià)函數(shù)一個(gè)數(shù)學(xué)上的定義。在這個(gè)視頻里,讓我們通過一
些例子來獲取一些直觀的感受,看看代價(jià)函數(shù)到底是在干什么。

當(dāng)然,我們真正需要的是一種有效的算法,能夠自動(dòng)地找出這些使代價(jià)函數(shù) J 取最小值
的參數(shù) θ0 和 θ1 來。
我們也不希望編個(gè)程序把這些點(diǎn)畫出來,然后人工的方法來讀出這些點(diǎn)的數(shù)值,這很明
顯不是一個(gè)好辦法。我們會(huì)遇到更復(fù)雜、更高維度、更多參數(shù)的情況,而這些情況是很難畫
出圖的,因此更無法將其可視化,因此我們真正需要的是編寫程序來找出這些最小化代價(jià)函
數(shù)的 θ0 和 θ1 的值
,在下一節(jié)視頻中,我們將介紹一種算法,能夠自動(dòng)地找出能使代價(jià)函數(shù)
J 最小化的參數(shù) θ0 和 θ1 的值。

梯度下降Gradient Descent(自動(dòng)地找出能使代價(jià)函數(shù)J 最小化的參數(shù) θ0 和 θ1 的值)

梯度下降是一個(gè)用來求函數(shù)最小值的算法,我們將使用梯度下降算法來求出代價(jià)函數(shù)
J(θ0,θ1) 的最小值。

梯度下降背后的思想是:開始時(shí)我們隨機(jī)選擇一個(gè)參數(shù)的組合(θ0,θ1,...,θn),計(jì)算代價(jià)
函數(shù),然后我們尋找下一個(gè)能讓代價(jià)函數(shù)值下降最多的參數(shù)組合。我們持續(xù)這么做直到到到
一個(gè)局部最小值(local minimum),因?yàn)槲覀儾]有嘗試完所有的參數(shù)組合,所以不能確定
我們得到的局部最小值是否便是全局最小值(global minimum),選擇不同的初始參數(shù)組合,可能會(huì)找到不同的局部最小值。


想象一下你正站立在山的這一點(diǎn)上,站立在你想象的公園這座紅色山上,在梯度下降算
法中,我們要做的就是旋轉(zhuǎn) 360 度,看看我們的周圍,并問自己要在某個(gè)方向上,用小碎步
盡快下山。這些小碎步需要朝什么方向?如果我們站在山坡上的這一點(diǎn),你看一下周圍,你
會(huì)發(fā)現(xiàn)最佳的下山方向,你再看看周圍,然后再一次想想,我應(yīng)該從什么方向邁著小碎步下
山?然后你按照自己的判斷又邁出一步,重復(fù)上面的步驟,從這個(gè)新的點(diǎn),你環(huán)顧四周,并
決定從什么方向?qū)?huì)最快下山,然后又邁進(jìn)了一小步,并依此類推,直到你接近局部最低點(diǎn)
的位置。

批量梯度下降(batch gradient descent)算法的公式為:

其中 α 是學(xué)習(xí)率(learning rate),它決定了我們沿著能讓代價(jià)函數(shù)下降程度最大的方
向向下邁出的步子有多大,在批量梯度下降中,我們每一次都同時(shí)讓所有的參數(shù)減去學(xué)習(xí)速
率乘以代價(jià)函數(shù)的導(dǎo)數(shù)。

在梯度下降算法中,還有一個(gè)更微妙的問題,梯度下降中,我們要更新 θ0 和 θ1 ,當(dāng) j=0
和 j=1 時(shí),會(huì)產(chǎn)生更新,所以你將更新 Jθ0 和 Jθ1。實(shí)現(xiàn)梯度下降算法的微妙之處是,在這
個(gè)表達(dá)式中,如果你要更新這個(gè)等式,你需要同時(shí)更新 θ0 和 θ1,我的意思是在這個(gè)等式中,
我們要這樣更新:
θ0:= θ0 ,并更新 θ1:= θ1。
實(shí)現(xiàn)方法是:你應(yīng)該計(jì)算公式右邊的部分,通過那一部分計(jì)算出 θ0 和 θ1 的值,然后同
時(shí)更新 θ0 和 θ1。
讓我進(jìn)一步闡述這個(gè)過程:

在梯度下降算法中,這是正確實(shí)現(xiàn)同時(shí)更新的方法。我不打算解釋為什么你需要同時(shí)更
新,同時(shí)更新是梯度下降中的一種常用方法。我們之后會(huì)講到,同步更新是更自然的實(shí)現(xiàn)方
法。當(dāng)人們談到梯度下降時(shí),他們的意思就是同步更新。
在接下來的視頻中,我們要進(jìn)入這個(gè)微分項(xiàng)的細(xì)節(jié)之中。我已經(jīng)寫了出來但沒有真正定
義,如果你已經(jīng)修過微積分課程,如果你熟悉偏導(dǎo)數(shù)和導(dǎo)數(shù),這其實(shí)就是這個(gè)微分項(xiàng):

如果你不熟悉微積分,不用擔(dān)心,即使你之前沒有看過微積分,或者沒有接觸過偏導(dǎo)數(shù)
在接下來的視頻中,你會(huì)得到一切你需要知道,如何計(jì)算這個(gè)微分項(xiàng)的知識。
下一個(gè)視頻中,希望我們能夠給出實(shí)現(xiàn)梯度下降算法的所有知識 。

梯度下降的直觀理解

在之前的視頻中,我們給出了一個(gè)數(shù)學(xué)上關(guān)于梯度下降的定義,本次視頻我們更深入研
究一下,更直觀地感受一下這個(gè)算法是做什么的,以及梯度下降算法的更新過程有什么意義。
梯度下降算法如下圖:


描述:對 θ 賦值,使得 J(θ)按梯度下降最快方向進(jìn)行,一直迭代下去,最終得到局部最
小值。其中 α 是學(xué)習(xí)率(learning rate),它決定了我們沿著能讓代價(jià)函數(shù)下降程度最大的方
向向下邁出的步子有多大。

對于這個(gè)問題,求導(dǎo)的目的,基本上可以說取這個(gè)紅點(diǎn)的切線,就是這樣一條紅色的直
線,剛好與函數(shù)相切于這一點(diǎn),讓我們看看這條紅色直線的斜率,就是這條剛好與函數(shù)曲線
相切的這條直線,這條直線的斜率正好是這個(gè)三角形的高度除以這個(gè)水平長度,現(xiàn)在,這條
線有一個(gè)正斜率,也就是說它有正導(dǎo)數(shù),因此,我得到的新的 θ1,θ1 更新后等于 θ1 減去一
個(gè)正數(shù)乘以 α。
這就是我梯度下降法的更新規(guī)則:

讓我們來看看如果 α 太小或 α 太大會(huì)出現(xiàn)什么情況:

如果 α 太小了,即我的學(xué)習(xí)速率太小,結(jié)果就是只能這樣像小寶寶一樣一點(diǎn)點(diǎn)地挪動(dòng),
去努力接近最低點(diǎn),這樣就需要很多步才能到達(dá)最低點(diǎn),所以如果 α 太小的話,可能會(huì)很慢
因?yàn)樗鼤?huì)一點(diǎn)點(diǎn)挪動(dòng),它會(huì)需要很多步才能到達(dá)全局最低點(diǎn)。

如果 α 太大,那么梯度下降法可能會(huì)越過最低點(diǎn),甚至可能無法收斂,下一次迭代又移
動(dòng)了一大步,越過一次,又越過一次,一次次越過最低點(diǎn),直到你發(fā)現(xiàn)實(shí)際上離最低點(diǎn)越來
越遠(yuǎn),所以,如果 α 太大,它會(huì)導(dǎo)致無法收斂,甚至發(fā)散。

現(xiàn)在,我還有一個(gè)問題,當(dāng)我第一次學(xué)習(xí)這個(gè)地方時(shí),我花了很長一段時(shí)間才理解這個(gè)
問題,如果我們預(yù)先把 θ1放在一個(gè)局部的最低點(diǎn),你認(rèn)為下一步梯度下降法會(huì)怎樣工作?

假設(shè)你將 θ1初始化在局部最低點(diǎn),在這兒,它已經(jīng)在一個(gè)局部的最優(yōu)處或局部最低點(diǎn)。
結(jié)果是局部最優(yōu)點(diǎn)的導(dǎo)數(shù)將等于零,因?yàn)樗悄菞l切線的斜率。這意味著你已經(jīng)在局部最優(yōu)
點(diǎn),它使得 θ1不再改變,也就是新的 θ1等于原來的 θ1,因此,如果你的參數(shù)已經(jīng)處于局部
最低點(diǎn),那么梯度下降法更新其實(shí)什么都沒做,它不會(huì)改變參數(shù)的值。這也解釋了為什么即
使學(xué)習(xí)速率 α 保持不變時(shí),梯度下降也可以收斂到局部最低點(diǎn)。

在接下來的視頻中,我們要用代價(jià)函數(shù) J,回到它的本質(zhì),線性回歸中的代價(jià)函數(shù)。也
就是我們前面得出的平方誤差函數(shù),結(jié)合梯度下降法,以及平方代價(jià)函數(shù),我們會(huì)得出第一
個(gè)機(jī)器學(xué)習(xí)算法,即線性回歸算法。

梯度下降的線性回歸

在以前的視頻中我們談到關(guān)于梯度下降算法,梯度下降是很常用的算法,它不僅被用在
線性回歸上和線性回歸模型、平方誤差代價(jià)函數(shù)。在這段視頻中,我們要將梯度下降和代價(jià)
函數(shù)結(jié)合。我們將用到此算法,并將其應(yīng)用于具體的擬合直線的線性回歸算法里。

梯度下降算法和線性回歸算法比較如圖:


對我們之前的線性回歸問題運(yùn)用梯度下降法,關(guān)鍵在于求出代價(jià)函數(shù)的導(dǎo)數(shù),即:


則算法改寫成:

我們剛剛使用的算法,有時(shí)也稱為批量梯度下降。實(shí)際上,在機(jī)器學(xué)習(xí)中,通常不太會(huì)
給算法起名字,但這個(gè)名字”批量梯度下降”,指的是在梯度下降的每一步中,我們都用到了
所有的訓(xùn)練樣本,在梯度下降中,在計(jì)算微分求導(dǎo)項(xiàng)時(shí),我們需要進(jìn)行求和運(yùn)算,所以,在
每一個(gè)單獨(dú)的梯度下降中,我們最終都要計(jì)算這樣一個(gè)東西,這個(gè)項(xiàng)需要對所有 m 個(gè)訓(xùn)練
樣本求和。因此,批量梯度下降法這個(gè)名字說明了我們需要考慮所有這一"批"訓(xùn)練樣本,而
事實(shí)上,有時(shí)也有其他類型的梯度下降法,不是這種"批量"型的,不考慮整個(gè)的訓(xùn)練集,而
是每次只關(guān)注訓(xùn)練集中的一些小的子集。在后面的課程中,我們也將介紹這些方法。
但就目前而言,應(yīng)用剛剛學(xué)到的算法,你應(yīng)該已經(jīng)掌握了批量梯度算法,并且能把它應(yīng)
用到線性回歸中了,這就是用于線性回歸的梯度下降法


課程代碼:https://github.com/HuangCongQing/MachineLearning_Ng
本文參考自-黃海廣博士 斯坦福大學(xué) 2014機(jī)器學(xué)習(xí)教程中文 筆記
鏈接:http://pan.baidu.com/s/1dF2asvf 密碼:1ewf

分享吳恩達(dá)機(jī)器學(xué)習(xí)視頻 下載 鏈接:
鏈接: http://pan.baidu.com/s/1pKLATJl 密碼: xn4w


好看的人兒,點(diǎn)個(gè)喜歡? 你會(huì)更好看哦~~

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

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