Andrew NG Coursera教程學習筆記-Week1

Introduction

什么是Machine Learning

Andrew給出了幾種定義如下:
Arthur Samuel給了一個較老的定義:

He defined machine learning as the field of study that gives computers the ability to learn without being explicitly programmed.

also Tom Mitchell 給了一個較新的定義

He says, a computer program is said to learn from experience E, with respect to some task T, and some performance measure P, if its performance on T as measured by P improves with experience E.

這里機器學習就是指一個計算機程序可以通過學習經(jīng)驗E扰路,然后去執(zhí)行任務(wù)T,并通過表現(xiàn)P來判定學得好壞颗搂,最后這個程序可以不斷的進化改進P來執(zhí)行T通過學習E

有哪些類型的機器學習

總體上來說雨膨,機器學習分為以下兩種:

  • 監(jiān)督式機器學習(supervised machine learning): 即我們需要一個數(shù)據(jù)集,并且在這個數(shù)據(jù)集中含有正確的答案扔茅。比如課堂上舉例關(guān)于房價的預測模型已旧,其訓練集中必須含有房價這個正確的答案。
  • 無監(jiān)督機器學習(unsupervised machine learning): 在下一節(jié)講到了無監(jiān)督學習召娜,無監(jiān)督學習一般不會有明確的分類標簽运褪,只是告訴模型我這里有一些數(shù)據(jù),你看看能分成幾類玖瘸,可以怎么分類秸讹。(常見的聚類算法就是用于無監(jiān)督學習)

機器學習要解決的問題,可以分為兩種類型:

  • 回歸問題:輸出結(jié)果是一個連續(xù)值雅倒,比如預測房價
  • 分類問題:輸出結(jié)果非連續(xù)璃诀,比如預測是和否之類的問題。

此小節(jié)還提到一個問題蔑匣,即現(xiàn)實工程中劣欢,我們可能有無窮多的屬性,而這些屬性可以通過數(shù)學技巧來解決其存儲問題殖演。不過并沒有細講氧秘。

這里我的問題是真的需要無窮多的屬性嗎?通過有限的屬性趴久,比如幾千個屬性值不可以嗎丸相?

無監(jiān)督學習

Andrew給出了什么是無監(jiān)督學習的定義,無監(jiān)督學習首先是沒有所謂的正確答案的彼棍,它只是有一堆數(shù)據(jù)灭忠,輸入給這些無監(jiān)督學習的算法,然后讓算法將這些數(shù)據(jù)分類座硕。Andrew還給出了幾個例子弛作,比如Google News就是通過將網(wǎng)上的新聞通過無監(jiān)督學習算法進行自動分類,從而可以使得相同story的新聞聚合华匾。還比如有一堆用戶的數(shù)據(jù)映琳,可以讓聚合算法自動聚類,將客戶分類(這里我感覺可以用于推薦,聚合不同類型的客戶萨西,然后推薦此類客戶近期購買過的其它類型的產(chǎn)品)有鹿;另外還有一種是非聚類算法(non-clustering algorithm)

最后,Andrew還推薦了Octave谎脯,因為使用Octave或者Matlab可以快速實驗原型葱跋,可以快速的幾行代碼就寫出算法的原型。這里還涉及到了一個概念叫奇異值分解(singular value decomposition)源梭,就是課程講的雞尾酒算法的數(shù)學表達吧娱俺?

  • clustering: 算法自動分類,但我們事先并不知道分的什么類型废麻,也就是我們不知道分類的標簽是什么
  • non-clustering: 比如將不同聲源的聲音分離

Model and Cost Function

Model Representation

針對訓練集的數(shù)據(jù)荠卷,用如下符號來標記一些東西:
m: 訓練集的樣本數(shù)
x: 輸入骇两,variables/features x(i)表示第i行的輸入
y: 輸出的結(jié)果,所謂right answer y(i) 表示第i個樣本的輸出
(x, y)來表示一個樣本
h: 算法函數(shù) hypothesis. h maps from x to y. 就是一個映射函數(shù)载庭,可以通過給定的X輸出Y

# ? refers to theta
# 實際就是一個一元線性函數(shù)
h(x) = ?0 + ?1x

我們通常把這種線性函數(shù)叫做linear regression with one variable 或者 univariate linear regression

本質(zhì)上又碌,所有機器學習算法其實都是一個映射函數(shù),通過訓練徊哑,找到合適的參數(shù),從而可以實現(xiàn)這樣一種映射,即給定一組輸入值社牲,可以輸出一個值,而這個輸出值就是我們的預測值

cost function

如下公式就是一個cost function悴了,實際是一個類平方差的公式搏恤,關(guān)于平方差請參考文章《統(tǒng)計基礎(chǔ)一》,但是平方差的計算并不會除2湃交,這里之所以乘以1/2熟空,是為了后續(xù)做梯度下降(gradient descent)方便

cost function

這個cost function最終是要測度h(x)與y之間的距離,我們也叫這個cost function為square error function. square error function對于線性回歸問題是非常通用的cost function搞莺,當然還有一些其它的cost function息罗,但是square error function更常用。

Cost Function Intuition1

為了簡化問題才沧,先假設(shè)?0 = 0迈喉,J(?0, ?1) -> J(?1)
h(x)是關(guān)于x的函數(shù);而J(?1)是關(guān)于?1的函數(shù)温圆,即這個函數(shù)的橫坐標是?1挨摸。
課程假定有三個樣本(1, 1), (2, 2), (3, 3),這時,如果?1=1岁歉,那么h(x) = x得运,根據(jù)J(?1)的公式,可以計算如下
J(?1) = (1/2*3) * ( (1-1)**2 + (2-2)**2 + (3-3)**2) = 0
假設(shè)?1= 2,計算如下:
J(?1) = (1/6) * ((2-1)**2 + (4-2)**2 + (6- 3)**2) = (1/6) * 14 ≈ 2.33
以此類推熔掺,最終的J(?)函數(shù)的圖形如下:


J(?)

我們知道這個平方差函數(shù)是用來測度h(x)的預測值和實際樣本的y的距離彬檀,因此距離越小說明我們選取的參數(shù)越準確,因此瞬女,我們的目標是尋找J(?)的最小值窍帝,這個時候的?值就可以產(chǎn)生最優(yōu)的h(x)算法。
實際運用時诽偷,我們可以通過程序自動尋找這個最小值坤学。

Cost Function Intuition2

這一小節(jié)主要講了當?0 != 0時的情況,這時cost function就成了J(?0, ?1)报慕,由于有兩個variables深浮,因此其函數(shù)表示就成了三維的圖像,如下:


J(?0, ?1)

這里有個問題眠冈,為啥不把?0飞苇, ?1的0點放在一起?是為了展示的圖形更直觀蜗顽?

但通常我們使用contour plot來表示J(?0, ?1)布卡,這個contour plot實際是上邊那個3-D的平面投影,同一個等高線對應相同的函數(shù)值雇盖。contour plot如下圖:


contour plot

從這個圖可以看出中心點那個值是J(?0, ?1)的最小值忿等,也就是說這個時候的h(x)最接近實際情況。

Parameter Learning

Gradient Decent

我們在尋找特定的θ0和θ1并使得J(θ0, θ1)可以獲得最小值時崔挖,我們就需要gradient decent function(梯度下降函數(shù))贸街。首先來直觀看下如何尋找θ0, θ1使得J(θ0, θ1)最小:

gradient decent

這個過程非常像我們站在山上往山下走狸相,一直走到最低處薛匪。但是這里可能存在這樣的情況:即當我們的初始點不同時,可能最后下降到不同的低點(這里可以看Andrew的視頻脓鹃,講得非常清楚)逸尖,所以我們說局部最小值 (local minimum value)。

這里有個問題将谊,就是有沒有數(shù)學方法可以找到全局最小值呢冷溶?

走的過程是分步走的,每走一步都會停下來看看往哪個方向走可以下降得更快尊浓,然后再往那個方向走下一步逞频。我們是通過導數(shù)(derivative)來判斷方向的,導數(shù)就是函數(shù)曲線在某一個點的切線的斜率(The slope of the tangent is the derivative at that point)栋齿,我們就是根據(jù)這個斜率來判斷哪個方向可以最陡下降(steepest descent)苗胀。
先來看看梯度下降的公式


gradient decent term

這個公式中的??就是所謂的learning rate襟诸,它來決定步子邁多大。
梯度下降的過程就是不斷迭代梯度下降的公式基协,直到收斂(convergence), 即達到最低點歌亲。這里需要注意的是,每次迭代澜驮,θ0和θ1必須同時計算陷揪,如下圖所示:


θ update

Gradient Descent Intuition

gradient decent

從圖中我們可以看到上方的圖表明,其導數(shù)為正時杂穷,θ會減一個正數(shù)(這個數(shù)的大小顯然跟??有關(guān))悍缠,因此θ值會向左移動,因此向local minimum value收斂耐量。下邊的圖類似飞蚓,只是θ會向右移動收斂。

gradient decent2

上邊的坐標圖表明當??很小時廊蜒,收斂的非常慢趴拧,因為邁的步子小啊
下邊的坐標圖說明當??很大時,會導致收斂失敗山叮,因為會導致離最小值點越來越遠
所以著榴,當收斂時間非常長或者收斂失敗時,說明我們的??設(shè)置的不合適聘芜。

gradient decent

這幅圖說明了當我們采用一個固定的??時兄渺,收斂的step也會越來越小(因為斜率越來越小)缝龄,直到最終收斂汰现,所以最終我們是可以收斂成功的。

Gradient Descent For Linear Regression

要進行梯度下降叔壤,就需要迭代地計算θ0和θ1瞎饲,根據(jù)前面的課程我們知道需要知道J(θ)導數(shù)才能計算,這個涉及到微積分的知識炼绘,暫且不表嗅战,先看下求導后的公式:


gradient decent equation

注意:θ1與θ0是不同的,這是求導后的結(jié)果
求導的過程如下:


derivation

梯度下降的過程就是尋找J(θ)最小值的過程俺亮,針對線性回歸這種特殊情況驮捍,J(θ)實際上是一個二次的凸函數(shù)(convex quadratic function),因此只有一個最小值脚曾,即我們找到的這個局部最小值一定是全局最小值东且。

另外,還涉及到一個概念叫batch gradient decent, 這是由于我們每次迭代的時候本讥,都需要針對所有的樣本進行計算再求和珊泳,因此我們說是batch鲁冯。Andrew還提到了某些其它的方式可以不用全部的樣本進行計算,每次只需要樣本的一個子集即可色查,后續(xù)課程再講薯演。

另外,線性代數(shù)還有一個叫做normal equations的方法可以不需要迭代的方法來找到最小值秧了,這個也是以后會涉及到跨扮。

Linear Algebra Review

Matrices and Vectors

矩陣請參考線性代數(shù)之矩陣
向量vector即n x 1的矩陣,即只有一個column的矩陣验毡。
向量通常使用小寫字母表示好港,而matrix通常使用大寫字母表示
在表示向量的元素的時候,其下標可以從0開始米罚,也可以從1開始钧汹,從0開始就是0-indexed vector,而從1開始就是1-indexed vector录择。
另外拔莱,

"Scalar" means that an object is a single value, not a vector or matrix.
? refers to the set of scalar real numbers.
??? refers to the set of n-dimensional vectors of real numbers.

Addition and Scalar Multiplication

本節(jié)相對簡單,主要是矩陣加減運算以及標量與矩陣相乘隘竭。不再贅述
需要注意的是塘秦,在矩陣的加減運算時,兩個矩陣必須是相同的維數(shù)动看。

Matrix Vector Multiplication

本節(jié)主要講了Matrix和Vector的乘

矩陣與向量的乘本質(zhì)上就是對多元方程式的計算尊剔,可以想象矩陣的每一行都是一個樣例的特征(每個特征值都是對應一個變量值x, y, z...),而向量就是方程的θ0, θ1, ....θn菱皆,通過相乘须误,實際上就可以計算出對應的h(x)結(jié)果。需要注意的是仇轻,在構(gòu)筑的時候京痢,常數(shù)項也需要構(gòu)筑一列,即把變量當做1

假設(shè)我們有房價的尺寸數(shù)據(jù)[123; 234; 555; 666]篷店, h(x) = 40 + 2x
那么我們在使用矩陣計算時祭椰,需要構(gòu)筑如下矩陣

A = [1, 123; 1, 234; 1, 555; 1, 666]
v = [40; 2]
h(x) = A * v

通過這種方式不僅代碼會變得簡單,而且計算時會更加有效率

另外疲陕,矩陣的乘是有順序的方淤,且前一個矩陣的column必須與后一個矩陣的row相等。
比如一個3 x 2矩陣只能跟一個2 x n矩陣相乘蹄殃,結(jié)果為3 x n矩陣
最后關(guān)于矩陣的乘携茂,可以參考線性代數(shù)之矩陣

Matrix-Matrix Multiplication

矩陣乘有的時候是比較繞的,我覺得Andrew講解的非常好窃爷,基本上我們需要把第二個矩陣分解成向量邑蒋,然后用第一個矩陣分別于這些向量相乘姓蜂,得到一個新的向量,最終再把所有的結(jié)果向量組合在一起就是最終結(jié)果医吊。
矩陣和矩陣乘主要用于有多個假設(shè)h(x)的時候钱慢,這個時候第二個矩陣的每個向量都對應一個假設(shè)。
這塊看Andrew的視頻會非常清楚卿堂,不再贅述束莫,需要注意的是
矩陣是有順序的,而且第一個矩陣的列數(shù)必須與第二個矩陣的行數(shù)相等
A x B草描, 如果A為m, n矩陣览绿, 那么B就必須為n,x矩陣穗慕,結(jié)果是m饿敲, x矩陣

Matrix Multiplication Properties

此小節(jié)主要介紹了矩陣乘法的幾個屬性:

  • 非community屬性:community屬性指乘號兩邊的變量可以交換順序,即ab = ba逛绵,但是對于矩陣而言怀各,通常是非community的,即AB != BA
  • associative屬性:指當有多個乘數(shù)的時候术浪,先計算前邊的乘和先計算后邊的乘是一樣的瓢对,即a * b * c = a * (b * c) = (a * b) * c,而矩陣是associative的胰苏,即A * (B * C) = (A * B) * C
    之后Andrew引入了單位矩陣的概念(identity matrix)硕蛹,單位矩陣與方形矩陣相乘的時候是community的,即I * A = A * I硕并,關(guān)于單位矩陣法焰,可以參考線性代數(shù)之矩陣

Inverse and Transpose

此小節(jié)主要講了什么是逆矩陣(inverse matrix), 以及什么是轉(zhuǎn)置矩陣(transpose of matrix)。
逆矩陣的計算比較復雜鲤孵,涉及到行列式和余子式的概念壶栋,Andrew沒有在課程上講,可以參考線性代數(shù)之矩陣以及線性代數(shù)之逆矩陣普监。Andrew演示了通過octave來自動計算逆矩陣的方式。需要注意的是琉兜,并不是所有的square matrix都有逆矩陣凯正,如果矩陣是奇異的singular或者退化的degenerate時,是沒有逆矩陣的豌蟋。

矩陣的轉(zhuǎn)置廊散,簡單來說就是把行轉(zhuǎn)為列,如下:


matrix

transpose

即一個m x n matrix轉(zhuǎn)置后變?yōu)閚 x m matrix梧疲,且滿足


transpose
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末允睹,一起剝皮案震驚了整個濱河市运准,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌缭受,老刑警劉巖胁澳,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異米者,居然都是意外死亡韭畸,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進店門蔓搞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來胰丁,“玉大人,你說我怎么就攤上這事喂分〗跤梗” “怎么了?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵蒲祈,是天一觀的道長酸员。 經(jīng)常有香客問我,道長讳嘱,這世上最難降的妖魔是什么幔嗦? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮沥潭,結(jié)果婚禮上邀泉,老公的妹妹穿的比我還像新娘。我一直安慰自己钝鸽,他們只是感情好汇恤,可當我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著拔恰,像睡著了一般因谎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上颜懊,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天财岔,我揣著相機與錄音,去河邊找鬼河爹。 笑死匠璧,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的咸这。 我是一名探鬼主播夷恍,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼媳维!你這毒婦竟也來了酿雪?” 一聲冷哼從身側(cè)響起遏暴,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎指黎,沒想到半個月后朋凉,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡袋励,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年侥啤,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片茬故。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡盖灸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出磺芭,到底是詐尸還是另有隱情赁炎,我是刑警寧澤,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布钾腺,位于F島的核電站徙垫,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏放棒。R本人自食惡果不足惜姻报,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望间螟。 院中可真熱鬧吴旋,春花似錦、人聲如沸厢破。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽摩泪。三九已至笆焰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間见坑,已是汗流浹背嚷掠。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留鳄梅,地道東北人叠国。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像戴尸,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子冤狡,可洞房花燭夜當晚...
    茶點故事閱讀 44,955評論 2 355