多项式分布的贝叶斯推断

6,760 阅读

多项式分布是非常常见的分布,他是二项分布在多维上的推广。例如掷骰子结果中,1-6点出现的次数就是一个多项式分布。多项式分布在如主题建模中非常常见,本文将讲述多项式分布的贝叶斯推导过程。

假设$x$是一个离散的变量,取值可能是$1,2,\cdots,K$。那么关于$x$的概率分布的集合可以使用一个参数为向量$\textbf{p}$的分布表示,其中$p(x=k)=p_k$。另一种写法如下:

p(x|\textbf{p})=\prod_{k=1}^K p_k^{\delta(x=k)}

这里的$\delta(x=k)$是一个指示函数,当x=k时,它的结果为$1$,否则为$0$。那么$N$个独立同分布的样本$\textbf{X}=\{ x_1,\cdots,x_N \}$的联合概率分布就是:

p(\textbf{X}|\textbf{p}) = \prod_{k=1}^K p_k^{N_k}
N_k = \sum_i \delta(x_i=k)

其实$N_k$的意思就是观测值是$k$的变量的个数。那么,在这里这些数量的联合概率应该是:

p(N_1\cdots N_K|\textbf{p}) = 

\begin{pmatrix}
N\\
N_1\cdots N_K

\end{pmatrix}

\prod_{k=1}^K p_k^{N_k}

这里的观测值是多项式分布,其先验可以设置成Dirichlet分布,这样它的后验也就是Dirichlet分布了。假设$\textbf{p}$的先验分布是参数为$\alpha$的Dirichlet分布:

p(\textbf{p}|\alpha) \sim \mathcal{D}(\alpha_1,\cdots,\alpha_K) = \frac{\Gamma(\sum_k\alpha_k)}{ \prod_{k=1}^{K} \Gamma(\alpha_k)} \prod_{k=1}^{K}p_k^{\alpha_k-1}

证据(Evidence)

\begin{aligned}

p(\textbf{X}|\alpha) &= \int_\textbf{p} p(\textbf{p},\textbf{X}|\alpha) d\textbf{p} \\

&\\

&= \int_\textbf{p} p(\textbf{X}|\textbf{p})p(\textbf{p}|\alpha) d\textbf{p} \\

&\\

&= \int_\textbf{p} \prod_{k=1}^K p_k^{N_k} \cdot \frac{\Gamma(\sum_k\alpha_k)}{ \prod_{k=1}^{K} \Gamma(\alpha_k)} \prod_{k=1}^{K}p_k^{\alpha_k-1} d\textbf{p} \\

&\\

&=  \frac{\Gamma(\sum_k\alpha_k)}{ \prod_{k=1}^{K} \Gamma(\alpha_k)} \int_\textbf{p} \prod_{k=1}^{K}p_k^{N_k+\alpha_k-1} d\textbf{p} \\

&\\

&=  \frac{\Gamma(\sum_k\alpha_k)}{ \prod_{k=1}^{K} \Gamma(\alpha_k) } \cdot \frac{ \prod_{k=1}^{K} \Gamma( N_k+\alpha_k) }{ \Gamma(\sum_k(N_k+ \alpha_k)) }  \int_\textbf{p} \frac{\Gamma(\sum_k(N_k+ \alpha_k)) }{  \prod_{k=1}^{K} \Gamma( N_k+\alpha_k) } \prod_{k=1}^{K}p_k^{N_k+\alpha_k-1} d\textbf{p} \\

\end{aligned}

其中,积分内部的项就是一个Dirichlet分布:

\mathcal{D}(\textbf{p};N_k+\alpha_k) = \frac{\Gamma(\sum_k(N_k+ \alpha_k)) }{  \prod_{k=1}^{K} \Gamma( N_k+\alpha_k) } \prod_{k=1}^{K}p_k^{N_k+\alpha_k-1}

对这个分布的所有的参数求积分最终结果就是1了,因此上式继续可以化简:

p(\textbf{X}|\alpha) =  \frac{\Gamma(\sum_k\alpha_k)}{ \Gamma(\sum_k(N_k+ \alpha_k)) } \cdot  \prod_{k=1}^{K} \frac{  \Gamma( N_k+\alpha_k) }{ \Gamma(\alpha_k) }  

我们假设所有数据点的数量是$N=\sum_k N_k$,因此:

p(\textbf{X}|\alpha) =  \frac{\Gamma(\sum_k\alpha_k)}{ \Gamma(N+ \sum_k(\alpha_k)) } \cdot  \prod_{k=1}^{K} \frac{  \Gamma( N_k+\alpha_k) }{ \Gamma(\alpha_k) }  

联合分布(Joint Distribution Probability)

\begin{aligned}

p(\textbf{X},\textbf{p}|\alpha) &= \frac{p(\textbf{X}|\textbf{p})p(\textbf{p}|\alpha)p(\alpha)}{p(\alpha)} \\

&\\

&= p(\textbf{X}|\textbf{p})p(\textbf{p}|\alpha) \\

&\\

&= \prod_{k=1}^K  p_k^{N_k} \cdot \frac{\Gamma(\sum_k\alpha_k)}{ \prod_{k=1}^{K} \Gamma(\alpha_k)} \prod_{k=1}^{K}p_k^{\alpha_k-1} \\

&\\

&= \frac{\Gamma(\sum_k\alpha_k)}{ \prod_{k=1}^{K} \Gamma(\alpha_k)} \prod_{k=1}^{K}p_k^{N_k+\alpha_k-1}

\end{aligned}

后验分布(Posterior Distribution Probability)

\begin{aligned}

p(\textbf{p}|\textbf{X},\alpha) &= \frac{ p(\textbf{X}|\textbf{p})p(\textbf{p}|\alpha)}{ p(\textbf{X},\alpha) } \\

&\\

&= \frac{ p(\textbf{X}|\textbf{p})p(\textbf{p}|\alpha)}{ \int_\textbf{p} p(\textbf{X},\textbf{p},\alpha) d\textbf{p}} \\


&\\

&= \frac{ p(\textbf{X}|\textbf{p})p(\textbf{p}|\alpha)}{ \int_\textbf{p} p(\textbf{X}|\textbf{p})p(\textbf{p}|\alpha) d\textbf{p}}  \\

&\\

&= \frac{\Gamma(\sum_k\alpha_k)}{ \prod_{k=1}^{K} \Gamma(\alpha_k)} \prod_{k=1}^{K}p_k^{N_k+\alpha_k-1} /  \frac{\Gamma(\sum_k\alpha_k)}{ \Gamma(N+ \sum_k(\alpha_k)) } \cdot  \prod_{k=1}^{K} \frac{  \Gamma( N_k+\alpha_k) }{ \Gamma(\alpha_k) } \\

&\\

&= \frac{\Gamma(N+ \sum_k(\alpha_k))}{ \prod_{k=1}^{K}\Gamma( N_k+\alpha_k) } \cdot \prod_{k=1}^{K} p_k^{N_k+\alpha_k-1} \\

&\\

&\sim \mathcal{D}(\textbf{p};N_k+\alpha_k)

\end{aligned}

预测分布(Predictive Distribution)

假设已经有了$N$个观测值,我们现在要预测第$N+1$个观测值属于某个类别$k$的概率,则:

\begin{aligned}

p(\tilde{x}=k|\textbf{X},\alpha) &= \frac{ p(\tilde{x}=k,\textbf{X},\alpha) }{p(X,\alpha)} \\

&\\

&= \frac{ \int_\textbf{p} p(\tilde{x}=k,\textbf{X}|\textbf{p}) p(\textbf{p}|\alpha) d\textbf{p} }{ \int_\textbf{p} p(\textbf{X}|\textbf{p}) p(\textbf{p}|\alpha) d\textbf{p} }  \\



&\\

&= \frac{ \int_\textbf{p} p_1,\cdots,p_{N},p_k \frac{\Gamma(\sum_k\alpha_k) }{ \prod_{k=1}^{K} \Gamma(\alpha_k)} \prod_{k=1}^{K}p_k^{\alpha_k-1} d\textbf{p} }{ \int_\textbf{p} p_1,\cdots,p_{N} \frac{\Gamma(\sum_k\alpha_k) }{ \prod_{k=1}^{K} \Gamma(\alpha_k)} \prod_{k=1}^{K}p_k^{\alpha_k-1} d\textbf{p} }  \\

&\\

&= \frac{N_k+\alpha_k}{N+\alpha}

\end{aligned}

参考文献:https://tminka.github.io/papers/minka-multinomial.pdf

DataLearner 官方微信

欢迎关注 DataLearner 官方微信,获得最新 AI 技术推送

DataLearner 官方微信二维码