机器学习基础-吴恩达-coursera-(第一周学习笔记)----Introduction and Linear Regression
課程網(wǎng)址:https://www.coursera.org/learn/machine-learning
Week 1 —— Introduction and Linear Regression
目錄
- Week 1 Introduction and Linear Regression
- 目錄
- 一 介紹
- 1-1 機器學習概念及應用
- 1-2 機器學習分類
- 二 單變量的線性回歸
- 2-1 假設函數(shù)hypothesis
- 2-2 線性回歸的表示
- 2-3 Cost function 代價函數(shù)
- 2-4 參數(shù)求解梯度下降法 Gradient Descent
- 2-5 梯度下降如何實現(xiàn)最小化代價函數(shù)
- 2-6 學習率learning rate
- 2-7 三種梯度下降方式
- 三 總結
一 介紹
1-1 機器學習概念及應用
(1)Arthur Samuel 將其描述為:the field of study that gives computers the ability to learn without being explicitly programme.
讓計算機有學習的能力,而不是明確的程序。
(2)另一種更為現(xiàn)代化的定義是:A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.
一個計算機程序被定義為從經驗E學習一些分類任務T和性能測量P,如果它在任務T中的性能(由P測量)隨著經驗E提升。
機器學習有下面幾種定義: “機器學習是一門人工智能的科學,該領域的主要研究對象是人工智能,特別是如何在經驗學習中改善具體算法的性能”。 “機器學習是對能通過經驗自動改進的計算機算法的研究”。 “機器學習是用數(shù)據(jù)或以往的經驗,以此優(yōu)化計算機程序的性能標準。” 一種經常引用的英文定義是:A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.
機器學習已經有了十分廣泛的應用,例如:數(shù)據(jù)挖掘、計算機視覺、自然語言處理、生物特征識別、搜索引擎、醫(yī)學診斷、檢測信用卡欺詐、證券市場分析、DNA序列測序、語音和手寫識別、戰(zhàn)略游戲和機器人運用。
1-2 機器學習分類
監(jiān)督學習 Supervised learning (已知經驗數(shù)據(jù)E的對錯標簽“p”)
1.回歸問題 regression(輸入、**輸出:連續(xù)值**)
predict continuous valued output,即需要預測的變量是連續(xù)的。
例如:已知一組數(shù)據(jù),包含房屋的面積(x)和對應的價格(y),預測當房屋面積為特定值時(x=x0)對應的價格為多少。
2.分類問題 classification(輸入、**輸出:離散值**)
discrete valued output,即需要預測的變量的離散的(0 or 1)。
例如:已知一組數(shù)據(jù),包含腫瘤的大小(size)和對應的性質(良性/惡性)(0/1),當給出腫瘤的大小時,判斷其為良性還是惡性。
非監(jiān)督學習 Unsupervised learning(有以往數(shù)據(jù),但不知道他們的分類)
1.聚類 clustering
網(wǎng)頁將每天發(fā)生的各類新聞分類,相似的新聞會歸到一類。
將數(shù)據(jù)按照其內部存在的某種屬性關系就行歸類,是一種無監(jiān)督學習方式,不需要提供預測的標簽信息。
2.非聚類 non-clustering
The “Cocktail Party Algorithm”,將人說話的聲音與背景音樂分離。
異常點檢測等問題!也是屬于非監(jiān)督學習,但是可以認為其為聚類的問題
二 單變量的線性回歸
2-1 假設函數(shù)(hypothesis)
首先我們定義幾個符號:
對于監(jiān)督學習,我們的目標是,給定一個數(shù)據(jù)集,通過學習算法得到一個函數(shù) h:X→Y,使得可以從 h(x) 中很好的預測出與x相對應的y值。函數(shù)h被稱之為假設函數(shù)(hypothesis)。
以房價預測為例,房屋面積為x,預計房價值為y,對于單變量線性回歸,我們可以設假設函數(shù)(hypothesis function)為:hθ(x)=θ0+θ1x。hθ(x)可以簡寫為h(x)。整個過程可以用下圖表示:
2-2 線性回歸的表示
預測房價的例子。 像這樣用一條直線來模擬房價走勢,就叫做線性回歸。
這個問題屬于監(jiān)督問題,每個樣本都給出了準確的答案。
同時因為房價是連續(xù)值,所以這是一個回歸問題,對給定值預測實際輸出。
公式:
hθ(x)=θ0+θ1?x
其中兩個θ是位置參數(shù),我們的目的是求出他倆的值。
2-3 Cost function (代價函數(shù))
我們取怎樣的θ值可以使預測值更加準確呢?
想想看,我們應使得每一個預測值hθ和真實值y差別不大,可以定義代價函數(shù)如下:
這樣,只需要通過使J值取最小,即可滿足需求,那么怎么使J最小化呢?
看圖:誤差與兩個參數(shù)的關系。
我們看到通過改變斜線的斜率 誤差變得很小。也就是選擇了上圖的中心圈子里。
下面為了方便講解,我們不使用這樣的三維曲面,而是用輪廓圖(contour plots)來代替。如下圖所示:
右圖J(θ0,θ1)的輪廓圖,每一個圓圈代表J(θ0,θ1)值相同的所有點的集合。最小值是中心點。
圖中紅色的交叉點代表某個(θ0,θ1)數(shù)值組的集合,θ0=800,θ1=?0.15,同時,也對應與左邊的一條直線。可以看出,它并不能很好地擬合左圖的訓練數(shù)據(jù)。而越接近中心的點(θ0,θ1)越能很好地擬合訓練數(shù)據(jù)。
這里只有兩個參數(shù),而通常我們會遇到更多參數(shù),更加復雜的代價函數(shù),并不能將其可視化,但是我們要做的工作都是一樣的,即找出使代價函數(shù)最小的參數(shù)值θ0、θ1。
2-4 參數(shù)求解(梯度下降法: Gradient Descent)
現(xiàn)在,我們有了假設函數(shù)(hypothesis)以及衡量其是否擬合數(shù)據(jù)的方法——代價函數(shù)(cost function),現(xiàn)在我們需要做的就是估計出假設函數(shù)(hypothesis)中的參數(shù),即找出使代價函數(shù)最小化的參數(shù)(θ0,θ1),梯度下降(gradient descent)是一種常用的方法。
一般情況下,我們會從出發(fā)點開始環(huán)顧四周,找到最快的方向,每走一步,就環(huán)顧四周判斷一次,再走下一步,直到達到局部最小值。而這種方法的特點是從不同的出發(fā)點出發(fā),我們最終到達的可能是不同的局部最優(yōu)解,如圖。關于這個問題,我們之后再進行討論。
紅色箭頭顯示圖中的最小點。我們這樣做的方式是通過我們的代價函數(shù)的導數(shù)(函數(shù)的切線)。切線的斜率是那個點的導數(shù),它會給我們一個走向的方向。我們降低代價函數(shù)的方向與最陡的下降方向一致。每一步的大小由參數(shù)α決定,稱為學習率。
公式如下:
重復計算這個公式,直到函數(shù)收斂。
注意更新theta值應同時更新
其中的α稱之為步長,在最優(yōu)化課中我們有好幾種方法來確定這個α的值。
比如:我們可以使用一些優(yōu)化算法來進行學習率的超參數(shù)的搜索與學習。如:粒子群算法,蟻群算法,遺傳算法等
我們還可以自定義一些規(guī)則,使得該參數(shù)可以自動適應訓練的過程,如:定義隨著迭代步數(shù)增加而指數(shù)衰減的學習率等。
這個α如果過小,則收斂很慢;
如果過大,則可能導致不收斂。
對于J(θ)的偏導數(shù)學推導過程如下:
在這里你就看到,我們在構造J(θ)時1/2的出現(xiàn)就是為了與指數(shù)的在求導時抵消。
其中x是向量,xi是單個樣本。
經過簡單的替換之后我們就可以得到θ新的迭代公式:
2-5 梯度下降如何實現(xiàn)最小化代價函數(shù)
那么為什么梯度下降可以用于最小化代價函數(shù)呢?
梯度下降如何實現(xiàn)一步步更新后,J(θ)越來越靠近最小值(山底)呢?
為了方便說明,我們假設θ0=0,則:
1、若θ1在局部最優(yōu)解的右邊
dJ(θ1)/dθ1永遠大于等于0,且α永遠為正,所以θ1將減小,向坐標軸左側移動,即向代價函數(shù)J(θ1)更小的方向更新。
2、若θ1在局部最優(yōu)解的左邊
dJ(θ1)/dθ1永遠小于等于0,且α永遠為正,所以θ1將增大,向坐標軸右側移動,即向代價函數(shù)J(θ1)更小的方向更新。
3、若θ1已經處于局部最優(yōu)位置
由于該點切線的斜率為0,故θ1將保持不變,此時即使還存在其他θ1的值使代價函數(shù)更小,也只能收斂于該局部最小值,而無法收斂于全局最小值。
2-6 學習率(learning rate)
我們再來看學習率α:
1、 如果α太小,則因為每次更新θ1的幅度太小導致梯度下降收斂很慢,如下圖:
2、如果α太大,則梯度下降可能會跨過最小值不能收斂,甚至離收斂點越來越遠,如下圖:
有趣的是,我們并不需要改變α的值,即使α值固定,梯度下降也能收斂到一個局部最小值。原因是代價函數(shù)在接近局部最小值的過程中,切線的斜率越來越小,即使α固定,梯度下降的步距也會越來越小,最終也能收斂到局部最小值。
2-7 三種梯度下降方式
1、批量梯度下降(batch gradient descent)
上述方法在每一步都會用到所有的訓練數(shù)據(jù)(∑),所以被稱為批量梯度下降(batch gradient descent)。在我們用的這個特殊例子(單變量線性回歸)中,J(θ0,θ1)除了全局最優(yōu)解(global optima)沒有局部最優(yōu)解(local optima)。
將梯度下降用于這種線性回歸,總會收斂到全局最優(yōu)。
批量梯度下降由于是一次性的額導入全部的數(shù)據(jù),所以學習速度比較慢,而且對于大數(shù)據(jù)不適合
2、隨機梯度下降( stochastic gradient descent)
(1)上面的梯度下降算法每次計算梯度都需要遍歷所有的樣本點,這是因為梯度是 J(θ) 的導數(shù),而 J(θ) 是需要考慮所有樣本的誤差和 ,這個方法問題就是,擴展性問題,當樣本點很大的時候,基本就沒法算了。
(2)所以接下來又提出了隨機梯度下降算法(stochastic gradient descent )。隨機梯度下降算法,每次迭代只是考慮讓該樣本點的 J(θ) 趨向最小,而不管其他的樣本點,這樣算法會很快,但是收斂的過程會比較曲折,整體效果上,大多數(shù)時候它只能接近局部最優(yōu)解,而無法真正達到局部最優(yōu)解。所以適合用于較大訓練集的情況。
3、小批量梯度下降(mini batch gradient descent)
后續(xù)會講到,選擇mini batch,可以實現(xiàn)快速學習,也利用了向量化,cost下降處于上兩者之間
三 總結
到這里,我們就學習了一個最最簡單的機器學習模型求解的全部內容。我們梳理一下,一共有三個層次 的 三個公式。
就這么簡單 ,就可以求出一個預測房價的線性回歸模型。
總結
以上是生活随笔為你收集整理的机器学习基础-吴恩达-coursera-(第一周学习笔记)----Introduction and Linear Regression的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《Python Cookbook 3rd
- 下一篇: 《Python Cookbook 3rd