統計學習方法概論

原文:http://zhouyichu.com/machine-learning/Statistical-Learning-Introduction.htmlhtml

統計學習

統計學習的特色

統計學習(statistical learning)是關於計算機給予數據構建機率統計模型並運用模型對數據進行預測與分析的一門學科。統計學習也稱爲統計機器學習(statistical machine learning)。算法

哈爾伯特西蒙(Herbert A.Simon)曾對」學習」給出如下定義:app

若是一個系統可以經過執行某個過程改進它的性能,這就是學習機器學習

統計學習的對象

統計學習的對象時數據(data)。它從數據出發,提取數據的特徵,抽象出數據的模型,發現數據中的知識,又回到對數據的分析與預測中去。函數

統計學習關於數據的基本假設是同類數據具備必定的統計規律性,這是統計學習的前提。post

在統計學習過程當中,以變量或變量組表示數據。數據分爲由連續變量和離散變量表示的類型。性能

統計學習的目的

統計學習用於對數據進行預測與分析,特別是對未知數據進行預測與分析。統計學習總的目標就是考慮學習什麼樣的模型和如何學習模型,以使模型可以對數據進行準確的預測與分析,同時也要考慮儘量地提升學習效率。學習

統計學習的方法

  • 監督學習(supervised learning)
  • 非監督學習(unsupervised learning)
  • 半監督學習(semi-supervised learning)
  • 強化學習(reinforcement learning)

監督學習

監督學習(supervised learning)的任務時學習一個模型,使模型可以對任意給定的輸入,對其相應的輸出作出一個好的預測(注意,這裏的輸入、輸出是指某個系統的輸入與輸出,與學習的輸入與輸出不一樣)測試

基本概念

輸入空間、特徵空間與輸出空間優化

在監督學習中,將輸入與輸出全部可能取值的集合分別稱爲輸入空間(input space)與輸出空間(output space),輸入與輸出空間能夠是有限元素的集合,也能夠是整個歐式空間。輸入空間與輸出空間能夠是同一個空間,也能夠是不一樣的空間;但一般輸出空間遠遠小於輸入空間。

每一個具體的輸入是一個實例(instance),一般是由特徵向量(feature vector)表示,這時,全部特徵向量存在的空間成爲特徵空間(feature space),特徵空間的每一維對應於一個特徵。有時假設輸入空間與特徵空間爲相同的空間,對它們不予區分;有時假設輸入空間與特徵空間爲不一樣的空間,將實例從輸入空間映射到特徵空間。模型實際上都是定義在特徵空間上的。

  • 迴歸問題:輸入變量與輸出變量均爲連續變量。
  • 分類問題:輸出變量爲有限個離散變量
  • 標註問題:輸入變量與輸出變量均爲變量序列的預測。

聯合機率分佈

監督學習假設輸入與輸出的隨機變量X與Y遵循聯合機率分佈P(X,Y)P(X,Y)表示分佈函數,或分佈密度函數。X和Y具備聯合機率分佈的假設就是監督學習關於數據的基本假設。

假設空間

監督學習的目的在於學習一個由輸入到輸出的映射,這一映射由模型來表示。模型屬於由輸入空間到輸出空間的映射的集合,這個集合就是假設空間(hypothesis space).假設空間的肯定意味着學習範圍的肯定。

問題的形式化

監督學習利用訓練數據集學習一個模型,再用模型對測試樣本集進行預測,因爲在這個過程當中須要訓練數據集,而訓練數據集每每是人工給出的,因此這個學習過程稱爲監督學習。監督學習分爲學習和預測兩個過程。

監督學習中,假設訓練數據與觀測數據是依聯合機率分佈P(X,Y)獨立同分布產生的。

統計學習三要素

方法 = 模型 + 策略 + 算法

模型

在監督學習過程當中,模型就是所要學習的條件機率分佈或決策函數,也就是說,模型能夠用機率條件分佈或決策函數來表示。模型的假設空間(hypothesis space)包含了全部可能的條件機率分佈或決策函數。假設空間中的模型通常有無窮多個。

決策函數

當假設空間用決策函數表示時,假設空間能夠定義爲決策函數的集合

F={f|Y=f(X)}(1)

其中,F是假設空間,XY是定義在輸入空間X和輸出空間Y上的變量。這時的F一般是由一個參數向量決定的函數族:

F={f|Y=fθ(X),θRn}(2)

參數向量θ取值於n維歐式空間Rn,稱爲參數空間(parameter space)

條件機率分佈

當假設空間用條件機率分佈時,假設空間也能夠定義爲條件機率的集合

F={P|P(Y|X)}(3)

其中,F是假設空間,XY是定義在輸入空間X和輸出空間Y上的隨機變量。這時的F一般是由一個參數向量決定的條件機率分佈族:

F={f|Y=fθ(Y|X),θRn}(4)

參數向量θ取值於n維歐式空間Rn,也稱爲參數空間(parameter space)

決策函數表示的模型爲非機率模型,由條件機率表示的模型爲機率模型

策略

有了模型的假設空間,統計學習接着須要考慮的是按照什麼樣的準則學習或選擇最優的模型。統計學習的目的在於從假設空間選取最優模型。

首先要了解損失函數與風險函數的概念。

  • 損失函數:度量模型一次預測的好壞
  • 風險函數:度量平均意義下模型預測的好壞

損失函數和風險函數

監督學習是從假設空間F中選取一個最優的模型f,使得對於給定的輸入X,由f給出相應的輸出f(X),這個輸出的預測值f(X)與真實值Y可能一致也可能不一致,咱們必須用一個函數來度量它們之間的差別程度。這就引出了損失函數(loss function)代價函數(cost function)的概念。損失函數應該是f(X)Y的非負實值函數,記做L(Y,f(X))

統計學習中經常使用的的損失函數有如下幾種:

  1. 0-1損失函數(0-1 loss function) L(Y,f(X))=⎧⎩⎨10Yf(X)Y=f(X)
  2. 平方損失函數(quadratic loss function) L(Y,f(X))=(Yf(X))2
  3. 絕對損失函數(absolute loss function) L(Y,f(X))=|Yf(X)|
  4. 對數損失函數(logarithmic loss function)或對數似然損失函數(loglikeihood loss function) L(Y,f(Y|X)=logP(Y|X)

損失函數數值越小,模型越好。因爲模型的輸入、輸出(X,Y)是隨機變量,遵循聯合分佈P(X,Y),因此損失函數的指望是:

Rexp(f)=Ep[L(Y,f(X))]=X×YL(y,f(x))P(x,y)dxdy(5)

這是理論上模型f(X)關於聯合分佈P(X,Y)的平均意義下的損失,稱爲風險函數(risk function)指望損失(expected loss)。咱們學習的目標就是選擇指望風險最小的模型。可是因爲聯合分佈P(X,Y)是未知的,因此Rexp(f)不能直接計算。

給定一個訓練數據集

T={(x1,y1),(x2,y2),,(xN,yN)}(6)

模型f(X)關於訓練數據集的平均損失稱爲經驗風險(empirical risk)經驗損失(empirical loss),記做Remp:

Remp(f)=1Ni=1NL(yi,f(xi))(7)

指望風險Rexp(f)是模型關於聯合分佈的指望損失,經驗風險Remp(f)是模型關於訓練樣本集的平均損失。根據大數定律,當樣本容量N趨於無窮時,經驗風險Remp(f)趨於指望風險Rexp(f)。因此很天然的想法是,用經驗風險估計指望風險,可是現實中的訓練樣本數目有限,甚至很小,因此這樣的估計並不理想,須要對經驗風險進行必定的矯正。

經驗風險最小化與結構風險最小化

在假設空間、損失函數以及訓練數據集肯定的狀況下,經驗風險函數就能夠肯定。經驗風險最小化(empirical risk minimization,ERM)的策略認爲,經驗風險最小的模型是最優的模型。根據這一策略,按照經驗風險最小化求最優模型就是求解最優化問題:

minfF1Ni=1NL(yi,f(xi))(8)

其中,F是假設空間。

當樣本容量足夠大時,經驗風險最小可以保證有很好的學校效果,在現實中被普遍採用。好比極大似然估計(maximum linklihood estimation)就是經驗風險最小化的一個例子。當模型是條件機率分佈,損失函數是對數損失函數時,經驗風險最小化就等價於極大似然估計。

可是,當樣本容量很小時,經驗風險最小化學習的效果未必很好,會產生」過擬合(over-fitting)「現象。

結構風險最小化(structural risk minimization,SRM)是爲了防止過擬合而提出的策略。結構風險最小化等價於正則化(regularization)。結構風險在經驗風險上加上表示模型複雜度的正則化項(regularizer)或罰項(penalty term)。在假設空間、損失函數以及訓練數據集肯定的狀況下,結構風險的定義是:

Rsrm(f)=1Ni=1NL(yi,f(xi))+λJ(f)(9)

其中J(f)爲模型的複雜度,是定義在假設空間F上的泛函。模型f越複雜,複雜度J(f)越大。λ0是係數,用以權衡經驗風險和模型複雜度。結構風險須要經驗風險與模型複雜度同時小。結構風險小的模型每每對訓練數據以及未知的測試數據都有較好的預測。

好比,貝葉斯估計中的最大後驗機率估計(maximum posterior probability estimate,MAP)就是結構風險最小化的一個例子。當模型是條件機率分佈、損失函數是對數損失函數、模型複雜度由模型的先驗機率表示時,結構風險最小化等價於最大後驗機率估計。

結構風險最小化的策略認爲結構風險最小的模型是最優模型,因此尋找最優模型,就是求解最優化問題:

minfF1Ni=1NL(yi,f(xi))+λJ(f)(10)

這樣,監督學習的問題就變成了經驗風險(公式8)或結構風險函數(公式10)的最優化問題,這時經驗結構風險函數是最優化的目標函數。

算法

算法是指學習模型的具體計算方法。統計學習基於訓練數據集,根據學習策略,從假設空間中選擇最優模型,最後須要考慮用什麼樣的計算方法求解最有模型。

模型評估與模型選擇

訓練偏差與測試偏差

統計學習的目的是使學到的模型不只對已知的數據並且對未知數據都能有很好的預測能力。不一樣的學習方法會給出不一樣的模型,當損失函數給定時,基於損失函數的訓練偏差(training error)和模型的測試偏差(test error)就成爲學習方法評估的標準。須要注意的是,統計學習方法具體採用的損失函數未必是評估時所使用的損失函數,固然,二者一致是比較理想的。

假設學習到的模型是Y=f^(X),訓練偏差是模型Y=f^(X)關於訓練數據集的平均損失:

Remp(f^)=1Ni=1NL(yi,f^(xi))(11)

其中N是訓練樣本容量。

測試偏差是模型Y=f^(X)關於測試數據集的平均損失:

Remp(f^)=1Ni=1NL(yi,f^(xi))(12)

其中N是測試樣本容量。

訓練偏差的大小,對斷定給定的問題是否是一個容易學習的問題是有意義的,但本質上不重要。測試偏差反映了學習方法對未知的測試數據集的預測能力,是學習中的重要概念。一般將學習方法對未知數據的預測能力稱爲泛化能力(generalization ability)

過擬合與模型選擇

當假設空間含有不一樣複雜度(例如,不一樣的參數個數)的模型時,就要面臨模型選擇(model selection)的問題,咱們但願選擇或學習一個合適的模型,若是在假設空間中存在」真」模型,那麼所選擇的模型應該逼近真模型。

可是,若是一味追求提升對訓練數據的預測能力,所選模型的複雜度則每每會比真模型更高。這種現象稱爲過擬合(over-fitting)。過擬合是指學習時選擇的模型所包含的參數過多,以致於出現這一模型對已知數據預測得很好,但對未知數據預測得不好的現象。在上文說到的兩個監督學習的策略中,結構風險就是把模型的複雜度考慮進去了,而經驗風險就沒有考慮模型的複雜度,所以結構風險對於未知數據會有更好的預測。能夠說模型選擇旨在避免過擬合併提升模型的預測能力。

下圖描述了訓練偏差和測試偏差與模型的複雜度之間的關係。當模型的複雜度增大時,訓練偏差會逐漸減少並趨向於0;而測試偏差會先減少,達到最小值後又增大。當選擇的模型複雜度過大時,過擬合現象就會發生。

訓練偏差和測試偏差與模型複雜度的關係

下面介紹兩種經常使用的模型選擇方法:正則化與交叉驗證。

正則化與交叉驗證

正則化

模型選擇的典型方法是正則化(regularization)。正則化是結構風險最小化策略的實現,是在經驗風險上加一個正則化項(regularizer)或罰項(penalty term)。正則化項通常是模型複雜度的單調遞增函數,模型越複雜,正則化值就越大。

正則化通常具備以下的形式:

minfF1Ni=1NL(yi,f(xi))+λJ(f)(13)

其中第一項是經驗風險,第二項是正則化項,λ0爲調整二者之間關係的係數。

正則化的做用是選擇經驗風險與模型複雜度同時較小的模型。正則化符合奧卡姆剃刀原理(Occam’s razor),奧卡姆剃刀原理應用於模型選擇時變爲如下的想法:在全部可能選擇的模型中,可以很好地解釋已知數據而且十分簡單纔是最好的模型。

交叉驗證

另外一種常見的模型選擇方法是交叉驗證(cross validation)

若是給定的樣本數據充足,進行模型的選擇的一種簡單方法是隨機地將數據集合切分紅三部分,分別爲訓練集(training set)驗證集(validation set)測試集(test set)。訓練集用來訓練模型,驗證集用於模型的選擇,而測試集用於最終對學習方法的評估。在學習到的不一樣複雜度的模型中,選擇對驗證集有最小預測偏差的模型。

可是,在許多實際應用中數據是不充足的。爲了選擇好的模型,能夠採用交叉驗證的方式。交叉驗證的基本思想是重複地使用數據;把給定的數據進行切分,將切分的數據集組合爲訓練集與測試集,在此基礎上反覆地進行訓練、測試以及模型選擇。

簡單交叉驗證

簡單交叉驗證的方法是:首先隨機地將已給數據分爲兩部分,一部分做爲訓練集,另外一部分做爲測試集,而後用訓練集在各類條件下訓練模型,從而獲得不一樣的模型,在測試集上評價各個模型的測試偏差,選出測試偏差最小的模型。

S折交叉驗證

應用最多的是S折交叉驗證(S-fold cross validation),方法以下:首先隨機地將已給數據切分爲S個互不相交的大小相同的子集,而後利用S-1個子集的數據訓練模型,利用餘下的子集測試模型;將這一過程對可能的S中選擇重複進行;最後選出S次評測中平均測試偏差最小的模型。

泛化能力

泛化偏差

學習方法的泛化能力(generalization ability)是指由該方法學習到的模型對未知數據的預測能力,是學習方法本質上重要的性質。

泛化偏差的定義:若是學到的模型是f^,那麼用這個模型對未知數據預測的偏差即爲泛化偏差(generalization error)

Rexp(f^)=Ep[L(Y,f^(X))]=X×YL(Y,f^(X))P(x,y)dxdy(14)

泛化偏差反映了學習方法的泛化能力,若是一種方法學習的模型比另外一種方法學習的模型具備更小的泛化偏差,那麼這種方法就有效。事實上,泛化偏差就是所學習到的指望風險。

泛化偏差上界

學習方法的泛化能力分析每每是經過研究泛化偏差的機率上界進行的,簡稱爲泛化偏差上界(generalization error bound)。具體來講,就是經過比較兩種泛化偏差上界的大小來比較它們的優劣。泛化偏差上界一般具備如下性質:它是樣本容量的函數,當樣本容量增長時,泛化上界趨於0;它是假設空間容量的函數,假設空間越大,模型就越難學,泛化偏差上界就越大。

生成模型與判別模型

監督學習又能夠分爲生成方法(generative approach)判別方法(discriminative approach),所學到的模型分別稱爲生成模型(generative model)判別模型(discriminative model)

生成方法由數據學習聯合機率分佈P(X,Y),而後求出條件機率分佈P(Y|X)做爲預測的模型,即生成模型:

P(Y|X)=P(X,Y)P(X)(15)

這樣的方法之因此稱爲生成方法,是由於模型表示了給定輸入X產生輸出Y的生成關係。典型的生成模型有:樸素貝葉斯法和隱馬爾科夫模型。

判別方法由數據直接學習決策函數f(X)或者條件機率分佈P(X|Y)做爲預測的模型,即判別模型。典型的判別模型包括:k近鄰法、感知機、決策樹、邏輯斯蒂迴歸模型、最大熵模型、支持向量機、提高方法和條件隨機場等。

分類問題

分類是監督學習的一個核心問題。在監督學習中,當輸出變量Y取有限個離散值時,預測問題便成爲分類問題。這是,輸入變量X能夠是離散的,也能夠是連續的。監督學習從數據中學習一個分類模型或分類決策函數,稱爲分類器(classifier)

對於二類分類問題經常使用的評價指標是精確率(precision)與召回率(recall)。分類器在測試數據集上的預測或正確或不正確,4種狀況出現的總數分別記做:

  • TP——將正類預測爲正類數;
  • FN——將正類預測爲負類數;
  • FP——將負類預測爲正類數;
  • TN——將負類預測爲負類數;

精確率定義爲:

P=TPTP+FP(16)

召回率定義爲

R=TPTP+FN(17)

此外,還有F值,是精確率和召回率的調和均值,即

2F=1P+1RF=2TP2TP+FP+FN(18)(19)

精確率和召回率都高時,F值也會高。

標註問題

標註問題的輸入是一個預測序列,輸出是一個標記序列或狀態序列。標註問題的目標在於學習一個模型,是它可以對觀測序列給出標記序列做爲預測。注意,可能的標記個數是有限的,但其組合所城的標記序列的個數是依序列長度呈指數級增加的。

評價標註模型的指標與評價分類模型的指標同樣,經常使用的標註精確率和召回率。其定義與分類模型相同。

標註經常使用的統計學習方法有:隱馬爾科夫模型、條件隨機場。

迴歸問題

迴歸用於預測輸入變量(自變量)和輸出變量(因變量)之間的關係,特別是當輸入變量的值發生變化時,輸出變量的值隨之發生的變化。迴歸模型正是表示從輸入變量到輸出變量之間映射的函數。迴歸問題的學習等價於函數擬合:選擇一條函數曲線使其很好地擬合已知數據且很好地預測未知數據。

迴歸問題按照輸入變量的個數,分爲一元迴歸和多元迴歸;按照輸入變量和輸出變量之間關係的類型即模型的類型,分爲線性迴歸和非線性迴歸。

迴歸學習最經常使用的損失函數是平方損失函數,在此狀況下,迴歸問題能夠由著名的最小二乘法(least squares)求解。

字數:7308

相關文章
相關標籤/搜索