統計學習方法筆記 -- 概論

統計學習方法是基於訓練數據構建統計模型,從而對數據進行預測和分析。
統計學習分爲,監督學習(supervised learning),非監督學習,半監督學習和強化學習(reinforcement learning),其中以監督學習最爲常見和重要,因此這裏只討論監督學習算法

統計學習的過程以下,
1. 獲取訓練數據集合
2. 肯定假設空間,即全部可能的模型的集合
3. 肯定模型選擇的準則(什麼是最優模型的標準),即學習的策略
4. 實現求解最優模型的算法(如何獲取最優模型),即學習的算法
5. 經過算法中假設空間中,找到最優模型
6. 使用該模型對新數據進行預測和分析函數

輸入數據
輸入實例x記做,學習

image

訓練集,有一組輸入/輸出數據組成,表示爲
image 測試

聯合機率分佈
監督學習假設輸入和輸出的隨機變量X和Y遵循聯合機率分佈P(X,Y),P(X,Y)表示分佈函數或分佈密度函數。
這個是基本假設,即輸入和輸出數據間是存在某種規律和聯繫的,不然若是徹底隨機的,就談不上學習了。而且訓練數據和測試數據是依據P(X,Y)獨立同分布產生的優化

假設空間
監督學習的目的在於學習一個由輸入到輸出的映射,這個映射由模型來表示。
而這樣的模型不僅一個,可能不少,全部可能的模型的集合就是假設空間(hypothesis space). 假設空間表明了學習的範圍,監督學習的目的就是從假設空間中找到最優的模型spa

 

統計學習三要素
image
3d

模型
在監督學習中,模型有兩類
非機率模型,決策函數
image 
機率模型,條件機率
image orm

策略
如何定義一個模型好壞?blog

損失函數(L(Y,f(X)),度量一次預測的結果好壞,即表示預測值f(X)和真實值Y之間的差別程度。
imageip

其餘幾個損失函數都比較好理解
對數損失函數,解釋一下
首先它用於機率模型,最精確的預測P(Y|X)=1,因此爲1時L=0,沒有損失
而P都是小於1,因此對數爲負,而且越小L的值越大,想一想對數分佈曲線

風險函數(risk function)或指望損失(expected loss)
用於度量平均預測結果的好壞,其實就是損失函數的指望
輸入X,輸出Y遵循聯合分佈P(X,Y),定義以下
image

數學指望
參考http://zh.wikipedia.org/wiki/%E6%95%B0%E5%AD%A6%E6%9C%9F%E6%9C%9B

image 

指望就是求平均值,對於離散值很簡單,乘上機率相加就能夠,好比拋骰子的指望就是,

image

對於連續數據,稍微複雜些,須要使用積分,本質仍是同樣的。
積分參考,http://zh.wikipedia.org/wiki/%E7%A7%AF%E5%88%86

image

上面說了風險函數代碼了模型的平均的預測結果,因此學習的目標應該是選擇風險函數最小的模型。
可是問題在於,計算風險函數須要知道聯合分佈P(X,Y),可是這個是沒法知道的,不然也不用學習了,因此監督學習就成了一個病態問題(ill-formed problem),即沒法精確的判斷模型真正的效果

經驗風險(empirical risk或經驗損失(empirical loss)
既然沒法獲得真正的風險函數的值,咱們就用訓練數據集上的平均損失來模擬真正的風險函數
image
當N無窮大的時候,經驗風險會逼近指望風險
因此咱們能夠採用經驗風險最小化(empirical risk minimization, ERM)的策略來找到最優的模型,當樣本容量足夠大的時候,能保證很好的學習效果
在現實中被普遍使用,好比,極大似然估計(maximum likelihood estimation)

固然這種策略的問題就是會致使過擬合(over-fitting)現象
因此提出結構風險最小化(structural risk minimization,SRM)策略來防止過擬合
image
其實思路很簡單,就是在經驗風險後面加上表示模型複雜度的正則化項(regularizer)或罰項(penalty term),其中J(f)表示模型複雜度,模型越複雜就越大
由於越是過擬合的模型越是複雜,因此經過regularizer能夠有效平衡擬合程度

算法
用什麼樣的方法來求解最優模型
這樣統計學習模型就歸結爲最優化問題,若是最優化問題有顯式的解析解,比較簡單,直接求出便可。但一般解析解是不存在的,因此就須要利用最優化算法來求解。

 

過擬合與模型選擇
再仔細分析一下過擬合問題
當咱們在假設空間中,選擇模型的時候,但願能夠儘量逼近那個「真」模型,具體上講就是兩個模型間,參數個數相同,而且參數向量相近
可是若是在選擇的時候一味的提升對訓練集的預測能力,會致使獲得比真模型複雜度更高的模型,即包含更多的參數,稱爲過擬合

例子,用M次多項式去擬合圖中訓練集中的10數據點
image
image 
能夠看到當多項式參數個數爲0,1時擬合效果是不好的
但當爲9時,完美的通過訓練集中的每一個點,但由於訓練集是有噪點的,因此這個模型過於複雜,擬合程度也很差,這就是過擬合
只有當爲3時,達到很好的擬合效果

以下圖,當訓練偏差接近於0的時候,模型複雜度會大大增長,而且測試偏差也會變大,因此必需要找到那個平衡點上的模型

image

問題是如何找到,下面有兩個方法

正則法
這個方法前面提過
image
正則項能夠有不一樣的形式,好比在迴歸問題中,損失函數是平方損失,正則項能夠是參數向量的L1範數或L2範數
具體定義參考下面,反正均可以表明模型的複雜度

image

image

給定向量x=(x1,x2,...xn)
L1範數:向量各個元素絕對值之和,曼哈頓距離
L2範數:向量各個元素的平方求和而後求平方根,歐幾裏得距離
image

正則法是符合奧卡姆剃刀(Occam’s razor,http://zh.wikipedia.org/zh/%E5%A5%A5%E5%8D%A1%E5%A7%86%E5%89%83%E5%88%80)原理的,優先選擇更簡單的模型

交叉驗證
1. 簡單交叉驗證,將數據70%做爲訓練集,30%做爲測試集,而後選出測試偏差最小的模型
2. S-fold交叉驗證,將數據隨機分紅S份,將S-1份做爲訓練集,剩下的做爲測試集,對於訓練集和測試集有S種選擇,因此選出S次評測的平均偏差最小的模型
3. leave-one-out交叉驗證,S-fold的特例,用於數據缺少的狀況,S=N,即一份裏面只有一個數據

 

泛化能力(generalization ability)
學習方法的泛化能力指該方法學習到的模型對未知數據的預測能力
每每採用經過測試偏差來評價學習方法的泛化能力,問題是過於依賴測試集,而且測試集是有限的,不是很可靠
因此定義泛化偏差來表示泛化能力
泛化偏差(generalization error),即模型的指望風險
image

可是指望風險是沒法精確算出的,因此只能定義
泛化偏差上界 (generalization error bound)
image

image

前面說了,指望風險是沒法算出的,因此思路仍然是用經驗偏差加上一項來表明泛化偏差的上界,具體證實就不寫了
理解,
第一項是經驗偏差(訓練偏差)
第二項,N是樣本數量,當N趨於無窮時,這項爲0,即指望偏差等於經驗偏差
d表示假設空間中的函數個數,越大就越難學,泛化偏差就越大

統計學習的分類

生成模型和判別模型
生成方法
由數據學習聯合機率分佈P(X,Y),而後求出條件機率分佈P(Y|X)做爲預測模型,即生成模型,典型的如,樸素貝葉斯和隱馬爾可夫模型
image 
優勢,
能夠獲得聯合機率分佈
收斂速度更快
當存在隱變量時,仍可使用

判別方法
由數據直接學習決策函數f(X)或條件機率分佈P(Y|X)做爲預測模型,即判別模型
典型的如,KNN,感知機,決策樹,邏輯迴歸,支持向量等
優勢,
學習準確率比較高
便於對數據進行抽象,能夠簡化學習問題

統計學習還能夠根據輸入輸出的不一樣類型,分爲,
分類問題
輸出變量是有限個離散值時,就是分類問題
學習出的分類模型或分類決策函數稱爲分類器(classifier)
標註問題
輸入是一個觀測序列,而輸出是一個標記序列
典型的應用,詞性標註,輸入詞序列,輸出是(詞,詞性)的標記序列
迴歸問題 輸入輸出都是連續變量是,就是迴歸問題,等價於函數擬合

相關文章
相關標籤/搜索