机器学习 —— 基础整理(一)贝叶斯决策论;二次判别函数;贝叶斯错误率;生成式模型的参数方法...
? ? ? 本文簡單整理了以下內容:
(一)貝葉斯決策論:最小錯誤率決策、最小風險決策;經驗風險與結構風險
(二)判別函數;生成式模型;多元高斯密度下的判別函數:線性判別函數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)\textze8trgl8bvbq\textbf?x+\int_{\mathcal R_1}p(\textbf?x|\omega_2)P(\omega_2)\textze8trgl8bvbq\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)\textze8trgl8bvbqu$$
其中平方馬氏距離 $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] 《統計學習方法》
?
?
轉載于:https://www.cnblogs.com/Determined22/p/6347778.html
總結
以上是生活随笔為你收集整理的机器学习 —— 基础整理(一)贝叶斯决策论;二次判别函数;贝叶斯错误率;生成式模型的参数方法...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MVC的实体模型写在类库,为什么被其他类
- 下一篇: SCU 4438 Censor