1. 程式人生 > >斯坦福2014機器學習筆記七----應用機器學習的建議

斯坦福2014機器學習筆記七----應用機器學習的建議

訓練集 image 是的 bsp 推斷 學習曲線 正則 偏差 wid

一、綱要

  糾正較大誤差的方法

  模型選擇問題之目標函數階數的選擇

  模型選擇問題之正則化參數λ的選擇

  學習曲線

二、內容詳述

  1、糾正較大誤差的方法

  當我們運用訓練好了的模型來做預測時,發現會有較大的誤差,這時我們有哪些解決方法呢?

    (1)獲得更多的訓練集

    (2)減少特征的數量

    (3)增加特征的數量

    (4)增加多項式特征

    (5)減少正則化參數λ

    (6)增大正則化參數λ

  知道有這些方法,那我們應該選哪一種方法使用呢?當然不能是隨機選擇啦,下面的部分就會講解針對不同情況應該選擇的方法!

  2、模型選擇問題之目標階數的選擇

  我們先介紹該如何評價你的機器學習算法?我們可以將數據集按7:3分為訓練集和測試集,訓練集的作用就是用來訓練模型,測試集的作用就是來評價機器學習算法的性能。這裏我們用Jtrain

(θ)來表示訓練集誤差,用Jtest(θ)來表示測試集誤差。訓練集誤差和測試機誤差與代價函數相比就是少了正則項,其他都一樣。公式表示如下

技術分享

  當我們求解線性回歸問題時,我們應該怎麽選取假設函數呢?假設函數的最高次項又應該怎麽選呢?例如

技術分享

  顯然多項式次數越高越能完美的擬合訓練集中的數據,但是這也會同時帶來過擬合的問題,即雖然完美的擬合了訓練集的數據,但卻在進行預測數據的時候表現的不好。這個問題應該怎麽解決?這裏的解決方法是利用上面說的將數據集分為訓練集和測試集,利用訓練集分別訓練10個不同的模型(hθ(x))得到10組參數θ(1)(2),...,θ(10),然後再代入測試機數據算出測試集誤差,從中選擇使得測試機誤差最小的結束d。這樣做完你會發現,如果再用測試集數據對你的算法進行評價,那是沒有什麽意義的,因為在選擇階數d的時候已經用過測試集數據對假設函數進行擬合了,所以這裏我們通常會把數據集分為三部分,訓練集:驗證集:測試集=6:2:2,利用驗證集數據去選擇階數d,之後再用測試集數據對算法進行評價。下面我們先給出誤差函數與階數d的曲線圖再作說明。

技術分享 技術分享

Jcv(θ)表示驗證集誤差函數,橫坐標表示階數d,我們可以想象的到,當然如果感覺想象的模糊的話,右上圖給了簡單的例子來幫助理解,當階數d比較小時,通常就是欠擬合的狀態,這個時候訓練集誤差函數Jtrain(θ)是比較大的,但當d逐漸增大至過擬合狀態,這個時候假設函數對訓練集的擬合是非常完美的,所以訓練集誤差函數Jtrain(θ)就隨著d的增大而減小。而驗證集誤差函數Jcv(θ)呢?d比較小時,欠擬合,這個時候假設函數對新數據的預測不是很好,所以驗證集誤差函數Jcv(θ)比較大,當d增大至過擬合時,我們從之前的學習中知道,過擬合狀態的假設函數對新數據預測的效果也不是很好,而只有當階數d合適的時候,既不是欠擬合也不是過擬合,這時候的假設函數對新數據的預測就表現的比較好了,驗證集誤差函數Jcv

(θ)也就比較小,所以根據這些推理,我們畫出了左上圖中的曲線。

  我們可以根據上圖中的曲線來推斷假設函數的狀態,如果Jcv(θ)與Jtrain(θ)大致相等,我們可以認為這時候假設函數處於欠擬合狀態,高偏差(high bias);如果Jcv(θ)>>Jtrain(θ),我們可以認為這時候假設函數處於過擬合狀態,高方差(high variance)。

  3、模型選擇問題之正則化參數λ的選擇

  當λ比較大時,我們在代價函數最小化的過程中會產生所有的θ1,θ2,...,θn都趨於0,這樣的話又變成了欠擬合狀態。而λ較小時,正則化產生的效果又不明顯,產生的就是過擬合問題,所以我們也可以畫出誤差函數與λ的曲線圖

技術分享

知道了這個,我們怎樣選擇合適的λ呢?跟上面選擇θ時一樣,我們可以假設12組λ,並利用訓練集訓練出模型得到參數θ。然後利用驗證集數據將θ和12組λ代入假設函數中,算出驗證集誤差,根據驗證集誤差最小選擇出合適的λ。

  4、學習曲線

  我們利用在高偏差和高方差時數據集數量m與誤差函數的關系畫出曲線

技術分享 技術分享

從圖中我們可以看出,當處於高偏差時,訓練集誤差函數Jtrain(θ)和驗證集誤差函數Jcv(θ)隨著m的增大而逐漸趨於平緩,所以增加數據集對高偏差(欠擬合)情況沒有改善;當處於高方差時,增加數據集數量可以是的Jcv(θ)持續下降,這時就是有效的。

  所以,總結一下:

    當處於高偏差(欠擬合)情況下,我們可以采用的方法是:增加特征變量數,或減小λ;

    當處於高方差(過擬合)情況下,我們可以采用的方法是:增加數據集,或增大λ,或挑選部分特征變量;

斯坦福2014機器學習筆記七----應用機器學習的建議