Stanford機器學(xué)習(xí)---第六講. 怎樣選擇機器學(xué)習(xí)方法、系統(tǒng)

原文:http://blog.csdn.net/abcjennifer/article/details/7797502

本欄目(Machine learning)包括單參數(shù)的線性回歸、多參數(shù)的線性回歸、Octave Tutorial、Logistic Regression、Regularization、神經(jīng)網(wǎng)絡(luò)、機器學(xué)習(xí)系統(tǒng)設(shè)計、SVM(Support Vector Machines 支持向量機)、聚類、降維、異常檢測、大規(guī)模機器學(xué)習(xí)等章節(jié)。所有內(nèi)容均來自Standford公開課machine learning中Andrew老師的講解。(https://class.coursera.org/ml/class/index

第六講. 怎樣選擇機器學(xué)習(xí)方法——Advice for applying machine learning

===============================

候選機器學(xué)習(xí)方法

評價方法假設(shè)

☆模型選擇和訓(xùn)練、驗證實驗數(shù)據(jù)

☆區(qū)別診斷偏離bias和偏差variance

☆規(guī)則化 和 bias/variance

Learning Curve:什么時候增加訓(xùn)練數(shù)據(jù)training set才是有效的?

===============================

候選機器學(xué)習(xí)方法——Deciding what to try next

還用房價的prediction舉例,假設(shè)我們已經(jīng)實現(xiàn)了用規(guī)則化的線性回歸方法預(yù)測房價:

但發(fā)現(xiàn)該預(yù)測應(yīng)用于一個新的訓(xùn)練數(shù)據(jù)上時有很大誤差(error),這時應(yīng)采取一些解決方案:

Get more training examples

Try smaller sets of features

Try getting additional features

Try adding polynomial features (e.g. ?x1^2, x2^2, x1x2...)

Try decreasing λ

Try increasing λ


Machine Learning 方法的診斷:

-?什么是診斷Dignostic呢?診斷就是能夠判斷一種學(xué)習(xí)算法能不能work,并且改善該算法性能的一個測試。

Diagnostic: A test that you can run to gain insight what is/isn't working with a learning algorithm, and gain guidance as to how best to improve its performance.

-診斷的效果:Diagnostics can take time to implement, but doing so can be a very good use of your time.

===============================

評價方法假設(shè)——Evaluating a hypothesis

首先呢,我們將所有數(shù)據(jù)分為兩個集合,一個Trainning set和一個Testing set,用Training set得到參數(shù)向量,用Testing set進行測試(比如分類)。

這時,將test set的error分為線性回歸linear regression和邏輯回歸logistic regression兩類:

-線性回歸的error:

-邏輯回歸的error:

===============================

模型選擇和訓(xùn)練、驗證實驗數(shù)據(jù)

面對模型選擇問題,如何才能得到一個just fit的模型而不會導(dǎo)致underfit 或者overfit呢?我們引入一類數(shù)據(jù)集,叫做cross validation set,即交叉驗證數(shù)據(jù)集。將所有數(shù)據(jù)按<6,2,2>分為training set , cross validation set , testing set三類,如下圖所示:

其error計算公式如下,其實三類計算方法大同小異,相同的公式只是換了數(shù)據(jù)及而已:

進行模型選擇的方法其實很簡單,對應(yīng)下圖大家來看:

-首先,建立d個model 假設(shè)(圖中有10個,d表示其id),分別在training set 上求使其training error最小的θ向量,那么得到d個θ

-然后,對這d個model假設(shè),帶入θ,在cross validation set上計算J(cv),即cv set error最小的一個model 作為 hypothesis,如下圖中J(cv)在第4組中最小,便取d=4的假設(shè)。

PS: 其實d表示dimension,也就是維度,表示該hypothesis的最大polynomial項是d維的。

PS': 一般地,J(cv)是大于等于J(train)的

===============================

區(qū)別診斷偏離bias和偏差variance

前面的課程中我們曾講過相同數(shù)據(jù)不同回歸情況:

這一節(jié)中,我們給大家區(qū)分兩個概念:bias?vs.?variance。

如下圖所示為error隨不同dimension的model變化圖,可以想見,隨d上升是一個由underfit到overfit的過程,這個過程中,training set的error逐漸下降,而cv set的error先降后升。

這里就產(chǎn)生了bias和variance的概念:

bias:J(train)大,J(cv)大,J(train)≈J(cv),bias產(chǎn)生于d小,underfit階段;

variance:J(train)小,J(cv)大,J(train)<<J(cv),variance產(chǎn)生于d大,overfit階段;

如下圖所示:

來來,做道題:

-------------------------------------------------------------

好,有了初步概念,現(xiàn)在我們來看bias和variance的由來及具體定義:

給定數(shù)據(jù)及D(比如一個點集吧),對于這些數(shù)據(jù)集上的點我們可以計算每個index下點的平均值(即期望)t(x) = E(y|x),則我們有mean square error:

MSE = 1/n * Σ(f(x)-t(x))^2

MSE(mean square error) = Bias2 + Variance +noise

定義上是這么講的:

Variance: measures the extent to which the solutions for individual data sets vary around their average, hence this measures the extent to which the function f(x) is sensitive to theparticular choice of data set.

Bias: represents the extent to which the average prediction over all data sets differs from the desired regression function.

Our goal is to minimize the expected loss, which we havedecomposed into the?sum of a (squared) bias, a variance, and a constant noiseterm. As we shall see, there?is a trade-off between bias and variance, with very flexible models(overfit) having low bias?and high variance, and relatively rigid models(underfit) having high bias and low variance


總結(jié)一下:

variance:估計本身的方差。

bias:估計的期望和樣本數(shù)據(jù)樣本希望得到的回歸函數(shù)之間的差別。

具體來講,我有一個統(tǒng)計量D(比如統(tǒng)計某大學(xué)研一學(xué)生身高在[0.5-1],[1,1.1],[1.1,1.2]……[1.9,2]之間的人數(shù)),這樣可以形成一些離散點。然后呢,本校研一有20個班,每個班就都可以擬合成一條估計曲線f(x),這20條曲線呢,有一個平均值,也就是估計期望(均值)曲線E(f(x,D))。

variance是指,這20條估計曲線與最后估計期望(均值)之間的距離,也就是估計曲線本身的方差,是不可能為0的。

bias是指,20條估計曲線的均值與實際最佳擬合情況之間的距離。

這樣一來呢,對于regularization項中的λ,

λ小 , d大 -> overfit(flexible) ->

對于不同的訓(xùn)練數(shù)據(jù)集(不同班級的數(shù)據(jù))的擬合結(jié)果抖動很大 -> variance大

bias是估計均值與實際值期望的偏差 -> bias小

下圖中,左圖為擬合的20條曲線;右圖紅線為20條曲線的期望,綠色為實際數(shù)據(jù)期望所得的擬合曲線。

λ大 , d小 -> underfit(stable) ->

對于不同的訓(xùn)練數(shù)據(jù)集(不同班級的數(shù)據(jù))的擬合結(jié)果抖動較小 -> variance小

bias是估計均值與實際值期望的偏差 ,不能很好地進行回歸-> bias大

下圖中,左圖為擬合的20條曲線;右圖紅線為20條曲線的期望,綠色為實際數(shù)據(jù)期望所得的擬合曲線。

下圖所示為λ與bias, variance, error之間的關(guān)系:

我們希望的數(shù)據(jù)的variance和bias都不要大:

那么著就是一個variance和bias之間的tradeoff 了~

===============================

規(guī)則化 和 bias/variance

上面一節(jié)中講了bias和variance的誕生,那么這一節(jié)中偶們就將他們應(yīng)用于regularization中。

大家還記的什么是regularization么?regularization就是為了防止overfit而在cost function中引入的一個分量。

還不清楚?看下圖吧,regularization項就是cost function J(θ)中的最后一項,其中λ太大導(dǎo)致underfit,λ太小導(dǎo)致overfit……

將λ從0,0.01,一直往上每次乘以2,那么到10.24總共可以試12次λ。

這12個λ會得到12個model的 cost function,每個對應(yīng)有J(θ)和 Jcv(θ).

和模型選擇的方法相同,首先選出每個cost function下令J(θ)最小的θ,然后取出令Jcv(θ)最小的一組定為最終的λ。

來來,看看你做的對不:

圖畫出來就是這個樣子滴:

λ太小導(dǎo)致overfit,產(chǎn)生variance,J(train)<<J(cv)

λ太大導(dǎo)致underfit,產(chǎn)生bias,J(train) ≈ J(cv)

能明白我的意思么?

===============================

Learning Curve:什么時候增加訓(xùn)練數(shù)據(jù)training set才是有效的?

這一小節(jié)想要講講訓(xùn)練數(shù)據(jù)個數(shù)m和error之間的關(guān)系。從上面這幅圖中我們可知(不知的話用極限思維想想),訓(xùn)練數(shù)據(jù)越少(如果只有一個),J(train)越小,J(cv)越大;m越大,J(train)越大(因為越難perfectly擬合),J(cv)越小(因為越精確),懂我的意思吧?

那么我們分別就High Bias 和 High Variance來看看增加training set個數(shù),即m,是否有意義?!

Underfit 的 High bias: 增加m無濟于事!

Overfit的 High Variance: 增加m使得J(train)和J(cv)之間gap減小,有助于performance提高!

來來,做道題:

由圖中可見,增加訓(xùn)練數(shù)據(jù)的個數(shù)對于過擬合是有用的,對于underfit是徒勞!

下面總結(jié)一下,重溫最初的解決方案列表:

針對underfit和overfit,分別是什么情況呢?見下圖:

這章非常有用,講了選擇最佳擬合model的問題,是machine learning的常見問題,希望能對大家選擇ml 模型有所幫助。

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

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