在哪里可以找到使用 EM 计算 GMM 的 Mapreduce 实现(或教程)?
使用mapreduce框架真的可行吗?
我找到了这个讲座链接,但它不包含详细描述,如果我的数据(均值和方差)很大,那么我如何将它从映射器传递到减速器?
在哪里可以找到使用 EM 计算 GMM 的 Mapreduce 实现(或教程)?
使用mapreduce框架真的可行吗?
我找到了这个讲座链接,但它不包含详细描述,如果我的数据(均值和方差)很大,那么我如何将它从映射器传递到减速器?
好的,你说,你有实施 EM 算法的经验。这很容易解释。
如您所知,EM算法是一种寻找最大似然的迭代方法。一次迭代由期望(E-step)和最大化步骤(M-step)两个步骤组成。
在E-step中,样本的似然性是从之前的模型中计算出来的。设为样本数,我们n
可以得到n
可能性。
这里,似然度计算是独立进行的。所以这可以使用多处理器环境来执行。
假设我们在单台机器上有 4 个 CPU,n/4
每个 CPU 都可以计算出可能性。快 4 倍(忽略 IO 时间)
在M-step中,新模型由可能性推导出来。
mapper
由于彼此独立的样本,
E-step 可以扩展到mapreduce 上的任务。reducer
任务(这可以是多个减速器,但我只是推荐一个减速器)。
HDFS
mapreduce
HDFS
但与训练样本不同的目录
mappers
知道模型在哪里一项 mapreduce 任务类似于 EM 算法的一次迭代。所以需要迭代下一个mapreduce任务直到收敛
我已经简要解释了。在实施过程中,您将面临许多问题。
我希望这有帮助。