1. 程式人生 > >學習理論、模型選擇、特徵選擇——斯坦福CS229機器學習個人總結(四)

學習理論、模型選擇、特徵選擇——斯坦福CS229機器學習個人總結(四)

這一份總結裡的主要內容不是演算法,是關於如何對偏差和方差進行權衡、如何選擇模型、如何選擇特徵的內容,通過這些可以在實際中對問題進行更好地選擇與修改模型。

1、學習理論(Learning theory)

1.1、偏差/方差(Bias/variance)

這裡寫圖片描述
圖一

對一個理想的模型來說,它不關心對訓練集合的準確度,而是更關心對從未出現過的全新的測試集進行測試時的效能,即泛化能力(Generalization ability)。
有的模型用在用一個樣本集訓練過後,再用同一個樣本集做預測,這樣得到的模型的準確率非常高。但是,當用這個模型去預測新的資料的時候,效果卻非常不理想。這就是泛化能力弱的表現,這樣的模型非常容易過擬合。

圖一最左邊的圖,用線性模型去擬合一個二次模型,無論該訓練集中有多少樣本,都會不可避免地出現較大的誤差,這種情況被稱為欠擬合,對應著高偏差;
圖一最右邊的圖,用高次模型去擬合一個二次模型,雖然它能夠讓圖中每個樣本點都經過該曲線,但是對於新來的資料可能會強加上一些它們並不擁有的特性(一般是訓練樣本帶來的),這會讓模型非常的敏感,這種情況被稱為過擬合,對應著高方差。

如何選擇一個模型使得它在偏差與方差之間取得一個平衡,是學習理論要解決的問題。在下面“一致收斂的推論”一節中,會得到一個用來權衡偏差、方差的公式,接下來會從頭開始推導這個公式。

1.2、準備知識

開始推導之前要先把一些準備知識提出來,這樣從“一致收斂”中開始的推導會很順利。

聯合界引理(The union bound)

引理:A1,A2,,Ak是k個事件,組合成k集,它們可能相互獨立,也可能步相互獨立,對此,我們有:

P(A1Ak)P(A1)++P(Ak)(1)
它要表達的意思是“K集事件之一發生的概率最多是K集發生的概率之和”。
比如當P(A1Ak
)=P(A1)
,它的概率最多是K集發生的概率之和。

霍夫丁不等式(Hoeffding inequality)

引理:Z1,Z2,Zm為m個獨立同分布事件,它們都服從伯努利分佈,則有:

P(Zi=1)=ϕ,P(Zi=0)=1ϕ
並用Zi的平均值來得到一個ϕ的估計值ϕ^
ϕ^=mi=1Zim(2)
接著對於任意的固定值γ>0,存在:
P(ϕϕ^>γ)2exp(2γ2m)(3)
以上就是霍夫丁不等式,也稱為切爾諾夫界(Chernoff bound)。
這個定理的意義在於,隨著m的增長,右式的指數會持續下降,左式中對引數ϕ^的估計會越來越接近真實值ϕ
(畫個ex的影象就知道了)。

經驗風險最小化(Empirical risk minimization)

下面以二分類問題進行說明。
給定一個訓練集S{(x(i),y(i));i=1,2,,m}(x(i),y(i))是服從概率分佈D的獨立同分布變數,那麼對於一個假設h,我們將假設h訓練誤差(Training error)——也稱為經驗風險(Empirical risk)或者是經驗誤差(Empirical error)——定義為:

ε^=1mi=1mI{h(x(i))y(i)}(4)
它表示:在訓練樣本中,用假設h進行分類,分類失敗數佔總數的百分比。注意它在表示上有帶帽符號

相對應的有一般風險,也稱為一般誤差(Generalization error)

ε=PD(h(x)y)(5)
PD表示(x,y)服從D分佈。
式(5)表示:實際分類中,使用了假設h進行分類,樣本不服從D分佈的概率。它在表示上無帶帽符號

在我的理解中,訓練誤差是訓練中產生的誤差,一般誤差是實際預測、分類中產生的誤差。接下來的推導中它們會一直出現,可能會搞混,要一直理解到它們的意思才行。

假設模型集合為:

H={hθ:h

相關推薦

學習理論模型選擇特徵選擇——斯坦福CS229機器學習個人總結

這一份總結裡的主要內容不是演算法,是關於如何對偏差和方差進行權衡、如何選擇模型、如何選擇特徵的內容,通過這些可以在實際中對問題進行更好地選擇與修改模型。 1、學習理論(Learning theory) 1.1、偏差/方差(Bias/variance)

斯坦福CS229機器學習筆記-Lecture6-多元伯努利事件模型+SVM支援向量機

作者:teeyohuang本文系原創,供交流學習使用,轉載請註明出處,謝謝宣告:此係列博文根據斯坦福CS229課程,吳恩達主講 所寫,為本人自學筆記,寫成部落格分享出來          博文中部分圖片和公式都來源於CS229官方notes。          CS229的視

android個人筆記——JNIC++字串轉換

//java字串轉C字串 char* Jstring2str(JNIEnv* env, jstring jstr) { char* pStr = NULL; jclass jstrObj = env->FindClass("java/lang/String"); js

JAVA學習總結

服務 共同點 運行 blog 重要 程序員 ride 處理 mob 1.接口 interface 1.1語法:   修飾符 interface 接口名{     常量     都是抽象方法  } 修飾符:默認 | public接口名:自定義,規則與類名相同,一般I字母打頭:

JavaSE學習總結——Java面向對象十分鐘入門

組織 table 運行時 order 3.1 project park 得到 row 目錄 一、理解類與對象及他們間的關系 1.1、對象 1.3、類與對象間的關系 二、了解面向對象編程的意義 三、定義類與實例化對象 3.1、定義類 3.2、實例化對象 四、區別

OO學習總結

string 質量 人員 其他 png ext 內部 支持 分支 一、 測試與正確性論證的比較 測試和正確性論證分別從用戶角度和開發者角度對工程進行評估。前者能夠評測程序在一般情況和可預見的特殊情況下的執行效果,後者能夠較為全面地測試到每一個細節。 測試的優點: 所需時間

SpringCloud開發學習總結—— 客戶端負載均衡Ribbon

均衡 spring java www ref discovery 聯合 方式 嘗試   通過上一章《SpringCloud開發學習總結(三)—— 服務治理Eureka》,我們已經搭建起微服務架構中的核心組件——服務註冊中心(包括單點模式和高可用模式)。同時還註冊了一個服務,

斯坦福CS229機器學習課程筆記一:線性迴歸與梯度下降演算法

機器學習三要素 機器學習的三要素為:模型、策略、演算法。 模型:就是所要學習的條件概率分佈或決策函式。線性迴歸模型 策略:按照什麼樣的準則學習或選擇最優的模型。最小化均方誤差,即所謂的 least-squares(在spss裡線性迴歸對應的模組就叫OLS即Ordinary Least Squares):

Flutter 學習總結Widget框架概述

介紹 Flutter Widget採用現代響應式框架構建,這是從 React 中獲得的靈感,中心思想是用widget構建你的UI。 Widget描述了他們的檢視在給定其當前配置和狀態時應該看起來像什麼。當widget的狀態發生變化時,widget會重新構建UI,Flutt

微信開發學習總結——自定義選單5——個性化選單介面

一、個性化選單介面說明 為了幫助公眾號實現靈活的業務運營,微信公眾平臺新增了個性化選單介面,開發者可以通過該介面,讓公眾號的不同使用者群體看到不一樣的自定義選單。該介面開放給已認證訂閱號和已認證服務號。 開發者可以通過以下條件來設定使用者看到的選單: 1、使用者標籤(開發者的

微信開發學習總結——自定義選單4——自定義選單事件推送

一、自定義選單事件推送介面說明 使用者點選自定義選單後,微信會把點選事件推送給開發者,請注意,點選選單彈出子選單,不會產生上報。請注意,第3個到第8個的所有事件,僅支援微信iPhone5.4.1以上版本,和Android5.4以上版本的微信使用者,舊版本微信使用者點選後將沒有迴應,開

微信開發學習總結——自定義選單3——自定義選單刪除介面

自定義選單刪除介面 使用介面建立自定義選單後,開發者還可使用介面刪除當前使用的自定義選單。另請注意,在個性化選單時,呼叫此介面會刪除預設選單及全部個性化選單。 請求說明 http請求方式:GET https://api.weixin.qq.com/cgi-bin/menu/d

微信開發學習總結——自定義選單2——自定義選單查詢介面

自定義選單查詢介面 使用介面建立自定義選單後,開發者還可使用介面查詢自定義選單的結構。另外請注意,在設定了個性化選單後,使用本自定義選單查詢介面可以獲取預設選單和全部個性化選單資訊。 請求說明 http請求方式:GET https://api.weixin.qq.com/cg

微信開發學習總結——自定義選單1——自定義選單建立介面

一、自定義選單建立介面說明 自定義選單能夠幫助公眾號豐富介面,讓使用者更好更快地理解公眾號的功能。開啟自定義選單後,公眾號介面如圖所示: 請注意: ①自定義選單最多包括3個一級選單,每個一級選單最多包含5個二級選單。 ②一級選單最多4個漢字,二級選單最多7個漢字,多出來的部分將

c++學習總結——運算子過載與標準模板庫STL

一、心得總結     運算子過載使得使用者自定義的資料以一種更簡潔的方式工作。例如在做ATM模擬系統時,使用過載“<”來比較時間,可以簡化程式,減少程式碼。另外,我們也可以過載運算子函式,將運算子用於操作自定義的資料型別。過載運算子函式可以對運算子做出新的解釋,即定義使用

斯坦福CS229機器學習筆記-Lecture8- SVM支援向量機 之核方法 + 軟間隔 + SMO 演算法

作者:teeyohuang 本文系原創,供交流學習使用,轉載請註明出處,謝謝 宣告:此係列博文根據斯坦福CS229課程,吳恩達主講 所寫,為本人自學筆記,寫成部落格分享出來           博文中部分圖片和公式都來源於CS229官方notes。      

Mybatis學習總結---一對多對映

建立house表,一個使用者有多個房子,所以一個使用者對應多條房屋資訊。 以下sql查詢出使用者和所在部門資訊以及其房屋資訊 SELECT user.*, dept.dept

資料庫學習總結——單表查詢

select語句單表查詢 1.簡單查詢 1.1查詢所有欄位 1.2查詢指定欄位 2.按條件查詢 2.1 帶關係運算符的查詢 2.2 帶in關鍵字的查詢 2.3 帶between and 關鍵字的查詢

吳恩達-斯坦福CS229機器學習課程資料與演算法的Python實現

    學習stanford cs229 manchine learning課程已經有三個月左右,雖然說網友們說這門課相比於Coursera(吳恩達老師的網課機構)中的機器學習有更多的數學要求和公式的推導,本著想總體瞭解機器學習的念頭,開始了機器學習的自學過程。     這

微信開發學習總結——自定義選單——自定義選單建立介面

一、自定義選單建立介面說明 自定義選單能夠幫助公眾號豐富介面,讓使用者更好更快地理解公眾號的功能。開啟自定義選單後,公眾號介面如圖所示: 請注意: ①自定義選單最多包括3個一級選單,每個一級選單最多包含5個二級選單。 ②一級選單最多4個漢字,二級選單最多7個漢