機器學習算法原理、實現與實踐——機器學習的三要素
1 模型
在監督學習中,模型就是所要學習的條件概率分布或決策函數。模型的假設空間包含所有可能的條件概率分布或決策函數。例如,假設決策函數是輸入變量的線性函數,那么模型的假設空間就是這些線性函數構成的函數的集合。
假設空間用$\mathcal{F}$表示。假設空間可以定義為決策函數的集合
$$\mathcal{F}=\{f|Y=f(X)\}$$
其中,$X$和$Y$是定義在輸入空間$\mathcal{X}$和輸出空間$\mathcal{Y}$上的變量。這時$\mathcal{F}$通常是由一個參數向量決定的函數族
$$\mathcal{F}=\{f|Y=f_{\theta}(X),\theta\in \mathbf{R}^n\}$$
參數向量$\theta$取值於$n$維歐氏空間$\mathbf{R}^n$,稱為參數空間(parameter space)。
假設空間也可以定義為條件概率的集合
$$\mathcal{F}=\{P|P(Y|X)\}$$
其中,$X$和$Y$是定義在輸入空間$\mathcal{X}$和輸出空間$\mathcal{Y}$上的變量。這時$\mathcal{F}$通常是由一個參數向量決定的條件概率分布族
$$\mathcal{F}=\{P|P_{\theta}(Y|X),\theta\in \mathbf{R}^n\}$$
稱由決策函數表示的模型為非概率模型,由條件概率表示的模型為概率模型。
2 策略
有了模型的假設空間,機器學習接着要考慮的是按照什么樣的准則學習或選擇最優的模型。
首先引入損失函數與風險函數的概念。損失函數度量模型一次預測的好壞,風險函數度量平均意義下模型預測的好壞。
2.1 損失函數與風險函數
對於給定的輸入$X$和假設空間$\mathcal{F}$中選擇的決策函數模型$f$,由$f(X)$給出相應的輸入$Y$,這個輸出的預沒值$f(X)$與真實值$Y$可能一致,也可能不一致,用一個損失函數或代價函數來度量預測的錯誤程度。損失函數是$f(x)$和$Y$的非負實值函數,記作$L(Y,f(X))$
幾種常用的損失函數:
1) 0-1損失函數(0-1 loss function)
$$L(Y,f(X)) = \begin{cases}1, &Y\neq f(X) \\ 0, & Y=f(X)\end{cases}$$
2) 平方損失函數(quadratic loss function)
$$L(Y,f(X)) = (Y – f(X))^2$$
3)絕對損失函數(absolute loss function)
$$L(Y,f(X)) = |Y-f(X)|$$
4) 對數損失函數(logarithmic loss function)或對數似然損失函數
$$L(Y,P(Y|X)) = –logP(Y|X)$$
損失函數值越小,模型就越好。由於模型的輸入、輸出$(X,Y)$是隨機變量,遵循聯合分布$P(X,Y)$,所以損失函數的期望是
$$R_{exp}(f)=E_P[L(Y,f(X))]=\int_{\mathcal{X}\times\mathcal{Y}}L(y,f(x))P(x,y)dxdy$$
這是理論上模型$f(X)$關於聯合分布$P(X,Y)$的平均意義下的損失,稱為風險函數(risk function)或期望損失(expected loss)。
學習的目標就是選擇期望風險最小的模型。由於聯合分布$P(X,Y)$是所有樣本所遵循的統計規律,它是未知的,所以$R_{exp}(f)$不能直接計算。實際上如果知道了聯合分布,那么可以直接計算出$P(Y|X) = \int_{\mathcal{X}}P(x,y)dx$,也就不需要學習了。
所以用上面那種方式定義風險函數是不行的,那樣的話監督學習變成了一個病態問題。
對於給定的訓練數據集
$$T={(x_1,y_1),(x_2,y_2),\dots,(x_N,y_N)}$$
模型$f(X)$關於訓練數據集的平均損失稱為經驗風險(empirical risk)或經驗損失(empirical loss),記作$R_{emp}$:
$$R_{emp}(f) = \frac{1}{N}\sum_{i=1}^NL(y_i,f(x_i))$$
期望風險$R_{exp}(f)$是模型關於聯合分布的期望損失,經驗風險$R_{emp}(f)$是模型關於訓練樣本集的平均損失。根據大數定律,當樣本容量$N$趨於無窮時,經驗風險$R_{emp}(f)$趨向於期望風險$R_{exp}(f)$
所以,一個很自然的想法是用經驗風險估計期望風險。但是,由於現實中訓練樣本數目很有限,所以用經驗風險估計期望風險常常不理想,要對經驗風險進行一定的矯正。這就關系到監督學習的兩個基本策略:經驗風險最小化和結構風險最小化。
2.2 經驗風險最小化與結構風險最小化
在假設空間、損失函數以及訓練數據集確定的情況下,經驗風險函數式就可以確定。經驗風險最小化的策略認為,經驗風險最小的模型就是最優的模型。根據這一策略,按照經驗風險最小化求最佳模型就是求解最優化問題:
$$\min_{f\in\mathcal{F}}\frac{1}{N}\sum_{i=1}^NL(y_i,f(x_i))$$
其中$\mathcal{F}$是假設空間。
當樣本容量足夠大時,經驗風險最小化能保證有很好的學習效果,在現實中廣泛采用。比如極大似然估計就是經驗風險最小化的一個例子。當模型是條件概率分布,損失函數是對數損失函數時,經驗風險最小化就等價於極大似然估計。
但是當樣本容量很小時,經驗風險最小化學習效果就未必很好,會產生“過擬合(over-fitting)”現象。
結構風險最小化(structural risk minimization SRM)是為了防止過擬合而提出來的策略。結構風險最小化等價於正則化。結構風險在經驗風險上加上表示模型復雜度的正則化項或罰項。在假設空間,損失函數以及訓練樣本集確定的情況下,結構風險的定義是
$$R_{srm}(f) = \frac{1}{N}\sum_{i=1}^NL(y_i,f(x_i))+\lambda J(f)$$
其中$J(f)$為模型的復雜度,是定義在假設空間$\mathcal{F}$上的泛函。模型$f$越復雜,復雜度$J(f)$就越大;反之,模型$f$越簡單,復雜度$J(f)$就越小。也就是說復雜度表示了對復雜模型的懲罰。$\lambda\ge 0$是系數,用以權衡經驗風險和模型的復雜度。結構風險小需要經驗風險與模型復雜度同時小。結構風險小的模型往往對訓練數據以及未知的測試數據都有較好的預測。
比如,貝葉斯估計中的最大后驗概率估計(maximum posterior probability estimation,MAP)就是結構風險最小化的例子。當模型是條件概率分布、損失函數就是對數損失函數、模型復雜度由模型的先驗概率表示時,結構風險最小化就等價於最大后驗概率估計。
結構風險最小化的策略認為結構風險最小的模型是最優的模型。所以求最優化模型時,就是求解最優化問題:
$$\min_{f\in\mathcal{F}}\frac{1}{N}L(y_i,f(x_i))+\lambda J(f)$$
這樣,監督學習問題就變成了經驗風險或結構風險函數的最優化問題。這時經驗或結構風險函數是最優化的目標函數。
3 算法
從上面可以看出,在確定尋找最優模型的策略后
機器學習的問題歸結為最優化的問題。機器學習討論的算法問題就成為了求解最優化模型解的算法。而且往往最優化模型沒有的解析解,需要用數值計算的方法求解,我們要確保找到全局最優解,以及使求解的過程非常高效。
