我正在尝试为伯努利分布混合情况下的EM算法编写MAP更新公式。
我知道对于最大似然估计,我们有以下步骤:
E-step: 计算P(Z|X,p,t)M-Step: (p,t)<-argmax sum(over Z): p(Z|X,p,t)log p(X,Z|p,t)
其中p是每个类别的向量参数(共有K个,每个大小为D,其中K是类别数,D是特征数),t是每个类别的多项式参数。
但是,如何获得MAP估计呢?p(X)会是什么…?
回答:
根据Kevin P. Murphy的《机器学习 – 概率视角》第350页:
在M步,我们针对theta优化Q函数(辅助函数):
theta^t = argmax_theta Q(theta,theta^{t-1})
这是最大似然估计,而为了执行MAP估计,我们修改M步如下:
theta^t = argmax_theta Q(theta,theta^{t-1})+log(p(theta))
theta是参数,theta^{t-1}是参数的前一次近似值,theta^t是当前值。
其中Q是
Q(theta,theta^{t-1}) = E[logL(theta)|Data,theta^{t-1}]
E步保持不变
因此,ML和MAP之间的主要区别在于argmax中加入了log(p(theta)),即参数的对数先验。
对于一个特定的例子,其中先验p(theta)服从beta(alpha,beta)分布,我可以参考这里的最后一个作业答案:作业
使用你的先验或保持一般先验应该很简单。