本文簡單整理了如下內容:html
(一)貝葉斯決策論:最小錯誤率決策、最小風險決策;經驗風險與結構風險app
(二)判別函數;生成式模型;多元高斯密度下的判別函數:線性判別函數LDF、二次判別函數QDFide
(三)貝葉斯錯誤率函數
(四)生成式模型的參數估計:貝葉斯學派與頻率學派;極大似然估計、最大後驗機率估計、貝葉斯估計;多元高斯密度下的參數估計post
(五)樸素貝葉斯與文本分類(挪到了下一篇博客)性能
貝葉斯決策論(Bayesian decision theory)假設模式分類的決策可由機率形式描述,並假設問題的機率結構已知。規定如下記號:類別有 $c$ 個,爲 $\omega_1,\omega_2,...,\omega_c$ ;樣本的特徵矢量 $\textbf x\in\mathbb R^d$ ;類別 $\omega_i$ 的先驗機率爲 $P(\omega_i)$ (prior),且 $\sum_{i=1}^cP(\omega_i)=1$ ;類別 $\omega_i$ 對樣本的類條件機率密度爲 $p(\textbf x|\omega_i)$ ,稱爲似然(likelihood);那麼,已知樣本 $\textbf x$ ,其屬於類別 $\omega_i$ 的後驗機率 $P(\omega_i|\textbf x)$ (posterior)就能夠用貝葉斯公式來描述(假設爲連續特徵):學習
$$P(\omega_i|\textbf x)=\frac{p(\textbf x|\omega_i)P(\omega_i)}{p(\textbf x)}=\frac{p(\textbf x|\omega_i)P(\omega_i)}{\sum_{j=1}^cp(\textbf x|\omega_j)P(\omega_j)}$$測試
分母被稱爲證據因子(evidence)。後驗機率固然也知足和爲1,$\sum_{j=1}^cP(\omega_j|\textbf x)=1$ 。若是是離散特徵,將機率密度函數(PDF)$p(\cdot)$ 替換爲機率質量函數(PMF)$P(\cdot)$ 。優化
因此,當類條件機率密度、先驗機率已知時,能夠用最大後驗機率決策(Maximum a posteriori decision),將樣本的類別判爲後驗機率最大的那一類。決策規則爲:spa
$$\arg\max_iP(\omega_i|\textbf x)$$
也就是說,若是樣本 $\textbf x$ 屬於類別 $\omega_i$ 的後驗機率 $P(\omega_i|\textbf x)$ 大於其它任一類別的後驗機率 $P(\omega_j|\textbf x)(j\in\{1,...,c\}\setminus \{i\})$ ,則將該樣本分類爲類別 $\omega_i$。
1、最小錯誤率決策:等價於最大後驗機率決策
從平均錯誤率(平均偏差機率) $P(error)$ 最小的角度出發,討論模型如何來對樣本的類別進行決策。平均錯誤率的表達式爲
$$P(error)=\int p(error,\textbf x)\text d\textbf x = \int P(error|\textbf x)p(\textbf x)\text d\textbf x$$
能夠看出,若是對於每一個樣本 $\textbf x$ ,保證 $P(error|\textbf x)$ 儘量小,那麼平均錯誤率就能夠最小。$P(error|\textbf x)$ 的表達式爲
$$P(error|\textbf x)=1-P(\omega_i|\textbf x), \text{ if we decide }\omega_i$$
從這個表達式能夠知道,最小錯誤率決策(Minimum error rate decision)等價於最大後驗機率決策。
2、最小風險決策:指望風險最小化。最小錯誤率決策的推廣
這裏定義一個新的量:風險(risk)。首先介紹損失(loss)或稱爲代價(cost)的概念。
對於一個 $\omega_j$ 類的樣本 $\textbf x$ ,若是分類器 $\alpha(\textbf x)$ 將其分類爲 $\omega_i$ 類,則記損失(loss)或稱爲代價(cost)爲 $\lambda_{ij}$ 。顯然,當 $j=i$ 時,$\lambda_{ij}=0$ 。
下面介紹幾種經常使用的損失函數。首先規定一下記號:
將樣本 $\textbf x$ 的真實類別記做 $y\in\{1,2,...,c\}$ ,並引入其one-hot表示 $\textbf y=(0,0,...,0,1,0,...,0)^{\top}\in\mathbb R^c$(只有真實類別的那一維是1即 $\textbf y_y=1$ ,其餘維均是0);
將分類器的輸出類別記爲 $\alpha(\textbf x)\in\{1,2,...,c\}$ ,而分類器認爲樣本屬於 $\omega_j $ 類的後驗機率爲 $\alpha_j(\textbf x)$ ,並將全部類別的後驗機率組成向量 $\boldsymbol\alpha(\textbf x)\in\mathbb R^c$ ;
記損失函數(loss function)爲 $L(y,\alpha(\textbf x))=\lambda_{\alpha(\textbf x),y}$ ,能夠定義以下幾種損失函數:
i. 0-1損失函數:
$$L(y,\alpha(\textbf x))=1,\text{ if }y\not=\alpha(\textbf x)\text{ else }0$$
也可用示性函數表示爲 $I(y\not=\alpha(\textbf x))$ ;
ii. 平方(quadratic)損失函數(迴歸問題也適用):
$$L(y,\alpha(\textbf x))=(y-\alpha(\textbf x))^2$$
iii. 交叉熵(cross entropy)損失函數:
$$L(y,\alpha(\textbf x))=-\sum_{j=1}^c\textbf y_j\log\alpha_j(\textbf x)=-\textbf y^{\top}\log\boldsymbol\alpha(\textbf x)$$
對於如今所討論的單標籤問題實際上就是對數損失函數 $L(y,\alpha(\textbf x))=-\log\alpha_y(\textbf x)$ ;
iv. 合頁(hinge)損失函數:對於二類問題,令標籤只可能取-1或1兩值,那麼
$$ L(y,\alpha(\textbf x))=\max\{0,1-y\alpha(\textbf x)\}$$
回到主題。
首先咱們引出指望風險(expected risk)的概念:
$$R_{\text{exp}}(\alpha)=\mathbb E[L(y,\alpha(\textbf x))]=\int_{\mathcal X\times\mathcal Y} L(y,\alpha(\textbf x))p(\textbf x,y)\text d\textbf x\text dy$$
也就是說樣本損失的指望。固然,這個值是求不出來的,由於假如說能夠求出來,就至關於知道了樣本和類別標記的聯合分佈 $p(\textbf x,y)$,那就不須要學習了。這個量的意義在於指導咱們進行最小風險決策。順着往下推:
$$\begin{aligned}R_{\text{exp}}(\alpha)&=\int_{\mathcal X\times\mathcal Y} L(y,\alpha(\textbf x))P(y|\textbf x)p(\textbf x)\text d\textbf x\text d y\\&=\int \biggl(\int L(y,\alpha(\textbf x))P(y|\textbf x)\text dy\biggr)p(\textbf x)\text d\textbf x\\&=\int \biggl(\sum_{y=1}^cL(y,\alpha(\textbf x))P(y|\textbf x)\biggr)p(\textbf x)\text d\textbf x\\&=\int R(\alpha(\textbf x)|\textbf x)p(\textbf x)\text d\textbf x\end{aligned}$$
咱們關注這個最後這個形式:
$$R_{\text{exp}}(\alpha)=\int R(\alpha(\textbf x)|\textbf x)p(\textbf x)\text d\textbf x$$
下面引出條件風險的概念:將一個樣本 $\textbf x$ 分類爲 $\omega_i$ 類的條件風險定義以下:
$$R(\alpha_i|\textbf x)=\sum_{j=1}^c\lambda_{ij}P(\omega_j|\textbf x)$$
這個式子很好理解,樣本 $\textbf x$ 屬於類別 $\omega_j(j\in 1,2,...,c)$ 的後驗機率是 $P(\omega_j|\textbf x)$,那麼取遍每個可能的類別,用損失進行加權就能夠。
有了一個樣本的表達式,就能夠換個角度來看指望風險的表達式了:它實際上就是以下的指望的形式
$$R_{\text{exp}}(\alpha)=\mathbb E[L(y,\alpha(\textbf x))]=\mathbb E_{\textbf x}[R(\alpha(\textbf x)|\textbf x)]$$
所謂的「條件風險」跟此前的錯誤率有什麼聯繫?爲了看得清楚一點,對比一下上面那個平均錯誤率的式子
$$R_{\text{exp}}(\alpha)=\int R(\alpha(\textbf x)|\textbf x)p(\textbf x)\text d\textbf x$$
$$P(error)= \int P(error|\textbf x)p(\textbf x)\text d\textbf x$$
能夠很直接地看出來:風險在這裏起到的做用和錯誤率在以前起到的做用相同,所以風險是錯誤率的一個替代品,一種推廣。
相似以前的分析,選擇對於每一個樣本都保證條件風險儘量小的分類規則 $\alpha(\textbf x)$,將使指望風險最小化。
由此可得,最小風險決策的決策規則爲:
$$\arg\min_iR(\alpha_i|\textbf x)$$
我這裏的順序和 [1] 有點不同,[1] 是先定義了條件風險 $R(\alpha(\textbf x)|\textbf x)$ ,再定期望的定義獲得指望風險 $R_{\text{exp}}(\alpha)$ ; 我這裏則是倒過來,從指望風險的直觀定義出發,導出了指望風險如何寫成條件風險的指望的形式,天然地引出了條件風險的定義。
若是將損失取成0-1損失,即當 $j\not=i$ 時 $\lambda_{ij}=1$ ,能夠推導出條件風險爲
$$R(\alpha_i|\textbf x)=\sum_{j=1}^c\lambda_{ij}P(\omega_j|\textbf x)=\sum_{j\not=i}P(\omega_j|\textbf x)=1-P(\omega_i|\textbf x)$$
顯然這個形式和最小錯誤率決策的式子如出一轍。所以,在使用0-1損失的時候,最小風險決策退化爲最小錯誤率決策。
另外,很容易意識到的一個事實是:使用0-1損失函數時,若是把一個本應是 $\omega_i$ 類的樣本錯分紅了 $\omega_j$ 類,與把一個本應是 $\omega_j$ 類的樣本錯分紅了 $\omega_i$ 類,這兩種狀況下的代價是相等的(只要分錯類,代價都是1)。實際上,這種狀況在許多場景下是不合理的:例如考慮一個二分類任務,其中有一類的訓練樣本極少,稱爲少數類,那麼在訓練過程當中,若是把少數類樣本錯分爲多數類,那麼這種決策行爲的代價顯然應該大於把多數類樣本錯分爲少數類 —— 即便分類器將所有訓練樣本都分到多數類,那麼訓練集上的錯誤率會很低,可是分類器不能識別出任何少數類樣本。至於如何解決類不平衡問題,這又是一個新的話題了,以前寫過一篇博客簡單摘抄了一點。
3、學習準則:經驗風險最小化與結構風險最小化
剛纔提到,咱們學習的目標是使指望風險最小;但實際上,指望風險沒法求出。給定含 $N$ 個樣本的訓練集,模型關於訓練集的平均損失(訓練偏差)定義爲經驗風險(empirical risk):
$$R_{\text{emp}}(\alpha)=\frac1N\sum_{i=1}^NL(y_i,\textbf x_i)$$
根據大數定律,當樣本數趨於無窮時,經驗風險趨於指望風險。因此一種學習策略是經驗風險最小化(empirical risk minimum,ERM),在樣本量足夠大的狀況下能夠有比較好的效果。當模型直接輸出後驗機率分佈、使用對數損失函數時,經驗風險最小化等價於極大似然估計(一個很是典型的推導:Logistic迴歸的推導過程)。
若是使用0-1損失函數,則經驗風險就是訓練集上的錯誤率;若是使用平方損失函數,則經驗風險就是訓練集上的均方偏差(MSE):
$$R_{\text{emp}}(\alpha)=\frac1N\sum_{i=1}^NI(y_i\not=\alpha(\textbf x_i))$$
$$R_{\text{emp}}(\alpha)=\frac1N\sum_{i=1}^N(y_i-\alpha(\textbf x_i))^2$$
可是樣本量不足時,這樣的作法容易招致過擬合(overfitting),由於評價模型是看它的泛化性能,須要其在測試集上有較好的效果,而模型在學習過程當中因爲過分追求在訓練集上的高正確性,可能將學習出很是複雜的模型。所以,另外一種策略是結構風險最小化(structural risk minimum,SRM),結構風險是在經驗風險的基礎上加上一個懲罰項(正則化項),來懲罰模型的複雜度:
$$R_{\text{srm}}(\alpha)=\frac1N\sum_{i=1}^NL(y_i,\textbf x_i)+C J(\alpha)$$
當模型直接輸出後驗機率分佈、使用對數損失函數、模型複雜度由模型的先驗機率表示時,結構風險最小化等價於最大後驗機率估計。
4、引入拒識的決策
在必要狀況下,分類器對於某些樣本能夠拒絕給出一個輸出結果(後面能夠轉交給人工處理)。
在引入拒識(reject)的狀況下,分類器能夠拒絕將樣本判爲 $c$ 個類別中的任何一類。具體來講,損失的定義以下:
$$\lambda_{ij}=\begin{cases} 0 & i=j;\\ \lambda_s & i\not=j; \\ \lambda_r\quad(\lambda_r<\lambda_s) & reject.\end{cases}$$
這裏必須有拒識代價小於錯分代價,不然就永遠都不會對樣本拒識了。在這種狀況下,條件風險的表達式爲
$$R(\alpha_i|\textbf x)=\begin{cases} \lambda_s(1-P(\omega_i|\textbf x)) & i=1,2,...,c;\\ \lambda_r & reject.\end{cases}$$
因此在引入拒識的狀況下,最小風險決策爲
$$\arg\min_iR(\alpha_i|\textbf x)=\begin{cases} \arg\max_iP(\omega_i|\textbf x) & \text{if}\quad \max_iP(\omega_i|\textbf x)>1-\frac{\lambda_r}{\lambda_s};\\ reject & otherwise.\end{cases}$$
這裏有一個提法:最小風險決策所決定出的貝葉斯分類器被稱爲貝葉斯最優分類器,相應地,風險被稱爲貝葉斯風險。可是須要注意,它成爲最優分類器的條件是機率密度函數能夠被準確地估計。而實際中,這很困難,由於估計機率密度函數的兩種方法——參數方法、非參數方法都是貝葉斯分類器的近似。
1、判別函數
判別函數 $g_i(\textbf x)$ 是對分類器的一種描述。分類規則能夠描述爲:
$$\arg\max_ig_i(\textbf x)$$
也就是說,選擇若是樣本 $\textbf x$ 使得類別 $\omega_i$ 的判別函數 $g_i(\textbf x)$ 的值最大,大於其餘任一類別的判別函數值 $g_j(\textbf x)(j\in\{1,...,c\}\setminus\{i\})$ ,則將它判爲 $\omega_i$ 類,這個類別的決策區域記爲 $\mathcal R_i$ 。
特別地,考慮二類分類問題,可獲得兩個類別的決策面(判別邊界)方程爲:$g_1(\textbf x)=g_2(\textbf x)$ 。
對於貝葉斯分類器來講,判別函數的形式能夠有多種選擇:最小風險決策對應於 $g_i(\textbf x)=-R(\alpha_i|\textbf x)$ ;最小錯誤率決策對應於 $g_i(\textbf x)=P(\omega_i|\textbf x)$ ,固然還可簡化爲 $g_i(\textbf x)=p(\textbf x|\omega_i)P(\omega_i)$ ,或者取對數後成爲
$$g_i(\textbf x)=\ln p(\textbf x|\omega_i)+\ln P(\omega_i)$$
2、多元高斯密度下的判別函數
對於生成式模型(Generative model),思路在於表徵類別內部的特徵分佈,建模路線是:$\textbf x\rightarrow p(\textbf x|\omega_i)\rightarrow g_i(\textbf x)$ 。這其中的關鍵就是如何根據樣原本估計 $ p(\textbf x|\omega_i)$ 。有兩種估計方法:參數方法和非參數方法(高絲混合模型則介於兩者之間)。下面就開始先介紹多元高斯密度下的判別函數,再介紹此情形下的參數估計;後面的博客會簡單介紹非參數方法。
參數方法將類條件機率密度 $p(\textbf x|\omega_i)$ 指定爲一個顯式表示的函數(好比多元高斯密度),而後將估計類條件機率密度轉化爲了估計函數的參數(好比多元高斯密度的均值向量和協方差矩陣)。
對於生成式模型來講,因爲是不一樣的類別 $\omega_i$ 的樣本是分開學習的,每一個類別都有本身的判別函數 $g_i(\textbf x)$ ,不關心彼此之間的區別(相比之下,判別式模型則是全部類別的樣本放在一塊兒學習,直接從樣本學習判別函數,目的就是區分各個類別),因此下面的討論中將省略類別信息 $\omega_i$ ,由於每一個類別都是同樣的過程。
假設樣本 $\textbf x\in\mathbb R^d$ 的類條件機率密度服從多元高斯密度 $p(\textbf x)\sim N(\boldsymbol\mu,\varSigma)$ ,即
$$p(\textbf x)=\frac{1}{(2\pi)^{\frac d2}|\varSigma|^{\frac12}}\exp(-\frac12(\textbf x-\boldsymbol\mu)^{\top}\varSigma^{-1}(\textbf x-\boldsymbol\mu))$$
其中均值向量和協方差矩陣分別爲(後面的討論裏,限定協方差矩陣爲正定矩陣,從而其行列式爲正)
$$\boldsymbol\mu=\mathbb E[\textbf x]=\int\textbf xp(\textbf x)\text d\textbf x$$
$$\varSigma=\mathbb E[(\textbf x-\boldsymbol\mu)(\textbf x-\boldsymbol\mu)^{\top}]=\int(\textbf x-\boldsymbol\mu)(\textbf x-\boldsymbol\mu)^{\top}p(\textbf x)\text d\textbf x$$
份量形式可寫爲
$$\mu_i=\mathbb E[x_i],\quad \varSigma_{ij}=\mathbb E[(x_i-\mu_i)(x_j-\mu_j)]$$
協方差矩陣的對角線元素表示各維的方差,非對角線元素代表兩維之間的協方差。對於高斯分佈來講,獨立等價於不相關,因此若是某兩維統計獨立,則 $\varSigma_{ij}=0$ 。
(1)多元高斯分佈有線性不變性:令 $\textbf y=A^{\top}\textbf x\in\mathbb R^k$ ,則 $p(\textbf y)\sim N(A^{\top}\boldsymbol\mu,A^{\top}\varSigma A)$ 。這個結論能夠很輕易的從特徵函數( $\phi(\textbf x)$ )的角度來證實。
(2)協方差矩陣的對角化 / 單位化:根據代數的知識咱們知道,對於實對稱矩陣 $\varSigma$ ,必定能夠找到一個正交矩陣 $\varPhi$ ,使特徵值分解後成爲對角矩陣 $\varLambda$ :
$$\varSigma\varPhi=\varPhi\varLambda$$
$$\varLambda=\varPhi^{-1}\varSigma\varPhi=\varPhi^{\top}\varSigma\varPhi$$
寫成份量形式就是熟悉的特徵值分解 $\varSigma\phi_i=\lambda_i\phi_i$,其中 $\varPhi=(\phi_1,...,\phi_d)$ 是各特徵向量 $\phi_i\in\mathbb R^d,\quad i\in\{1,...,d\}$ 構成的正交矩陣( $\varPhi^{\top}\varPhi=I$ ),每一個特徵向量自身作內積時值爲1:$\phi_i^{\top}\phi_i=1$ ,任兩個特徵向量作內積時值爲0:$\phi_i^{\top}\phi_j=0$ ;$\varLambda=\text{diag} (\lambda_1,...,\lambda_d)$ 是各特徵值做爲對角線元素的對角矩陣。
基於以上兩點,
i. 能夠經過線性變換 $\textbf y=\varPhi^{\top}\textbf x$,將協方差矩陣對角化:$p(\textbf y)\sim N(\varPhi^{\top}\boldsymbol\mu,\varLambda)$ ,值得注意的是主成分分析就是將協方差矩陣對角化的過程,見本系列博客的第四篇;
ii. 也能夠經過白化變換(Whitening transform)$A=\varPhi\varLambda^{-\frac12}$ ,將協方差矩陣單位化(注:在《模式分類》英文版的勘誤表上,將這個式子更正爲$A=\varPhi\varLambda^{-\frac12}\varPhi^{\top}$ ,可是課後習題有一道涉及白化變換的題目則沒有被勘誤;這兩種形式下均可推出變換後的協方差矩陣 $A^{\top}\varSigma A=I$ 是單位矩陣,因此我也不太清楚到底哪一個是對的)。
下面開始介紹多元高斯密度下的判別函數。咱們直接將多元高斯密度的表達式代入 $g_i(\textbf x)=\ln p(\textbf x|\omega_i)+\ln P(\omega_i)$ ,可獲得以下的二次判別函數(Quadratic discriminant function):
$$g_i(\textbf{x})=-\frac12(\textbf{x}-\boldsymbol{\mu}_i)^{\top}\varSigma_i^{-1}(\textbf{x}-\boldsymbol{\mu}_i)-\frac12\ln |\varSigma_i|+\ln P(\omega_i)\underset{\text{與}i\text{無關,能夠去掉}}{\underline{-\frac d2\ln2\pi}}$$
在二類狀況下,決策面是超二次曲面。
若是作必定的簡化,認爲各個類別的協方差矩陣都相等 $\varSigma_i=\varSigma$ ,將上式展開化簡,可獲得線性判別函數(Linear discriminant function):
$$g_i(\textbf{x})=(\boldsymbol{\mu}_i^{\top}\varSigma^{-1})\textbf{x}-\frac12\boldsymbol{\mu}_i^{\top}\varSigma^{-1}\boldsymbol{\mu}_i+\ln P(\omega_i)$$
在這種狀況下,二類分類的決策面是超平面。
這裏有個坑,就是當協方差矩陣是奇異矩陣,致使其逆矩陣沒法計算(MNIST數據集就存在這種狀況)。除了降維以外,我認爲還能夠利用如下兩種方法來規避這個問題:
(1)求僞逆矩陣 $\varSigma^\dagger=(\varSigma^{\top}\varSigma)^{-1}\varSigma^{\top}$ 來代替逆矩陣,僞逆矩陣也知足 $\varSigma^\dagger\varSigma=I$ 。固然了,有可能僞逆也是求不出來的,由於中間也有求逆操做。
(2)使用Shrinkage策略(正則判別分析),將各個類的協方差矩陣向同一矩陣縮並,還可把矩陣再向單位矩陣縮並:
$$\varSigma_i(\alpha)=\frac{(1-\alpha)n_i\varSigma_i+\alpha n\varSigma}{(1-\alpha)n_i+\alpha n},\quad 0<\alpha<1$$
$$\varSigma(\beta)=(1-\beta)\varSigma+\beta I,\quad 0<\beta<1$$
第二個式子單拿出來看的話,能夠認爲是對LDF作正則(但因爲LDF自己就比較簡單,因此該方法過於簡單了),第一個式子能夠認爲是對QDF作正則。這種策略也能夠用來緩解過擬合。
其實吧也不用搞這麼複雜,每一個類的協方差矩陣都像第二個式子那樣,加個很小的擾動就好了。
這裏附上sklearn庫中對LDF、QDF以及Shrinkage的介紹:1.2. Linear and Quadratic Discriminant Analysis ,其接口的調用方式無非仍是那幾行代碼,初始化一個類的實例,fit()方法來訓練,predict()方法來測試。。。我在上學期實現過(由於第一週課的做業是這個,[逃。。。),QDF在調了Shrinkage那個參數以後(取0.05步長直接搜索調的)在MNIST數據集上降維到500、200、100這三個維度上的accuracy和sklearn庫是同樣的,固然速度就慢了不止一點半點了哈。下面附上784維時我實現的LDF、QDF在驗證集的調參圖(降維以後的調參圖就不貼了哈太多了),LDF不加正則的效果是最好的,QDF則須要加正則:
考慮二類的狀況,錯誤率 $P(error)$ :
$$\begin{aligned}P(error)=&P(\textbf x\in\mathcal R_2,\omega_1)+P(\textbf x\in\mathcal R_1,\omega_2)\\=&P(\textbf x\in\mathcal R_2|\omega_1)P(\omega_1)+P(\textbf x\in\mathcal R_1|\omega_2)P(\omega_2)\\=&\int_{\mathcal R_2}p(\textbf x|\omega_1)P(\omega_1)\text{d}\textbf x+\int_{\mathcal R_1}p(\textbf x|\omega_2)P(\omega_2)\text{d}\textbf x\end{aligned}$$
對於一維特徵的特殊狀況,以下圖所示,分類錯誤率就是陰影面積。而三角形那部分能夠去掉從而使錯誤率最小,什麼樣的決策規則能夠去掉它?固然是 $\arg\max_ip(x|\omega_i)P(\omega_i)$ ,而這正是貝葉斯判決的最小錯誤率決策。
這裏有個結論(是 [1] 的一道課後習題):對於一個兩類問題,設兩類的類條件機率密度都服從多元高斯密度,且兩類先驗機率相等、協方差矩陣相等,那麼貝葉斯錯誤率爲
$$P(error)=\dfrac1{\sqrt{2\pi}}\int_{\frac r2}^{\infty}\exp(-\dfrac{u^2}2)\text{d}u$$
其中平方馬氏距離 $r^2=(\boldsymbol{\mu}_1-\boldsymbol{\mu}_2)^{\top}\varSigma^{-1}(\boldsymbol{\mu}_1-\boldsymbol{\mu}_2)$ ,若是能讓這個值增大,那麼錯誤率就會減少。考慮協方差矩陣是對角矩陣的狀況,能夠進一步獲得 $r^2=\sum_{i=1}^d(\frac{\mu_{i1}-\mu_{i2}}{\varSigma_i})^2$ ,其中 $\mu_{i1}$ 表示第一類樣本的第 $i$ 維特徵的均值。可見,若是某一維特徵在兩類樣本上的均值不一樣,那麼它就是有用的;另外,能夠經過增長特徵的方式,來增長 $r^2$ ,減少錯誤率。
可是仍是要注意,以上分析的前提是機率密度能夠被精確估計。實際上,樣本量有限,沒法準確估計機率密度。另外,特徵增長固然可能使錯誤率反而增長,除了由於估計不許確以外,還多是高斯密度這個前提自己就是不許的。並且,樣本量小而特徵不少,無疑會帶來不少麻煩,好比過擬合等。
1、參數估計
數理統計的基本問題就是根據樣本所提供的信息,對整體的分佈或者分佈的數字特徵做出統計推斷。所謂整體就是一個具備肯定分佈的隨機變量,參數估計問題就是整體所服從的分佈類型已知,但某些參數未知。
統計學中的兩大學派,貝葉斯學派(Bayesian)和頻率學派(Frequentist)對於參數估計的見解是不一樣的。頻率學派是直接估計參數的具體值;貝葉斯學派則將參數視做隨機變量,估計其分佈。極大似然估計(Maximum likelihood estimation,MLE)屬於頻率學派,貝葉斯參數估計(Bayesian estimation)則屬於貝葉斯學派。
兩者有沒有聯繫?有。好比說一維特徵的狀況,假設類條件機率密度的形式爲高斯密度且未知參數爲均值(方差已知),參數的先驗密度已知爲高斯密度:當樣本量無窮大時,貝葉斯估計出的均值趨近於MLE估計的均值(這個例子取自[1])。
既然說到了參數估計,不妨就總結一下三種估計方法:極大似然估計、最大後驗機率估計(Maximum a posteriori,MAP)、貝葉斯估計。
設要估計的參數爲 $\theta$ ,隨機變量 $\boldsymbol X$ 的 $n$ 個觀測值爲 $x_1,...,x_n$ (iid樣本,它們總體用 $X$ 表明,能夠認爲觀測數據就是訓練集)。首先仍是擺上貝葉斯公式,後驗等於似然乘先驗除以證據:
$$p(\theta |X)=\frac{p(X|\theta)p(\theta)}{p(X)}=\frac{p(X|\theta)p(\theta)}{\int p(X|\theta)p(\theta)\text d\theta}$$
1. 極大似然估計
極大似然估計是一種基於觀測數據,「機率最大的則最有可能發生」的思路,將似然最大化:
$$\hat\theta_{MLE}=\arg\max_{\theta}p(X|\theta)=\arg\max_{\theta}\prod_{i=1}^np(x_i|\theta)$$
式中 $\prod_{i=1}^np(x_i|\theta)$ 被稱爲似然函數。一般將其取對數獲得對數似然函數,再經過求偏導等於零這個方程來求極大值。式中的 $p(\cdot)$ 是PDF,若是是離散型隨機變量須要替換爲PMF( $P(\cdot)$ )。
舉個例子,拋硬幣10次,有3次正面朝上,估計拋一次硬幣時正面朝上的機率。在這個例子裏,$\boldsymbol X$ 服從二項分佈,PMF爲: $P(\boldsymbol X=1|\theta)=\theta$ 、$P(\boldsymbol X=0|\theta)=1-\theta$ ,因此
$$\hat\theta_{MLE}=\arg\max_{\theta}\theta^3(1-\theta)^7=0.3$$
2. 最大後驗機率估計
最大後驗機率估計則是將後驗最大化。從下面的推導能夠看出,它不光依賴觀測數據,還引入了對於參數的先驗知識,這對於觀測數據有問題(好比,觀測值太少)的狀況頗有利,由於先驗能夠認爲是「已經知道它大概是什麼樣的」:
$$\hat\theta_{MAP}=\arg\max_{\theta}p(\theta |X)=\arg\max_{\theta}p(X|\theta)p(\theta)$$
優化目標的第一項因子就是似然。當參數的先驗分佈是均勻分佈時,MLE和MAP等價。
仍是上面的例子,設先驗爲 $\theta\sim N(0.5,1)$ ,即 $p(\theta)=\frac{1}{\sqrt{2\pi}}\exp(-\frac{(\theta-0.5)^2}{2})$ ,那麼
$$\hat\theta_{MAP}=\arg\max_{\theta}\theta^3(1-\theta)^7\cdot \frac{1}{\sqrt{2\pi}}\exp(-\frac{(\theta-0.5)^2}{2})$$
3. 貝葉斯估計(這部分寫得很亂,不要看了。。。)
貝葉斯估計則是將參數看做隨機變量,估計其後驗密度 $p(\theta |X)$ ,並但願它在真實值 $\theta$ 附近有顯著尖峯:
$$p(\theta |X)=\frac{p(X|\theta)p(\theta)}{\int p(X|\theta)p(\theta)\text d\theta}$$
其中 $p(X|\theta)=\prod_{i=1}^np(x_i|\theta)$ 。對於測試樣本 $x$ ,能夠獲得機率密度:
$$p(x|X)=\int p(x,\theta |X)\text d\theta=\int p(x|\theta ,X)p(\theta |X)\text d\theta$$
由於測試樣本和訓練集無關,因此
$$p(x|X)=\int p(x|\theta)p(\theta|X)\text d\theta$$
經過這個式子,機率密度 $p(x|X)$ 和參數的後驗密度 $p(\theta|X)$ 被聯繫起來(注意 $X$ 的分佈形式已知,因此 $p(x|\theta)$ 的形式已知),說明參數的後驗分佈能夠對機率密度的估計產生影響。
在實際使用中,有如下幾種狀況:
(1) 若是參數的後驗密度 $p(\theta |X)$ 在值 $\hat\theta$ 處也有顯著尖峯,那麼機率密度 $p(x|X)\approx p(x|\hat\theta)$ 。換句話說,取 $\hat\theta$ 做爲參數的估計值。實際上就是MAP。
(2) 若是對參數的真實值沒有把握,上式說明 $p(x|X)$ 應該是 $p(x|\theta)$ 對全部可能的 $\theta$ 取平均值。因此另一種作法是,求得參數的後驗密度 $p(\theta |X)$ 以後,進行 $M$ 次採樣,獲得一系列 $\theta_i\sim p(\theta |X)$ ,從而取平均值:$p(x|X)\approx\dfrac1M\sum_{i=1}^Mp(x|\theta_i)$ 。
2、多元高斯密度下的參數估計
這裏直接上結論了:使用MLE估計多元高斯密度的均值向量和協方差矩陣,其估計結果將是下面的形式(從協方差的分母知道,它是有偏的):
$$\hat{\boldsymbol\mu}=\dfrac1n\sum_{k=1}^n\textbf x_k$$
$$\hat\varSigma=\dfrac1n\sum_{k=1}^n(\textbf x_k-\hat{\boldsymbol\mu})(\textbf x_k-\hat{\boldsymbol\mu})^{\top}$$
若是要使用無偏估計,則須要把第二個式子中的分母改爲 $n-1$ ,減去1的意義是自由度減小了1,由於用來估計了均值。
如下迭代公式提供了在線更新均值向量和協方差矩陣的方式(也是課後習題):每當新來一個樣本 $\textbf x_{n+1}$,均值向量和協方差矩陣的估計值可更新爲
$$\hat{\boldsymbol\mu}^{(n+1)}=\hat{\boldsymbol\mu}+\frac{1}{n+1}(\textbf x_{n+1}-\hat{\boldsymbol\mu})$$
$$\hat\varSigma^{(n+1)}=\frac{n-1}{n}\hat\varSigma+\frac{1}{n+1}(\textbf x_{n+1}-\hat{\boldsymbol\mu})(\textbf x_{n+1}-\hat{\boldsymbol\mu})^{\top}$$
參考資料:
[1] 《模式分類》及slides
[2] 《統計學習方法》