1. 程式人生 > >吳恩達機器學習:方差與偏差

吳恩達機器學習:方差與偏差

在前幾周的課程裡,我們已經學習了 監督學習 中的 線性迴歸邏輯迴歸神經網路( 點選進入筆記 )。回顧課程作業,所有的樣本資料都被用來訓練模型。驗證模型時,也只是將模型的資料結果與正確結果作對比來看正確率。 這樣的訓練方法是否正確?正確率是否能作為評價模型的標準?這周就將學習如何評價我們的模型,以及如何採取正確有效的改進策略。

點選 課程視訊 你就能不間斷地學習 Ng 的課程,關於課程作業的 Python 程式碼已經放到了 Github 上,點選 課程程式碼 就能去 Github 檢視( 無法訪問 Github 的話可以點選 Coding 檢視 ),程式碼中的錯誤和改進歡迎大家指出。

以下是 Ng 機器學習課程第五週的筆記。

改進策略

對於 預測函式,我們通常會使用以下幾種手段來改進:

  1. 採集更多的樣本資料
  2. 減少特徵數量,去除非主要的特徵
  3. 引入更多的相關特徵
  4. 採用多項式特徵
  5. 減小正則化引數 λ
  6. 增加正則化引數 λ

Andrew Ng 告訴大家,他見過很多開發者盲目地使用改進策略,為此耗費了大量的時間和精力,卻沒什麼效果。所以我們需要一些依據來幫助我們選擇合適的策略。

資料集劃分

為了評價模型,我們通常將資料集分為三個部分,60%訓練集20%交叉驗證集20%測試集,並使用 誤差 作為模型使用在這些集合上的評價,誤差 的形式與之前的 代價函式

相同( 線性迴歸誤差函式如下 )。

Js(θ)=12msi=1ms(hθ(xs(i))ys(i))2(s=train,cv,test)

在被劃分的集合中,我們使用 訓練集 來訓練引數 θ,使用 交叉驗證集 來選擇模型( 比如該使用多少次的多項式特徵 ),使用 測試集 來評估模型的預測能力。

方差與偏差

當我們的模型表現不佳時,通常是出現兩種問題,一種是 高偏差 問題,另一種是 高方差 問題。識別它們有助於選擇正確的優化方式,所以我們先來看下 偏差方差 的意義。
- 偏差

: 描述模型輸出結果的期望與樣本真實結果的差距。
- 方差: 描述模型對於給定值的輸出穩定性。
這裡寫圖片描述
就像打靶一樣,偏差描述了我們的射擊總體是否偏離了我們的目標,而方差描述了射擊準不準。接下來讓我們通過各種情況下 訓練集交叉驗證集誤差 曲線來直觀地理解 高偏差 與 高方差 的意義。

對於 多項式迴歸,當次數選取較低時,我們的 訓練集誤差 和 交叉驗證集誤差 都會很大;當次數選擇剛好時,訓練集誤差 和 交叉驗證集誤差 都很小;當次數過大時會產生過擬合,雖然 訓練集誤差 很小,但 交叉驗證集誤差 會很大( 關係圖如下 )。
這裡寫圖片描述
所以我們可以計算 Jtrain(θ)Jcv(θ),如果他們同時很大的話,就是遇到了高偏差問題,而 Jcv(θ)Jtrain(θ) 大很多的話,則是遇到了高方差問題。

對於 正則化 引數,使用同樣的分析方法,當引數比較小時容易產生過擬合現象,也就是高方差問題。而引數比較大時容易產生欠擬合現象,也就是高偏差問題。
這裡寫圖片描述

學習曲線

無論你是要檢查你的學習演算法是否正常工作或是要改進演算法的表現,學習曲線 都是一個十分直觀有效的工具。學習曲線 的橫軸是樣本數,縱軸為 訓練集交叉驗證集誤差。所以在一開始,由於樣本數很少,Jtrain(θ) 幾乎沒有,而 Jcv(θ) 則非常大。隨著樣本數的增加,Jtrain(θ) 不斷增大,而 Jcv(θ) 因為訓練資料增加而擬合得更好因此下降。所以 學習曲線 看上去如下圖:
這裡寫圖片描述
在高偏差的情形下,Jtrain(θ)Jcv(θ) 已經十分接近,但是 誤差 很大。這時候一味地增加樣本數並不能給演算法的效能帶來提升。
這裡寫圖片描述
在高方差的情形下,Jtrain(θ)誤差 較小,Jcv(θ) 比較大,這時蒐集更多的樣本很可能帶來幫助。
這裡寫圖片描述

總結

有了以上的分析手段,就能夠得出在何種場景下使用我們的改進策略:

  1. [高方差] 採集更多的樣本資料
  2. [高方差] 減少特徵數量,去除非主要的特徵
  3. [高偏差] 引入更多的相關特徵
  4. [高偏差] 採用多項式特徵
  5. [高偏差] 減小正則化引數 λ
  6. [高方差] 增加正則化引數 λ

So~,第五週的內容就是這些了,謝謝大家耐心閱讀。

相關推薦

機器學習偏差

在前幾周的課程裡,我們已經學習了 監督學習 中的 線性迴歸、邏輯迴歸、神經網路( 點選進入筆記 )。回顧課程作業,所有的樣本資料都被用來訓練模型。驗證模型時,也只是將模型的資料結果與正確結果作對比來看正確率。 這樣的訓練方法是否正確?正確率是否能作為評價模型的標

機器學習異常檢測協同過濾

這是吳恩達機器學習的最後一課,這次學習的內容是機器學習的常見應用,異常檢測與協同過濾。課程中介紹的異常檢測主要基於 正態分佈,用於檢測出偏離正常值的資料。而協同過濾是 推薦系統 的一部分,利用已有使用者的評分來給你推薦商品、視訊等。 點選 課程視訊 你就能不間

機器學習支援向量機

這次的課程筆記和上次隔了好久,因為為了搞懂 SVM 花了不少時間。和之前 神經網路 課程一樣,Ng 在 Coursera 上講述的內容非常有限,要搞懂 SVM 你只能尋求於其他方面的資料。經過對網上一些內容的對比後發現斯坦福的 CS229 講義寫得非常清晰。CS

機器學習線性迴歸

首先說一些關於課程的題外話。對於 Ng 的這個課程,筆者沒有選擇在 Coursera 上學習課程,一來是因為 Coursera 有自己的課程週期,但這個週期不一定適合所有人。其次 Coursera 的課程作業是使用 Octave 語言,而筆者個人覺得不管是學習還

機器學習中協矩陣的向量表示推導

一、多維隨機變數的協方差矩陣 對多維隨機變數列向量,我們往往需要計算各維度之間的協方差,這樣協方差就組成了一個n×nn×n的矩陣,稱為協方差矩陣。協方差矩陣是一個對角矩陣,對角線上的元素是各維度上隨機變數的方差。 我們定義協方差為, 矩陣內的元素為  協方差矩陣為 

-機器學習(6)-評估學習演算法、偏差、構架垃圾郵件分類器、處理傾斜資料

文章目錄 Evaluating a Learing Algorithm Decidding what to try next Evaluating your hypothesis Bias

斯坦福大學() 機器學習課後習題詳解 第六週 程式設計題 正則化線性迴歸以及偏差

作業下載地址:https://download.csdn.net/download/wwangfabei1989/103031341. 正則化線性迴歸代價函式 linearRegCostFunctionfunction [J, grad] = linearRegCostFun

機器學習筆記 —— 19 應用舉例照片OCR(光學字符識別)

參考 https ocr 噪聲 也說 字符 www. 定位 cnblogs http://www.cnblogs.com/xing901022/p/9374258.html 本章講述的是一個復雜的機器學習系統,通過它可以看到機器學習的系統是如何組裝起來的;另外也說明了一

演算法工程師修仙之路機器學習(九)

吳恩達機器學習筆記及作業程式碼實現中文版 神經網路引數的反向傳播演算法 代價函式 假設神經網路的訓練樣本有 m

演算法工程師修仙之路機器學習(八)

吳恩達機器學習筆記及作業程式碼實現中文版 第六章 神經網路學習 特徵和直觀理解 從本質上講,神經網路能夠通過學習得出其自身的一系列特徵。 神經網路中,單層神經元( 無中間層)的計算可用來表示邏輯運算,比如邏輯與(AND)、邏輯或(OR)。 邏輯

演算法工程師修仙之路機器學習(七)

吳恩達機器學習筆記及作業程式碼實現中文版 第六章 神經網路學習 非線性假設 無論是線性迴歸還是邏輯迴歸都有這樣一個缺點:當特徵太多時,計算的負荷會非常大。 使用非線性的多項式項,能夠幫助我們建立更好的分類模型。假設我們有非常多的特徵,例如大於 100 個

演算法工程師修仙之路機器學習(六)

吳恩達機器學習筆記及作業程式碼實現中文版 第五章 正則化 過擬合問題 線性迴歸和邏輯迴歸能夠有效地解決許多問題,但是當將它們應用到某些特定的機器學習應用時,會遇到過擬合(over-fitting)的問題,可能會導致它們效果很差。 正則化(regulari

演算法工程師修仙之路機器學習(五)

吳恩達機器學習筆記及作業程式碼實現中文版 第四章 Logistic迴歸 簡化代價函式與梯度下降 邏輯迴歸的代價函式: C

演算法工程師修仙之路機器學習(四)

吳恩達機器學習筆記及作業程式碼實現中文版 第四章 Logistic迴歸 分類 在分類問題中,要預測的變數y是離散的值,邏輯迴歸 (Logistic Regression) 演算法是目前最流行使用最廣泛的一種學習演算法。 在分類問題中,我們嘗試預測的是結果

演算法工程師修仙之路機器學習作業(一)

吳恩達機器學習筆記及作業程式碼實現中文版 第一個程式設計作業:單變數線性迴歸(python程式碼實現) 一元線性迴歸 問題描述 在本練習的這一部分中,您將使用只有單變數的線性迴歸方法預測餐車的利潤。 假設你是一家連鎖餐廳的執行長,正在

演算法工程師修仙之路機器學習(三)

吳恩達機器學習筆記及作業程式碼實現中文版 第三章 多變數線性迴歸 多維特徵 現在我們對房價模型增加更多的特徵,例如房間數樓層等,構成一個含有多個變數的模型,模型中的特徵為

演算法工程師修仙之路機器學習(二)

吳恩達機器學習筆記及作業程式碼實現中文版 第二章 單變數線性迴歸 模型描述 我們使用一個監督學習演算法的例子:預測住房價格。 我們要使用一個數據集,資料集包含俄勒岡州波特蘭市的住房價格。 在這裡,我要根據不同房屋尺寸所售出的價格,畫出我的資

演算法工程師修仙之路機器學習(一)

吳恩達機器學習筆記及作業程式碼實現中文版 第一章 緒論:初識機器學習 什麼是機器學習 Machine Learning(機器學習)是研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的效能。 機器學習被用

機器學習第七次作業Part1 K-means聚類演算法

這是習題和答案的下載地址,全網最便宜,只要一積分哦~~~ 0.綜述 學習K-means聚類演算法,並對一幅影象進行畫素壓縮。 1.Find Closest Centroids 這是指令碼 %% ================= Part 1: Find Clo

機器學習第八次作業 異常檢測Anomaly Detection

這是習題和答案的下載地址,全網最便宜,只要一積分哦~~~ 0.綜述 異常檢測演算法用於檢測異常資料,通常在異常資料的數量遠小於正常資料的數量時使用異常檢測演算法,在兩者數量相差不大的時候,我們通常會選擇邏輯迴歸或神經網路等演算法。 1.Load Example Da