在典型的聚类问题中,数据点x的概率为p(x) = sum_k p(k)p(x|k)
,其中k
是指定x所属聚类的潜在变量。我们可以使用EM算法来最大化训练数据集的目标函数的对数似然:sum_n log (sum_k p(k)(p(x|k)))
。
我想知道EM算法是否可以解决涉及两组潜在变量的问题,即p(x) = sum_k sum_l p(x|k, l)p(k)p(l)
?如果可以,我们该如何操作呢?
如果所有概率分布都是Sigmoid函数呢?
回答:
这应该只是EM算法的直接应用,作为解决隐藏数据问题的一种方法——隐藏数据是每一步中k和l的底层值。在E步,你计算期望对数似然,考虑每对可能的(k,l)值,使用给定数据和当前参数设置的概率作为权重。在M步,你找到最大化这个期望对数似然的参数。这与将(k,l)对编码为单一索引m非常相似,只是p(k)p(l)中的结构比p(m)中的结构更多,这会对M步产生轻微的影响。
如果概率是Sigmoid函数——或者任何其他概率分布——EM算法的理由仍然成立:每一步都会增加或保持对数似然不变。然而,如果优化问题变得更难,你可能会发现M步的计算成本会增加。