貝葉斯推斷之最大后驗概率(MAP)
本文詳細記錄貝葉斯后驗概率分布的數學原理,基於貝葉斯后驗概率實現一個二分類問題,談談我對貝葉斯推斷的理解。
1. 二分類問題
給定N個樣本的數據集,用\(X\)來表示,每個樣本\(x_n\)有兩個屬性,最終屬於某個分類\(t\)
$t=\left\{0,1\right\}$
$\mathbf{x_n}=\begin{pmatrix}x_{n1} \\ x_{n2} \\ \end{pmatrix}$, 假設模型參數$w=\begin{pmatrix} w_1 \\ w_2\end{pmatrix}$
$\mathbf{X}=\begin{bmatrix} x_1^T \\ x_2^T \\. \\. \\ x_n^T\end{bmatrix}$
將樣本集用用圖畫出來如下:
根據貝葉斯公式有:
(公式1)
\(p(w | t,X)\)告訴我們:在已知訓練樣本集 \(X\) 以及這些樣本的某個分類 \(t\) (這是一個監督學習,因為我們已經有了樣本集\(X\)、以及樣本集中每個樣本所屬的分類\(t\)),需要求解模型參數 \(w\) 。因此,\(w\) 是未知的,是需要根據樣本通過貝葉斯概率公式來進行求解的。求得了\(p(w|t,X)\)的分布,也就知道了模型參數\(w\)
當我們求得了最優的模型參數 \(w^*\) 之后,給定一個待預測的樣本 \(\mathbf{x_{new}}\) 根據公式$$P(T_{new}=1|x_{new}, w^*)$$ 來計算新樣本 \(\mathbf{x_{new}}\) 歸類為 1 的概率是多少,這就是模型的預測。
公式1 中等號右邊一共有三部分,\(p(t|X,w)\)稱為似然概率(likelihood),\(p(w)\)稱為先驗概率,這兩部分一般比較容易求解。最難求解的是分母: \(p(t|X)\) 稱為邊界似然函數(marginal likelihood)。但是幸運的是,邊界似然函數與模型參數\(w\)無關,因此,可以將分母視為關於 \(w\) 的一個常量。
在數學上,若先驗概率與似然概率共軛,那么后驗分布概率\(p(w|t, X)\) 與先驗概率服從相同的分布。比如說:先驗概率服從Beta分布,似然概率服從二項分布,這時先驗概率分布與似然概率分布共軛了,那么后驗概率也服從Beta分布。
因此,在使用貝葉斯公式時,如果選擇的先驗概率分布與似然概率分布共軛,那后驗概率分布就很容易計算出來了(或者說是能夠准確地計算出一個 **具體的/精確的 **模型參數 \(w^*\)),這就是:can compute posterior analytically。但現實是,它們二者之間不共軛,從而出現了三種常用的近似計算方法:
- 點估計(Point Estimate--MAP方法)
- 拉普拉斯近似方法(Laplace approximation)
- 采樣法(Sampling--Metropolis-Hastings)
而本文只介紹點估計法。
回到公式1,首先來看先驗概率\(p(w)\) ,先驗概率類似於在做一個決定時,已有的經驗。因為我們已經有了訓練樣本\(X\),將這些樣本對應的等高線畫出來,它們根高斯分布很接近,那么就可以認為先驗概率服從高斯分布。也即$$p(w)=N(0,\sigma^2I)$$。其中,\(w\) 是一個向量,\(I\) 是單位矩陣。
接下來是似然概率 \(p(t|X,w)\) ,假設在給定模型參數\(w\) 以及樣本集\(X\) 的條件下,各個樣本的分類結果是相互獨立的,因此:
$$p(t|X,w)=\prod_{n=1}^N p(t_n|x_n, w)$$ (公式2)
舉個例子,在已知模型參數 $w$ 時,$w$ 將$x_1$ 預測為正類,將 $x_2$ 預測為負類……將 $x_n$ 預測正類,模型對各個樣本的預測結果是相互獨立的。即:$w$ 對 $x_1$ 的預測結果 不會影響它對 $x_2$的預測結果。由於,是二分類問題,\(t_n=\left\{0,1\right\}\) ,可以進一步將公式2 寫成:$$p(t|X,w)=\prod_{n=1}^N p(T_n=t_n|x_n, w)$$ ,其中 \(T_n\) 代表樣本\(x_n\)被歸為某個類的 隨機變量,\(t_n\)是該隨機變量的取值。比如\(t_n=0\)表示樣本\(x_n\)被分類為正類,\(t_n=1\)表示被歸為負類。
2. sigmod函數
由於隨機變量取某個值的概率在[0,1]之間,因此要求解\(p(t|X,w)\),我們的目標是:找一個函數\(f(\mathbf{x_n};w)\) 這個函數能夠產生一個概率值。為了簡化討論,選擇 \(sigmod(w^T*x)\) ,於是:
\[P(T_n=1|x_n,w)=\frac{1}{1+exp(-w^T*x_n)} \]
那么:
\[P(T_n=0|x_n,w)=1-P(T_n=1|x_n,w)=\frac{exp(-w^T*x_n)}{1+exp(-w^T*x_n)} \]
將上面兩個公式合二為一:
\[P(T_n=t_n|x_n,w)=P(T_n=1|x_n,w)^{t_n}P(T_n=0|x_n,w)^{1-t_n} \]
對於N個樣本,公式2可寫成:
\[p(t|X,w)=\prod_{n=1}^N (\frac{1}{1+exp(-w^T*x_n)})^{t_n}(\frac{exp(-w^T*x_n)}{1+exp(-w^T*x_n)})^{1-t_n}$$ **(公式3)** \]
至此,先驗概率服從高斯分布,似然概率由公式3 給出,就可以求解前面提到的后驗概率公式:$$p(w|X,t,\sigma^2)$$
只要求得了后驗概率,就可以使用如下公式計算新樣本分為負類的概率:
$$P(t_{new}=1|x_{new}, X, t)=E_{p(w|X,t,\sigma^2)}\left(\frac{1}{1+exp(-w^T*x_{new})}\right)$$
解釋一下這個公式:因為現在已經求得了后驗概率$p(w|X,t,\sigma^2)$的表達式,它是一個關於$f(x_n;w)$的函數,計算這個函數的期望值$E$,這個期望值就是 預測新樣本$x_{new}=1$的概率。好,接下來就是求解后驗概率了。
3. 求解后驗概率
前面已經說過,先驗概率服從高斯分布\(N(0,\sigma^2I)\),似然分布由 公式3 給出,而分母--邊界似然函數是一個關於 \(w\) 的常數,因此定義一個函數 \(g(w;X,t,\sigma^2)=p(t|X,w)p(w|\sigma^2)\) ,函數\(g\) 顯然與后驗概率\(p(w|X,t,\sigma^2)\)成比例。因此,求得了函數\(g\) 的最大值,就相當於求得了后驗概率的最優參數\(w^*\)。
這里有個問題就是:憑什么能最大化函數g呢?\(g\)是 \(w\) 的函數,\(w\)取哪個值時函數 \(g\) 達到最大值呢?
這里需要用到一個方法叫做牛頓法(Newton-Raphson method)。牛頓法可用於尋找函數中的零點。它通過下面公式:
\[x_{n+1}=x_n-\frac{f(x_n)}{f'(x_n)} \]
不斷迭代,最終找到函數值為0的點。
而在數學中判斷函數在某個點取極值時,有如下定理:
以一元可導函數\(h(x)\)為例,\(h(x)\)導數為0的點是極值點,但是這個極值點是極小值,還是極大值呢?這時可通過判斷\(h(x)\)是二階導數來判斷該極值點到底是極小值還是極大值。若\(h'(x_n)=0\)且\(h''(x_n)<0\),則,則\(h(x)\)在在 \(x_n\)處取極大值。
因此,若能夠判斷 \(g(w;X,t,\sigma^2)\)關於\(w\)的二階導數小於0,那么就可以使用牛頓法來求解 \(g(w;X,t,\sigma^2)\)的一階導數關於\(w\)的零點,即\(g'(w;X,t,\sigma^2)=0\)時\(w\)的取值為\(w_0\),這個\(w_0\)就是最優解 \(w^*\)了。
好,那下面就來證明一下\(g(w;X,t,\sigma^2)\)關於\(w\)的二階導數是小於0的。由於\(w\)是向量,在多元函數中,相當於要證明的是:\(g(w;X,t,\sigma^2)\)關於\(w\)的黑塞矩陣是負定的。
將函數\(g\)取對數,最大化\(log (g(w;X,t,\sigma^2))\):
$log (g(w;X,t,\sigma^2))=log({p(t|X,w)p(w|\sigma^2}))$
為了簡化公式,做如下約定:
假設\(w\)是一個\(D\)維向量:
前面三項是先驗分布服從高斯分布后,化簡得到的結果。根據向量求導公式:$$\frac{\partial w^Tw}{\partial w}=w$$
由鏈式求導法則:
得到:
於是:\(log (g(w;X,t,\sigma^2))\)對 \(w\)的一階偏數如下:
二階偏導數如下:
\(I\)是單位矩陣,\(0=<P_n<=1\)是概率值,求得的二階偏導數就是黑塞矩陣,它是負定的。
證明完畢。
至此,就可以放心地用牛頓法不斷迭代,找出\(g(w;X,t,\sigma^2)\)取最大值時參數\(w\)的值了,而這個值就是\(w^*\)
現在,\(w^*\)求出來了,就可以用下面公式預測新樣本 \(x_{new}\)被預測為負類(\(T_{new}\)取值為1)的概率了
decision boundary
由於是個二分類問題,來看看使用貝葉斯后驗概率進行分類的 決定邊界 長什么樣子。由於輸出的是一個概率值,顯然約定\(P(T_{new}=1|x_{new},w^*)>0.5\)預測為負類,\(P(T_{new}=1|x_{new},w^*)<0.5\)時預測為正類。那等於0.5時呢?
根據:$$P(T_{new}=1|x_{new},w^)=\frac{1}{1+exp(-w^{T}x_{new})}=0.5$$得出:
\[-w^{*T}*x=0=w_1^*x_1+w_2^*x_2 \]
\[x_2=\frac{w_1^*}{w_2^*}*(-x_1) \]
也就是說樣本\(\mathbf{x}=\begin{pmatrix}x_{1} \\ x_{2} \\ \end{pmatrix}\)的兩個屬性\(x_1\)和\(x_2\)是成線性比例的。而這條直線就是decision boundary
總結
貝葉斯方法是機器學習中常用的一種方法,在貝葉斯公式中有三部分,先驗概率分布函數、似然概率分布函數、和邊界似然概率分布函數(貝葉斯公式的分母)。求出了這三部分,就求得了后驗概率分布,然后對於一個新樣本\(x_{new}\)計算后驗概率分布的期望值,這個期望值就是貝葉斯模型的預測結果。
由於后驗概率分布的計算依賴於先驗概率分布函數、似然概率分布函數,當這二者共軛時,后驗概率與先驗概率服從相同的分布函數,從而可以推導計算出后驗概率分布(posterior could be computed analytically)。但是,當這二者不共軛時,則是計算后驗概率分布的近似值。計算近似值一共有三種方法,點估計法(point estimate --- MAP),拉普拉斯近似法,Metropolis-Hastings采樣法。而本文主要介紹 是第一種方法:點估計法(point estimate --- maximum a posteriori)。
maximum a posteriori中的最大化體現在哪里呢?其實是體現在似然分布函數的最大化上。黑塞矩陣的負定性證明了\(g(w;X,t,\sigma^2)\)有最大值,再使用牛頓法不斷迭代找到了這個使得函數\(g\)取最大值的最優參數解\(w^*\)。而求得了最優參數\(w^*\),就求得了后驗概率分布公式。對於一個待預測的新樣本\(x_{new}\),計算該樣本后驗概率分布的期望值,這個期望值就是貝葉斯模型對新樣本的預測結果。
參考資料
牛頓法:https://zh.wikipedia.org/wiki/牛頓法
博客園Markdown公式亂碼:http://www.cnblogs.com/cmt/p/markdown-latex.html