Stanford機器學習---第六講. 怎樣選擇機器學習方法、系統_機器學習

來源:互聯網
上載者:User

本欄目(Machine learning)包括單參數的線性迴歸、多參數的線性迴歸、Octave Tutorial、Logistic Regression、Regularization、神經網路、機器學習系統設計、SVM(Support Vector Machines 支援向量機)、聚類、降維、異常檢測、大規模機器學習等章節。所有內容均來自Standford公開課machine learning中Andrew老師的講解。(https://class.coursera.org/ml/class/index)


第六講. 怎樣選擇機器學習方法——Advice for applying machine learning

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

候選機器學習方法

評價方法假設

☆模型選擇和訓練、驗證實驗資料

☆區別診斷偏離bias和偏差variance

☆規則化 和 bias/variance

Learning Curve:什麼時候增加訓練資料training set才是有效。


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

候選機器學習方法——Deciding what to try next


還用樓價的prediction舉例,假設我們已經實現了用規則化的線性迴歸方法預測樓價:


但發現該預測應用於一個新的訓練資料上時有很大誤差(error),這時應採取一些解決方案:

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呢。診斷就是能夠判斷一種學習演算法能不能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.





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

評價方法假設——Evaluating a hypothesis

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


這時,將test set的error分為線性迴歸linear regression和羅吉斯迴歸logistic regression兩類:

-線性迴歸的error:


-羅吉斯迴歸的error:




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

模型選擇和訓練、驗證實驗資料


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


其error計算公式如下,其實三類計算方法大同小異,相同的公式只是換了資料及而已:



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

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

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

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

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


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

區別診斷偏離bias和偏差variance

前面的課程中我們曾講過相同資料不同迴歸情況:




這一節中,我們給大家區分兩個概念:bias vs. variance。

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




這裡就產生了bias和variance的概念:

bias:J(train)大,J(cv)大,J(train)≈J(cv),bias產生於d小,underfit階段;

variance:J(train)小,J(cv)大,J(train)<<J(cv),variance產生於d大,overfit階段;

如下圖所示:



來來,做道題:




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


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

給定資料及D(比如一個點集吧),對於這些資料集上的點我們可以計算每個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



總結一下:

variance:估計本身的方差。

bias:估計的期望和樣本資料樣本希望得到的迴歸函數之間的差別。


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


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

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


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


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

對於不同的訓練資料集(不同班級的資料)的擬合結果抖動很大 -> variance大 

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

下圖中,左圖為擬合的20條曲線;右圖紅線為20條曲線的期望,綠色為實際資料期望所得的擬合曲線。




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

對於不同的訓練資料集(不同班級的資料)的擬合結果抖動較小 -> variance小

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

下圖中,左圖為擬合的20條曲線;右圖紅線為20條曲線的期望,綠色為實際資料期望所得的擬合曲線。



下圖所示為λ與bias, variance, error之間的關係:




我們希望的資料的variance和bias都不要大:



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







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

規則化 和 bias/variance


上面一節中講了bias和variance的誕生,那麼這一節中偶們就將他們應用於regularization中。

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

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




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

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

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



來來,看看你做的對不:



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



λ太小導致overfit,產生variance,J(train)<<J(cv)

λ太大導致underfit,產生bias,J(train) ≈ J(cv)

能明白我的意思麼。



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

Learning Curve:什麼時候增加訓練資料training set才是有效。


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.