在伯努利分布混合的情况下,我正在尝试写下 EM 的 MAP 更新。
我知道对于 ML 估计,我们有:
E-step: compute 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) 会是什么...?
在伯努利分布混合的情况下,我正在尝试写下 EM 的 MAP 更新。
我知道对于 ML 估计,我们有:
E-step: compute 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})
这是 ML,为了执行 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) 分布的特定示例,我可以在这里参考最后一个作业答案:assignment
使用您的优先级或将其保留在一般优先级应该是直截了当的。