问题标签 [expectation-maximization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
149 浏览

unsupervised-learning - lingpipe中的EM软聚类

在 Lingpipe 的 EM 教程中,他们说可以在没有监督数据的情况下运行算法:

通过让初始分类器随机分配类别,可以以完全无监督的方式训练分类器。只有类别的数量必须是固定的。算法完全一样,收敛后的结果或者最大epoch数就是一个分类器。

但是他们的课程TradNaiveBayesClassifier需要有标签和无标签的语料库才能运行。如何修改它以在没有标记数据的情况下运行?

0 投票
1 回答
676 浏览

machine-learning - 迭代条件模式 E step EM

我想知道使用 ICM 作为 EM 算法中 E 步骤的近似值的数学依据是什么。

正如我在 E 步骤中所理解的那样,这个想法是找到一个等于潜在变量的后验分布的分布,这保证了可能性增加或从一些更简单的分布族中找到最佳可能分布,这保证了下限似然函数的增加。

如何在数学上证明在这样的 E 步骤中使用 ICM 是合理的?任何参考/推导/注释都会非常有帮助。

0 投票
2 回答
97 浏览

algorithm - 期望最大化重新估计

通常,当 lambda.bar - lambda 小于某个 epsilon 值时,重新估计迭代过程会停止。

究竟如何确定这个 epsilon 值?我经常只看到在论文中写成一般的 epsilon 符号,而不是实际使用的值,我认为它会根据数据而改变。

因此,例如,如果我第一次迭代的 lambda 值为 5*10^-22,第二次迭代是 1.3*10^-15,第三次是 8.45*10^-15,第四次是 1.65*10^-14,等等.,我将如何确定算法何时不再需要迭代?

此外,如果我将相同的算法应用于不同的数据集怎么办?我需要更改我的 epsilon 定义吗?

对不起,很长的问题。对此感到非常困惑...... :)

0 投票
1 回答
3159 浏览

opencv - OpenCV 期望最大化

我正在尝试在 OpenCV 2.4.5 上使用 EM 进行背景和前景图像分离。但是,与以前版本的 C 类不同,c++ 对我来说非常混乱,并且由于缺乏文档(从我的观点来看),一些例程相当混乱。

我写了以下代码,但似乎不起作用。它给出了错误,我非常努力地调试但仍然无法正常工作。

基本上,我将图像转换为 CV_64F 类型的浮点数并将其传递到训练例程中。也许我认为我错了,我可以就我的错误获得帮助。谢谢

0 投票
1 回答
203 浏览

algorithm - Fisher信息与EM算法的关系?

Fisher信息与EM算法有什么关系?当我阅读EM算法的论文时,人们有时会讨论Fisher信息,并且有将Fisher评分法和EM算法结合在一起的算法。但是,我找不到材料清楚地说明 Fisher 信息与 EM 算法的关系以及它所起的作用?

谁能帮我理解是否有任何联系?

0 投票
2 回答
858 浏览

parallel-processing - CUDA 动态并行的替代方案

我想我对 CUDA 编程模型和一般编程很陌生。我正在尝试并行化期望最大化算法。我正在研究具有计算能力 2.0 的 gtx 480。起初,我有点认为设备没有理由启动自己的线程,但当然,我错了。我遇到了这个pdf。

http://docs.nvidia.com/cuda/pdf/CUDA_Dynamic_Parallelism_Programming_Guide.pdf

不幸的是,动态并行只适用于最新最好的 GPU,计算能力为 3.5。如果不深入探讨太多细节,动态并行的替代方案是什么?CPU EM 算法中的循环有很多依赖关系并且是高度嵌套的,这似乎使动态并行性成为一种有吸引力的能力。我不确定我的问题是否有意义,所以请询问您是否需要澄清。

谢谢!

0 投票
1 回答
615 浏览

opencv - 期望最大化让 covs 函数在 OpenCV 2.4.6 上不起作用,并且在训练函数后集群变化的数量

我有两个问题。第一个是为什么在训练功能后 ncluster 从 10 切换到 80。第二:我正在使用 OpenCV 将我的代码从 C 传递到 C++,但它似乎存在一些问题。当我尝试获取模型的 covs 时出现异常,这是代码:

调试后,错误显示在最后一行之后。系统显示带有 myprogram.exe 的窗口已触发断点,如果单击继续,我将看到 Microsoft Visual C++ 调试库窗口,其中包含文件:f:\dd\vctools\crt_bld\self_x86\crt\src\dbgheap.c; 线路:1322;表达式:_CrtIsValidHeapPointer(pUserData)。

几乎相同的代码适用于这个人:How to use the CV::EM class in OpenCV 2.4.2?

0 投票
2 回答
389 浏览

opencv - 使用 OpenCV 最大化期望在人身上绘制椭圆

我对如何实现我的目标有一些疑问。我有一个正在记录人物的外部摄像机,我想在每个人身上画一个椭圆。

现在我要做的是从框架中获取人物的特征点(我使用蒙版让他们只有人物的特征点),设置一个 EM 算法并用我的样本训练它(提取的特征点) . 聚类的数量是图像中人数的两倍(我在使用其他方法(例如使用码本进行像素计数)开始 EM 算法之前得到它)。

我的问题是

  • (a) 我是否必须只为第一帧训练它,然后在接下来的帧中使用预测?或者,
  • (b) 在每一帧中使用带有特征点的火车?

现在我正在做选项 b)(我不使用预测),因为我真的不知道如何使用预测。

如果我做了 a),你能帮我解决这个问题,然后如何画椭圆吗?如果我做 b),你能帮我为每个人画一个椭圆吗?因为正确知道我使用 cov、mean 等为同一个人得到了不同的椭圆(例如,一个用于手臂)。

我想要实现的是使用高斯模型的这篇论文:http: //ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=5580105&tag=1&url= http%3A%2F%2Fieeexplore.ieee.org%2Fxpls %2Fabs_all.jsp%3Farnumber%3D5580105%26tag%3D1

0 投票
1 回答
1256 浏览

matlab - 使用非均匀隐马尔可夫模型预测降雨

我是 HMM 的新手,但我已经阅读了足够多的文献。我正在做一个项目,我将使用大气参数预测降雨量。

10 年来,我有四个可观测的大气特征(湿度、温度、风、海平面高度)。我也有降雨量数据。

据我了解,每天都会根据空间降雨量指定天气状态。那么问题来了。假设我有 100 天的数据。

降雨量 = { 1,2,3,4... 100}。那么,如果我想生成天气状态,我应该怎么做?

让我们假设

怎么找

  • P(X_0) 初始参数,
  • P(X_t|X_t-1) 状态转移矩阵,
  • P(Y_t|X_t) 观察对状态的依赖性

我需要一些聚类来生成状态吗?

我在 MATLAB 中对其进行编码。

您可以附带您的示例或任何可以解释在程序中实现的过程的资源。

0 投票
1 回答
156 浏览

c++ - CvEM::getCovs 函数中的访问冲突

我正在使用 cvEm 对 2D 数据进行高斯混合建模。调用 train 函数后,它返回 True(签署成功的训练)和分类结果(具有不同颜色的不同集群)似乎是合理的,但是在获取集群的协方差矩阵时出现访问冲突错误!

以下是相关的代码行: