多项式分布的贝叶斯推断

标签:#分布##多项式分布##统计基础##贝叶斯# 时间:2017/12/01 22:28:46 作者:小木

多项式分布是非常常见的分布,他是二项分布在多维上的推广。例如掷骰子结果中,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

支付宝扫码打赏

如果文章对您有帮助,欢迎打赏鼓励作者