SyntaxHighlighter是个WordPress(也支持别的博客)上非常好用的语法高亮插件,但是在该插件的设置里没给出默认支持的高亮语言列表(让你自己去官网上找)。查了一下插件的文件,发现除去官网上所列的以外,还支持latex和matlab:
高斯混合模型的matlab实现(转)
高斯混合函数实现部分是基本上是转载的的pluskid大神文章里的里的代码,加了一点注释,并根据他给的方法二解决 covariance 矩阵 singular 的问题。
|
|
注意:
pluskid大神这里最后返回的是px,我觉得非常奇怪,因为PRML里对点做hard assignment时是根据后验概率来判别的。于是我在大神博客上问了一下,他的解释是最大似然和最大后验的区别,前者是挑x被各个模型产生的概率最大的那个,而后者加上了先验知识,各有道理。一句话就茅塞顿开,真大神也~
高斯混合模型参数估计详细推导过程
已知多元高斯分布的公式: \[N(x|\mu,\Sigma)=\frac{1}{(2\pi)^{D/2}|\Sigma|^{1/2}}\exp(-\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu))\] 其中\(D\)为维度,\(x\)和\(\mu\)均为\(D\)维向量,协方差\(\Sigma\)为D维矩阵。我们求得后验概率: \[w^{(i)}_j=Q_i(Z^{i}=j)=P(z^{(i)}=j|x^{(i)};\phi,\mu,\Sigma)\] 在E步,\(w^{(i)}_j\)是一个固定值,然后我们用它来估计似然函数\(L(X,Z;\theta)\)(这里\(\theta=(\phi,\mu,\Sigma)\))在分布\(Z\sim P(Z|X;\theta)\)上的期望\(E_{Z|X,\theta_t}[L(X,Z;\theta)]\)(式子1): \[\begin{split} & \sum^m_{i=1}\sum_{z^{(i)}} Q_i(z^{(i)})\log{\frac{p(x^{(i)},z^{(i)};\phi,\mu,\Sigma)}{Q_i(z^{(i)})}} \\& =\sum^m_{i=1}\sum^k_{j=1} Q_i(z^{(i)}=j)\log{\frac{p(x^{(i)}|z^{(i)}=j;\mu,\Sigma)p(z^{(i)}=j;\phi)}{Q_i(z^{(i)})}} \\& =\sum^m_{i=1}\sum^k_{j=1} w^{(i)}_j\log{\frac{\frac{1}{(2\pi)^{D/2}|\Sigma|^{1/2}}\exp(-\frac{1}{2}(x^{(i)}-\mu_j)^T\Sigma_j^{-1}(x^{(i)}-\mu_j))\cdot\phi_j}{ w^{(i)}_j}} \\\end{split}\] 由于分母\(w^{(i)}_j\)在取对数之后是常数,与参数无关,求导时自然会变成0,所以我们写公式的时候为了简便舍去分母。