1. 程式人生 > >機器學習演算法中的過擬合與欠擬合

機器學習演算法中的過擬合與欠擬合

在機器學習表現不佳的原因要麼是過度擬合或欠擬合數據。

機器學習中的逼近目標函式過程

監督式機器學習通常理解為逼近一個目標函式(f)(f),此函式對映輸入變數(X)到輸出變數(Y).

Y=f(X)Y=f(X)

這種特性描述可以用於定義分類和預測問題和機器學習演算法的領域。

從訓練資料中學習目標函式的過程中,我們必須考慮的問題是模型在預測新資料時的泛化效能。泛化好壞是很重要的,因為我們收集到的資料只是樣本,其帶有噪音並且是不完全的。

機器學習中的泛化

在In機器學習中,我們描述從訓練資料學習目標函式的學習過程為歸納性的學習。

歸納與特別的樣本中學習到通用的概念有關,而這就是監督式機器學習致力於解決的問題。這與推演不同,其主要是另一種解決問題和尋求從通常的規則中找尋特別的內容。

泛化即是,機器學習模型學習到的概念在它處於學習的過程中時模型沒有遇見過的樣本時候的表現。

好的機器學習模型的模板目標是從問題領域內的訓練資料到任意的資料上泛化效能良好。這讓我們可以在未來對模型沒有見過的資料進行預測

在機器學習領域中,當我們討論一個機器學習模型學習和泛化的好壞時,我們通常使用術語:過擬合和欠擬合.

過擬合和欠擬合是機器學習演算法表現差的兩大原因。

統計擬合

在統計學中,擬合指的是你逼近目標函式的遠近程度。

這個術語同樣可以用於機器學習中,因為監督式機器學習演算法的目標也是逼近一個未知的潛在對映函式,其把輸入變數對映到輸出變數。

統計學通常通過用於描述函式和目標函式逼近的吻合程度來描述擬合的好壞

這類理論中的一些在機器學習中也是有用的(例如,計算殘差),但是一些技巧假設我們已經知道了我們要逼近的函式。這和機器學習的場景就不同了。

如果我們已經知道了目標函式的形式,我們將可以直接用它來做預測,而不是從一堆有噪音的資料中把它費力的學習出來。

機器學習中的過擬合

過擬合指的是referstoa模型對於訓練資料擬合程度過當的情況。

當某個模型過度的學習訓練資料中的細節和噪音,以至於模型在新的資料上表現很差,我們稱過擬合發生了。這意味著訓練資料中的噪音或者隨機波動也被當做概念被模型學習了。而問題就在於這些概念不適用於新的資料,從而導致模型泛化效能的變差。

過擬合更可能在無引數非線性模型中發生,因為學習目標函式的過程是易變的具有彈性的。同樣的,許多的無引數器學習演算法也包括限制約束模型學習概念多少的引數或者技巧。

例如,決策樹就是一種無引數機器學習演算法,非常有彈性並且容易受過擬合訓練資料的影響。這種問題可以通過對學習過後的樹進行剪枝來解決,這種方法就是為了移除一些其學習到的細節。

機器學習中的欠擬合

欠擬合指的是模型在訓練和預測時表現都不好的情況。

一個欠擬合的機器學習模型不是一個良好的模型並且由於在訓練資料上表現不好這是顯然的。

欠擬合通常不被討論,因為給定一個評估模型表現的指標的情況下,欠擬合很容易被發現。矯正方法是繼續學習並且試著更換機器學習演算法。雖然如此,欠擬合與過擬合形成了鮮明的對照。

機器學習中好的擬合

理想上,你肯定想選擇一個正好介於欠擬合和過擬合之間的模型。

這就是我們學習的目標,但是實際上很難達到。

為了理解這個目標,我們可以觀察正在學習訓練資料機器學習演算法的表現。我們可以把這個過程劃分為分別是訓練過程和測試過程

隨著時間進行,演算法不斷地學習,模型在訓練資料和測試資料上的錯誤都在不斷下降。但是,如果我們學習的時間過長的話,模型在訓練資料上的表現將繼續下降,這是因為模型已經過擬合併且學習到了訓練資料中的不恰當的細節以及噪音。同時,測試資料集上的錯誤率開始上升,也即是模型的泛化能力在下降。

這個完美的臨界點就處於測試集上的錯誤率開始上升時,此時模型在訓練集和測試集上都有良好的表現

你可以用你自己喜愛的機器學習演算法來實踐這個實驗。而在實踐中這通常是無用的,因為在測試資料上運用這個技巧來選擇訓練停止的時機,這意味著這個測試集對於我們並不是“不可見的”或者單獨的衡量標準。資料的一些知識(許多有用的知識)已經洩露到了訓練過程。

通常有兩種手段可以幫助你找到這個完美的臨界點:重取樣方法和驗證集方法

如何限制過擬合

過擬合和欠擬合可以導致很差的模型表現。但是到目前為止大部分機器學習實際應用時的問題都是過擬合。

過擬合是個問題因為訓練資料上的機器學習演算法的評價方法與我們最關心的實際上的評價方法,也就是演算法在位置資料上的表現是不一樣的。

當評價機器學習演算法時我們有兩者重要的技巧來限制過擬合:

使用重取樣來評價模型效能
保留一個驗證資料集

最流行的重取樣技術是k折交叉驗證。指的是在訓練資料的子集上訓練和測試模型k次,同時建立對於機器學習模型在未知資料上表現的評估。

驗證集只是訓練資料的子集,你把它保留到你進行機器學習演算法的最後才使用。在訓練資料上選擇和調諧機器學習演算法之後,我們在驗證集上在對於模型進行評估,以便得到一些關於模型在未知資料上的表現的認知。

對於機器學習,使用交叉驗證在未知資料上進行驗證模型效能是一種良好的標準。如果你擁有資料,使用驗證集也是一種良好的實踐。

進一步閱讀

如果你想學習更多關於機器學習中的泛化、過擬合和欠擬合的知識,本節列舉了一些相關的推薦資源。

總結

本文中你學習了機器學習就是以感應方法來解決問題。

你學習了泛化是一種關於模型學習到的知識在未知資料上表現程度的概念描述。最後你學習了機器學習中的術語:泛化中的過擬合與欠擬合:

  • 過擬合:在訓練資料上表現良好,在未知資料上表現差。
  • 欠擬合:在訓練資料和未知資料上表現都很差
  • 什麼是欠擬合和過擬合

    先看三張圖片,這三張圖片是線性迴歸模型 擬合的函式和訓練集的關係

    1. 第一張圖片擬合的函式和訓練集誤差較大,我們稱這種情況為 欠擬合
    2. 第二張圖片擬合的函式和訓練集誤差較小,我們稱這種情況為 合適擬合
    3. 第三張圖片擬合的函式完美的匹配訓練集資料,我們稱這種情況為 過擬合

      

    類似的,對於邏輯迴歸同樣也存在欠擬合和過擬合問題,如下三張圖

      

    2. 如何解決欠擬合和過擬合問題

    欠擬合問題,根本的原因是特徵維度過少,導致擬合的函式無法滿足訓練集,誤差較大。

    欠擬合問題可以通過增加特徵維度來解決

    過擬合問題,根本的原因則是特徵維度過多,導致擬合的函式完美的經過訓練集,但是對新資料的預測結果則較差。

    解決過擬合問題,則有2個途徑

    1. 減少特徵維度; 可以人工選擇保留的特徵,或者模型選擇演算法
    2. 正則化; 保留所有的特徵,通過降低引數θ的值,來影響模型

    3. 正則化

    回到前面過擬合例子, h(x) = θ0 + θ1x1 + θ2x2 + θ3x3 + θ4x4

     

    從圖中可以看出,解決這個過擬合問題可以通過消除特徵x3和x4的影響, 我們稱為對引數的懲罰, 也就是使得引數θ3, θ4接近於0。

    最簡單的方法是對代價函式進行改造,例如

    這樣在求解最小化代價函式的時候使得引數θ3, θ4接近於0。

    正則化其實就是通過對引數θ的懲罰來影響整個模型

    4. 線性迴歸使用正則化

    前面幾篇文章中,線性迴歸的代價函式J(θ)表示式如下

    正則化後,代價函式J(θ)表示式如下,注意j從1開始

    注意λ值不能設定過大,否則會導致求出的引數除了θ0,其它θ1,θ2 ... θn值約等於0,導致預測函式h(x)出現極大偏差

    我們的目標依然是求J(θ)最小值,我們還是用梯度下降演算法正規方程求解最小化J(θ)

    1. 梯度下降演算法(注意需要區分θ0和其它引數的更新等式)

    2. 正規方程

    對於正規方程來,需要修改等式如下

    係數λ 所乘的矩陣為 (n+1)*(n+1)維

    5. 邏輯迴歸使用正則化

    和線性迴歸模型型別,邏輯迴歸也可以通過正則化來解決過擬合問題。

    邏輯迴歸的代價函式J(θ)表示式如下

    正則化邏輯迴歸的代價函式,是在等式後加上一項,注意j從1開始

     

    同樣的用梯度下降演算法求解最小化J(θ),也需要做改變

    不同的是邏輯迴歸模型中的預測函式 h(x)和線性迴歸不同

    今天看了Andrew Ng cs229 Machine Learning 的公開課,很有收穫,雖然對於視訊中公式等的推導還是“暈”,但是,這是一步很好的開端!萬事開頭難!

    術語

    • hypothesis 假設
    • regularization 正則化
    • convex 凸
    • cost function 成本函式
    • polynominal 多項式
    • fit the parameter 擬合引數

    過擬合(overfitting or high variance)

    過擬合又叫高偏差

    現象:

    就是模型太過複雜,力求覆蓋每個資料,對訓練集預測效果非常好!但是,泛化能力不好,一旦用測試集測試,預測結果卻並不好!!!

    線性迴歸和logistic迴歸都存在欠擬合和過擬合的問題。

    原因

    過擬合問題的出現常常因為下面兩個原因: 
    1. 變數多(feature) 
    2. 資料少 
    3. 函式過於複雜

    解決辦法:

    1. reduce features(人工選擇重要的特徵或者模型自動選擇)
    2. regularization-正則化1 
      吳提出的觀點: 

    越小的引數θ,假設就越簡單

    欠擬合(high bias)

    指不能很好地擬合數據,一般是因為模型函式太簡單或者特徵較少。

    參考


相關推薦

no