機器學習 —— 基礎整理(一)貝葉斯決策論;二次判別函數;貝葉斯錯誤率;生成式模型的參數方法


      本文簡單整理了以下內容:

(一)貝葉斯決策論:最小錯誤率決策、最小風險決策;經驗風險與結構風險

(二)判別函數;生成式模型;多元高斯密度下的判別函數:線性判別函數LDF、二次判別函數QDF

(三)貝葉斯錯誤率

(四)生成式模型的參數估計:貝葉斯學派與頻率學派;極大似然估計、最大后驗概率估計、貝葉斯估計;多元高斯密度下的參數估計

(五)朴素貝葉斯與文本分類(挪到了下一篇博客)

 

(一)貝葉斯決策論:最小風險決策(Minimum risk decision)

      貝葉斯決策論(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),將樣本的類別判為后驗概率最大的那一類。決策規則為:

$$\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$。

      一、最小錯誤率決策:等價於最大后驗概率決策

      從平均錯誤率(平均誤差概率) $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)等價於最大后驗概率決策。

      二、最小風險決策:期望風險最小化。最小錯誤率決策的推廣

      這里定義一個新的量:風險(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)。實際上,這種情況在許多場景下是不合理的:例如考慮一個二分類任務,其中有一類的訓練樣本極少,稱為少數類,那么在訓練過程中,如果把少數類樣本錯分為多數類,那么這種決策行為的代價顯然應該大於把多數類樣本錯分為少數類 —— 即使分類器將全部訓練樣本都分到多數類,那么訓練集上的錯誤率會很低,但是分類器不能識別出任何少數類樣本。至於如何解決類不平衡問題,這又是一個新的話題了,之前寫過一篇博客簡單摘抄了一點。

      三、學習准則:經驗風險最小化與結構風險最小化

      剛才提到,我們學習的目標是使期望風險最小;但實際上,期望風險無法求出。給定含 $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)$$

當模型直接輸出后驗概率分布、使用對數損失函數、模型復雜度由模型的先驗概率表示時,結構風險最小化等價於最大后驗概率估計

      四、引入拒識的決策

      在必要情況下,分類器對於某些樣本可以拒絕給出一個輸出結果(后面可以轉交給人工處理)。

      在引入拒識(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}$$

      這里有一個提法:最小風險決策所決定出的貝葉斯分類器被稱為貝葉斯最優分類器,相應地,風險被稱為貝葉斯風險。但是需要注意,它成為最優分類器的條件是概率密度函數可以被准確地估計。而實際中,這很困難,因為估計概率密度函數的兩種方法——參數方法、非參數方法都是貝葉斯分類器的近似。

(二)判別函數(Discriminant function)

      一、判別函數

      判別函數 $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)$$

      二、多元高斯密度下的判別函數

      對於生成式模型(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$ ,減小錯誤率。

      但是還是要注意,以上分析的前提是概率密度可以被精確估計。實際上,樣本量有限,無法准確估計概率密度。另外,特征增加當然可能使錯誤率反而增加,除了因為估計不准確之外,還可能是高斯密度這個前提本身就是不准的。而且,樣本量小而特征很多,無疑會帶來很多麻煩,比如過擬合等。

(四)生成式模型的參數估計

      一、參數估計

      數理統計的基本問題就是根據樣本所提供的信息,對總體的分布或者分布的數字特征作出統計推斷。所謂總體就是一個具有確定分布的隨機變量,參數估計問題就是總體所服從的分布類型已知,但某些參數未知。

      統計學中的兩大學派,貝葉斯學派(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)$ 。

      二、多元高斯密度下的參數估計

      這里直接上結論了:使用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] 《統計學習方法》

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM