【吳恩達機器學習】第一周—單變量線性回歸

31.jpg

1.課程回顧

例1:房價和面積—預測

給定一組房價和房屋面積的數(shù)據(jù)集,通過機器學習算法(監(jiān)督學習)來擬合畫出一條線,根據(jù)這條線來對未知的數(shù)據(jù)進行判斷。
1.png
1.png

假設機器通過這些房價數(shù)據(jù)學習得到一條房價—面積關系線,如上圖中紅線,那么如果你朋友的750英尺的房子,就可以通過這條紅線來估算出房價,可以看出,大約是在150K美金左右。

這是一個典型的回歸問題(Regression),因為結果(房價)可以是任意實數(shù),且數(shù)據(jù)是可以連續(xù)的。

更進一步,由于變量1個—房屋尺寸,且預測結果(房價)和變量間的表達式可以用線性方程描述y = k*x + b。所有,此問題在機器學習中的術語叫做:單變量線性回歸 Linear Regression with One Variable

例2:乳腺癌良性/惡性和尺寸關系

給定一組數(shù)據(jù):乳腺癌腫瘤尺寸大小 和 癌癥惡性/良性關系,通過機器學習,來預測一個給定腫瘤尺寸大小的患者,疾病是惡性還是良性的概率。
2.png
2.png

這個問題和之前的房價問題有些區(qū)別,雖然同樣的,變量只有一個,即x軸上的尺寸大小,但是y軸的結果卻只有兩種:0和1,0表示腫瘤分類為良性;1表示分類為惡性。

所以,這是一個典型的分類問題(Classification)由于這里結果只有兩種,所以此分類問題為二元分類問題

2.分類Classification

這兩個例子都比較通俗易懂,新接觸到的名詞雖然有點多但也無需過度理解,兩個例子中涉及到了監(jiān)督學習中的分類問題回歸問題。分類問題很好理解,機器預測值只有固定的幾個類別,課程中為兩種:0良性腫瘤 1 惡性腫瘤,所以稱為二分類,除了二分類以外,其他的統(tǒng)稱多分類。

3.回歸Regression

與分類問題相對,回歸問題的預測值范圍比較自由,可以是連續(xù)的,且可取任意實數(shù)

4.監(jiān)督學習Supervised Learning

課程中的兩個問題:房價-房屋面積、腫瘤良惡—腫瘤尺寸都是屬于監(jiān)督學習??梢韵群唵卫斫猓O(jiān)督學習就是給定了數(shù)據(jù)集,且數(shù)據(jù)是規(guī)則明確的,有標簽的??梢岳斫鉃榻Y構化的、存儲在數(shù)據(jù)庫中的數(shù)據(jù),喂給機器學習的情況,就叫做監(jiān)督學習。

5.無監(jiān)督學習Unsupervised Learning

與監(jiān)督學習相對,如果給出的數(shù)據(jù)集、沒有明確標簽或者是非結構化的,那么這類數(shù)據(jù)的機器學習,就叫做無監(jiān)督學習。除了監(jiān)督學習、無監(jiān)督學習、還有半監(jiān)督學習的概念。具體可以看看知乎:https://www.zhihu.com/question/23194489/answer/25028661

6.假設hypothesis

我們以例1為例說明hypothesis(假設),這也涉及到后面的代價函數(shù)。
?—hypothesis(假設),代表學習算法的解決方案或函數(shù)。
?表示一個函數(shù),實際上即模型的預測函數(shù),在例1中,輸入是房屋尺寸大小,就像你朋友想出售的房屋,因此 ? 根據(jù)輸入的房屋面積值x 來得到此防房屋估價y,因此,?是一個從x 到 y的映射,由于是單變量線性回歸,映射關系可以簡單表示為:等價于 h_\theta(x)= \theta_0 + \theta_1x

舉個栗子

很明顯,在此例中,通過假設函數(shù),我們可以對數(shù)據(jù)集以外的樣本做預測,如果假設函數(shù)是: h_\theta(x) = 1/4x 那么如果你的朋友有一套面積為500(英尺)的房子,那么你就可以告訴他,你的房價預估在125K(12.5萬)美金

誤差

你那個朋友過來找到你了,說你的假設有誤啊,我那套500英尺的房子,明明就是100K而已,你的數(shù)據(jù)集的數(shù)據(jù)還記錄了我的房子呢......你這有誤差?。?!
預測值125和真實值之間差距為25K,這里25K就被稱為建模誤差。

7.損失函數(shù)Cost Function

代價函數(shù)/損失函數(shù),就是用于評估誤差水平的函數(shù),常見的損失函數(shù)有平方損失函數(shù)交叉熵損失函數(shù),其中前者多用于回歸問題,后者多用于分類問題。理論上,給定一批房屋面積—價格數(shù)據(jù)點,我可以根據(jù)這批數(shù)據(jù)畫出無數(shù)條假設函數(shù)h_\theta(x)直線用于模擬房價和面積之間的關系,那么怎么找到最優(yōu)的那條線?這時,我們就會用到代價函數(shù),好的代價函數(shù)必然使得數(shù)據(jù)集總體的誤差最小。

image.png

舉個例子,此時我有三個樣本點 (1,1),(2,2),(3,3),我怎么確定一個假設函數(shù)h,使得這條線能最優(yōu)化地擬合所有數(shù)據(jù),能更精確地預測下一個位置樣本點的數(shù)據(jù),譬如x = 5時 y的值?這里人眼很明顯一看就能確定h_\theta(x) = 0 + x 即可,不過對于機器,怎么去確定這個方程?
此時就需要用到代價函數(shù),這里我們可以用回歸問題通用的平方損失函數(shù)/平方代價函數(shù),評估假設函數(shù)的誤差水平。這里,例1的代價函數(shù)如下:

4.png
4.png
直白點意思就是:求每個樣本點i 的誤差的平方,累加求平均值,關于最后為什么是1/2m 而不是 1/m,這個其實主要是通用的約定,為了求導方便。

損失函數(shù)的意義就在于,通過求損失函數(shù)的值,我們可以評估預測函數(shù)的準確性,損失越小,則模型的預測越精準。所以,訓練模型很多時候就是降低損失,找到損失函數(shù)的最小值,通過其最小值來產(chǎn)出最優(yōu)的假設函數(shù)。

8.二元函數(shù)梯度下降Gradient Descent

圖解

5.png
5.png

概述

目標

找到損失函數(shù)的最小值,即J(\theta_0,\theta_1)最小的點,所以我們利用梯度下降算法(而不是梯度上升)
為了找到損失函數(shù)的最小值,我們采用梯度下降算法,圖中為二元函數(shù)梯度下降圖解,如果參數(shù)為更多元,則無法繪制出相應的梯度下降圖,不過這幅圖恰巧能生動地解釋梯度下降的含義。
這里x、y軸分別為參數(shù)\theta_0和 \theta_1所在維度,z軸代表代價函數(shù)J的大小,所有的\theta_0和 \theta_1參數(shù)點和損失函數(shù)J(\theta_0,\theta_1)值構成了五彩的三維曲面,最終目標:即通過梯度下降算法,找到J(\theta_0,\theta_1)最小的點。
肉眼可見右邊紅色箭頭所指的點,為局部梯度最低點,即局部J(\theta_0,\theta_1)最小值點;左邊紅色箭頭所指的點為整個三維曲面上的最小值點,即全局最低點。

公式

這里,批量梯度下降(batch gradient descent)算法的公式為:
\theta_j := \theta_j - \alpha\frac{\vartheta}{\vartheta\theta_j}J(\theta_0,\theta_1) for( j = 0 and j = 1)

參數(shù)解釋

1.公式中為什么是\alpha,因為用于表示梯度下降,即逐漸降低,故用負號表示
2.公式中用的是:=符號,此含義表示,等式中的參數(shù)需要同時更新。如此處有兩個參數(shù)\theta_0和 \theta_1正確的更新方式是:
第一步: temp0 = \theta_0 - \alpha\frac{\vartheta}{\vartheta\theta_0}J(\theta_0,\theta_1) temp1 = \theta_1 - \alpha\frac{\vartheta}{\vartheta\theta_1}J(\theta_0,\theta_1)
第二步: \theta_0 = temp0 \theta_1 = temp1
其中第一步完成后才能進行第二步,且在每一步執(zhí)行時,內(nèi)部求temp1、temp2時也是并行的關系

學習率

批量梯度下降公式中,\alpha為學習率(learning rate)它決定了我們沿著能讓代價函數(shù)下降程度最大的方向向下邁出的步子有多大,在批量梯度下降中,我們每一次都同時讓所有的參數(shù)減去學習速率乘以代價函數(shù)的導數(shù)

學習率過小

如果\alpha太小了,即我的學習速率太小,結果就是只能這樣像小寶寶一樣一點點地挪動,去努力接近最低點,這樣就需要很多步才能到達最低點。所以,如果\alpha太小的話可能會很慢,因為它會一點點挪動,它會需要很多步才能到達全局最低點。

學習率過大

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

9.梯度下降的線性回歸

線性回歸模型 梯度下降算法
h_\theta(x)= \theta_0 + \theta_1x? \theta_j := \theta_j - \alpha\frac{\vartheta}{\vartheta\theta_j}J(\theta_0,\theta_1)(for j = 0 and j = 1)

image

對損失函數(shù)/代價函數(shù)運用梯度下降方法,求導:

6.png
6.png

Tips:
j = 0時即對求導,
j = 1時即對求導

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容