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

這是對《統計學習方法》第一章的一個總結,記錄一些基礎的概念、定義和術語,理清統計學習方法的各個方面,開始系統地學習這個領域。算法

統計學習


統計學習(statistical learning)是關於計算機基於數據構建機率統計模型,並運用模型對數據進行預測與分析的一門學科。統計學習也稱爲統計機器學習。統計學習用於對數據進行預測和分析。由監督學習(supervised learning)、非監督學習(unsupervised learning)、半監督學習(semi-supervised learning)和強化學習(reinforcement learning)等組成。監督學習方法簡單歸納爲:使用訓練數據(training data)(數據是獨立同分布產生的),假設要學習的模型屬於某個函數的集合,稱爲假設空間(hypothesis space),應用某個評價準則(evaluation criterion),選擇最優的模型,使得訓練數據和測試數據(test data)在給定的準則下最優。app

統計學習方法的三要素:機器學習

  • 模型(model)
  • 策略(strategy)
  • 算法(algorithm)

步驟:函數

  • 獲得一個有限的訓練數據集合
  • 肯定包含全部可能的模型的假設空間(學習模型的集合)
  • 肯定模型選擇的準則(學習的策略)
  • 實現求解最優模型的算法(學習的算法)
  • 經過學習方法選擇最優模型
  • 利用學習的最優模型對新數據進行預測和分析

監督學習


基本概念

  • 輸入空間(input space)/輸出空間(output space)——分別指輸入與輸出全部可能取值的空間
  • 每一個具體的輸入是一個實例(instance),一般由特徵向量表示(feature vector),對應的空間稱爲特徵空間(feature space)
  • 輸入輸出對稱爲樣本(sample)
  • 迴歸問題(輸入輸出均爲連續變量);分類問題(輸出爲有限個離散變量);標註問題(輸入輸出均爲變量序列)
  • 監督學習假設輸入輸出的隨機變量X和Y遵循一個聯合機率分佈(即輸入輸出是有個規則的)
  • 監督學習的目的在於學習一個由輸入到輸出的映射。
    • 條件機率分佈:\(P(Y|X)\)
    • 決策函數(decision function):\(Y=f(X)\)

統計學習的三要素

方法=模型+策略+算法post

  • 模型學習

    假設空間用\(\mathcal{F}\)表示,是一個決策函數的集合:\(\mathcal{F}= \left \{ f\ |\ Y=f(X) \right \}\)測試

  • 策略優化

    引入損失函數與風險函數的概念。損失函數度量模型一次預測的好壞,風險函數度量平均意義下模型預測的好壞。lua

    1. 損失函數spa

      損失函數(loss function)或者代價函數(cost function)度量預測錯誤的程度,記做\(L(Y,f(X))\)。有如下幾種:

      • 0-1損失函數(0-1 loss function)\[L(Y,f(x))=\left\{\begin{matrix} 1, & Y\neq f(X)\\ 0, & Y=f(X) \end{matrix}\right\]

      • 平方損失函數(quadratic loss function) \[L(Y,f(x))=(Y-f(X))^2\]

      • 絕對損失函數(absolute loss function) \[L(Y,f(x))=\left |Y-f(X) \right |\]

      • 對數損失函數(logarithmic loss function)或者對數似然損失函數(log-likelihood loss function)

        \[L(Y,P(Y|X)))=-\log P(Y|X)\]

    2. 風險函數

      損失函數的指望稱爲風險函數(risk function)或者指望損失(expected loss),即平均意義下的損失:
      \[R_{exp}(f)=E_p[L(Y,f(X))]=\int_{\mathcal{X}\times \mathcal{Y}}L(y,f(x))P(x,y)dxdy\]

      實際上聯合分佈\(P(X,Y)\)是未知的,不能直接算出\(P(Y|X)\),全部才須要學習。這樣一來,一方面根據指望風險最小學習模型要用到聯合分佈,另外一方面聯合分佈又是未知的,因此監督學習就成爲了一個病態問題(ill-formed problem)。

      可是訓練數據集是已知的,模型\(f(x)\)關於訓練數據集的平均損失稱爲經驗風險(empirical risk)或經驗損失(empirical loss),記做\(R_{exp}(f)\): \[R_{emp}(f)=\frac{1}{N}\sum_{i=1}^{N}L(y_i,f(x_i))\]根據大數定理,樣本容量\(N\)趨近無窮時,經驗風險趨近於指望風險:\(R_{emp}(f)\approx R_{exp}(f)\)。這樣以來,就又可能利用經驗風險來估計指望風險,可是因爲實際中訓練樣本數有限,效果不理想,要對經驗風險進行必定的矯正——關係到監督學習的兩個基本策略:經驗風險最小化和結構風險最小化。

    3. 經驗風險最小化

      經驗風險最小化(empirical ridk minimization,ERM)的策略認爲經驗風險最小的模型就是最優模型:\[\min_{f\in \mathcal{F}}\: \frac{1}{N}\sum_{i=1}^{N}L(y_i,f(x_i))\]這種策略在樣本容量足夠大的時候很好,可是當樣本容量很小的時候,效果未必好,會出現「過擬合」現象。

      好比:極大似然估計(maximum likelihood estimation)

    4. 結構風險最小化

      結構風險最小化(structural risk minimization,SRM)是爲防止過擬合而提出的策略,其實等價於正則化(regularization)。結構風險在經驗風險上加上表示模型複雜度的正則化項(regularizer)或罰項(penalty term):\[R_{srm}(f)=\frac{1}{N}\sum_{i=1}^{N}L(y_i,f(x_i))+\lambda J(f)\]其中\(J(f)\)爲模型的複雜度,模型\(f\)越複雜,\(J(f)\)越大,在這裏對模型的懲罰也越大。因此,結構風險同時對經驗風險和模型複雜度進行權衡,這樣每每對訓練數據和未知的測試數據都有較好的預測。

      好比:貝葉斯估計中的最大後驗機率估計(maximum posterior probability estimation,MAP)

  • 算法

    考慮用什麼樣的計算方法求解最優模型,最優化問題。有解析解的話最好了,可是經常沒有,就須要數值計算的方法來求解。如何保證找到最優解,並使求解過程十分高效,成爲一個重要問題。

模型評估與模型選擇

訓練偏差(training error)和測試偏差(test error)做爲學習方法評估的標準,實際上測試偏差較小的方法具備更好的預測能力,是更有效的方法,這種能力稱爲泛化能力(generalization ability)

進行模型選擇(model selection)時,有些很複雜的模型經常在訓練數據中比真實模型看上去偏差更小,這種現象稱爲過擬合(over-fitting),這些複雜的模型在測試數據中沒有任何優點。

好比多項式的擬合,若是訓練數據量不是足夠多,複雜的模型(高階多項式)能夠擬合的很好,比真實的模型還好(由於數據存在噪聲),但它的泛化能力太弱,無法很好地預測未知數據。

因此不能讓模型的複雜度過高,爲防止過擬合,有兩種經常使用的模型選擇方法:正則化和交叉驗證。

正則化與交叉驗證


正則化是結構風險最小化策略的的實現.

正則化(regularization)通常具備以下形式:\[\min_{f\in \mathcal{F}}\: =\frac{1}{N}\sum_{i=1}^{N}L(y_i,f(x_i))+\lambda J(f)\]正則化項隨着模型複雜度的增長而變大,迴歸問題中,損失函數是平方損失,正則化項能夠是參數向量的\(L_2\)範數。這個正則化項也能夠是其餘的形式。

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

一種簡單的方法:數據量比較充足的時候,隨機地將數據集分紅三個部分:訓練集(training set)、驗證集(validation set)、測試集(test set),分別用來進行模型的訓練、選擇、最終評估。可是實際中數據沒那麼充足,能夠採用交叉驗證的方法(基本思想是重複使用數據)。

  • 簡單交叉驗證

    好比70%數據做爲訓練,30%數據做爲測試集,在訓練集上訓練完,獲得各類模型,而後使用測試集進行測試,選出測試偏差最小的模型。

  • \(S\)折交叉驗證

    \(S\)折交叉驗證(S-fold cross validation)應用最多:將數據分出\(S\)個互不相交的大小相同的子集,利用其中\(S-1\)個子集訓練,剩下的本身進行測試。有\(S\)種不一樣的劃分,分別進行,選出平均偏差最小的模型。

  • 留一交叉驗證

    算是上面的\(S\)折交叉驗證的特使狀況,但\(S=N\),每一個子集僅一個數據,每每在數據缺少的狀況下使用。

上面的幾種交叉驗證方法,在整個學習的過程當中使用了所謂的測試集,實際上它這裏所說的測試集應該看做是驗證集吧,測試集應該徹底不被使用,僅僅在最後用來評估選出的模型的效果。

泛化能力


泛化能力(generalization ability)是指對未知數據的預測能力。泛化偏差(generalization error):\[R_{exp}(\hat{f})=E_p[L(Y,\hat{f}(X))]=\int_{\mathcal{X}\times \mathcal{Y}}L(y,\hat{f}(x))P(x,y)dxdy\]實際上,泛化偏差就是學習到的模型的指望風險。

通常經過比較兩種學習方法的泛化偏差上界(generalization error bound)來比較它們的優劣。泛化偏差上界的性質:

  • 樣本容量越大,泛化偏差上界越小。
  • 假設空間容量(capacity)越大,泛化偏差上界越大。

泛化偏差上界:

對二分類問題,當假設空間是有限個函數集合\(\mathcal F=\left \{ f_1,f_2,\cdot \cdot \cdot ,f_d \right \}\)時,對任意一個函數\(f\in \mathcal F\),至少以機率\(1- \sigma\),如下不等式成立:
\[R(f)\leqslant \hat{R}(f)+\varepsilon (d,N,\delta )\]
其中,
\[\varepsilon (d,N,\delta )=\sqrt{\frac{1}{2N}\left ( \log d+\log\frac{1}{\delta } \right )}\]
不等式左端\(R(f)\)是泛化偏差,右端爲泛化偏差上界。泛化偏差上界中,第一項是訓練偏差,訓練偏差越小,泛化偏差也越小。第二項\(\varepsilon (d,N,\delta )\)\(N\)越大,值越小,假設空間\(\mathcal F\) 包含的函數越多,值越大。
上述定理可經過Hoeffding不等式來證實。

生成模型與判別模型


  • 生成方法——生成模型(generation model),可還原出聯合機率分佈\(P(X,Y)\),好比樸素貝葉斯法、隱馬爾科夫模型。
  • 判別方法——判別模型(discriminative model),直接面對預測,好比K近鄰法、感知機、決策樹、邏輯斯蒂迴歸模型、最大熵模型、支持向量機、提高方法、條件隨機場等。




(注:本文爲讀書筆記與總結,側重算法原理,來源爲《統計學習方法》一書第一章)


做者:rubbninja
出處:http://www.cnblogs.com/rubbninja/ 關於做者:目前主要研究領域爲機器學習與無線定位技術,歡迎討論與指正!

相關文章
相關標籤/搜索