什么是机器学习中的 EM 算法? 【举例说明】

已发表: 2021-03-10

EM 算法或期望最大化算法是由 Arthur Dempster、Nan Laird 和 Donald Rubin 在 1977 年提出的潜变量模型。

潜变量模型包括可观察变量和不可观察变量。 观察到的变量是可以测量的,而未观察到的(潜在/隐藏的)变量是从观察到的变量中推断出来的。

正如三人所解释的那样,EM 算法可用于确定统计模型中潜在变量(需要从可观察变量推断的不可观察变量)的局部最大似然 (MLE) 参数或最大后验 (MAP) 参数。 它用于预测这些值或确定缺失或不完整的数据,前提是您知道与这些潜在变量相关的概率分布的一般形式。

简而言之,机器学习中 EM 算法背后的一般原则涉及使用潜在变量的可观察实例来预测学习不可观察的实例中的值。 这样做直到值收敛。

该算法是机器学习中相当强大的工具,是许多无监督算法的组合。 这包括 k-means 聚类算法以及其他 EM 算法变体。

加入来自世界顶级大学的在线机器学习课程——硕士、高管研究生课程和 ML 和 AI 高级证书课程,以加快您的职业生涯。

目录

期望最大化算法

让我们探索一下机器学习中期望最大化算法的机制:

资源

  • 第 1 步:我们有一组缺失或不完整的数据和另一组起始参数。 我们假设观测数据或参数的初始值是从特定模型生成的。
  • 步骤2:根据可用数据的可观察实例中的可观察值,我们将预测或估计数据的不可观察实例或缺失数据中的值。 这被称为期望步骤(E - 步骤)。
  • 第三步:使用E-step生成的数据,我们将更新参数,完成数据集。 这被称为最大化步骤(M - 步骤),用于更新假设。

重复步骤 2 和步骤 3,直到收敛。 这意味着如果这些值没有收敛,我们将重复 E - 步骤和 M - 步骤。

.

资源

EM算法的优缺点

EM算法的缺点
1 EM 算法中的每次迭代都会保证增加可能性。
2 期望步骤和最大化步骤相当简单,后者的解决方案大多以封闭形式存在。
EM算法的优点
1 期望最大化算法同时考虑了前向和后向概率。 这与仅考虑前向概率的数值优化形成对比。
2 EM 算法的收敛速度非常慢,只能达到局部最优。

EM算法的应用

潜变量模型在机器学习中有大量实际应用。

  1. 它用于无监督数据聚类和心理测量分析。
  2. 它还用于计算函数的高斯密度。
  3. EM 算法广泛用于预测隐马尔可夫模型 (HMM) 参数和其他混合模型。
  4. EM 算法在自然语言处理 (NLP)、计算机视觉和数量遗传学中有大量用途。
  5. EM算法的其他重要应用包括医学和结构工程领域的图像重建。

让我们了解使用高斯混合模型的 EM 算法。

高斯混合模型的EM算法

为了估计高斯混合模型的参数,我们需要一些由两个独立过程生成的观测变量,其概率分布是已知的。 但是,这两个过程的数据点是结合在一起的,我们不知道它们属于哪个分布。

我们的目标是使用 EM 算法的最大似然估计来估计这些分布的参数,如上所述。

这是我们将使用代码

# 给定一个函数,我们必须计算它的密度

# 给定 x_i 点的高斯 mu, sigma: G(x_i, mu, sigma);

# 另一个计算对数似然的函数:L(x, mu, sigma, pi)

def 估计_gmm(x, K, tol=0.001, max_iter=100):

'' 估计 GMM 参数。

:param x: 观察到的实值变量列表

:param K: 高斯数的整数

:param tol: 对数似然的容忍变化

:return: mu, sigma, pi 参数

''

# 0. 初始化 theta = (mu, sigma, pi)

N = 长度(x)

亩,西格玛 = [rand()] * K,[rand()] * K

pi = [rand()] * K

curr_L = np.inf

对于范围内的 j(max_iter):

prev_L = 当前_L

# 1. E-step: 责任 = p(z_i = k | x_i, theta^(t-1))

r = {}

对于范围内的 i (N):

部分 = [pi[k] * G(x_i, mu[k], sigma[k]) for i in range(K)]

总计 = 总和(部分)

对于 k 中的 i:

r[(i, k)] = 部分[k] / 总计

# 2. M-step:更新 mu、sigma、pi 值

rk = [sum([r[(i, k)] for i in range(N)]) for k in range(K)]

对于范围内的k(K):

pi[k] = rk[k] / N

mu[k] = sum(r[(i, k)] * x[i] for i in range(N)) / rk[k]

sigma[k] = sum(r[(i, k)] * (x[i] – mu[k]) ** 2) / rk[k]

# 3. 检查退出条件

curr_L = L(x, mu, sigma, pi)

如果 abs(prev_L – curr_L) < tol:

休息

返回 mu、sigma、pi

在 E-Step 中,我们可以使用贝叶斯定理来确定从算法的过去迭代中得出的给定数据点的期望值。 在 M 步中,我们假设潜在变量的值是固定的,以使用最大似然估计未观察到的实例中的代理。 最后,我们使用标准均值和标准差公式来估计高斯混合模型的参数。

结论

这将我们带到了文章的结尾。 有关机器学习概念的更多信息,请通过upGrad机器学习和 AI 理学硕士课程与班加罗尔 IIIT 和利物浦约翰摩尔斯大学的顶尖教师取得联系

这是一个 18 个月的课程,提供 450 多个小时的学习内容、12 个以上的行业项目、10 个 Capstone 项目选项和 10 多个编码作业。 您还可以享受来自行业专家的个性化指导,以及通过现场课程提供的职业指导咨询。 下一批将于 2021 年 2 月 28 日开始!

EM 聚类是什么意思?

为了优化观测数据的概率,EM 聚类用于估计每个聚类(分布)的均值和标准差。 基于不同集群中不同分布的组合,EM 算法试图逼近观察到的值分布。 EM 使用有限高斯混合模型对数据进行聚类,并迭代地估计一组参数,直到达到所需的收敛值。 EM 聚类产生的结果与通过 K 均值聚类获得的结果不同。

EM算法的实际应用是什么?

在医学领域,EM算法用于图像重建。 它还用于预测隐马尔可夫模型(HMM)和其他混合模型的参数。 它还有助于完成特定样本中的缺失数据。 项目反应理论模型中的项目参数和潜在能力是使用心理测量学中的 EM 估计的。 它也广泛应用于结构工程领域。

MLE 算法与 EM 算法有何不同?

在存在隐藏变量的情况下,最大似然估计过程只是简单地挑战数据。 MLE 最初收集所有数据,然后利用它来构建最有可能的模型。 对于潜在变量,期望最大化算法为最大似然估计提供了一种迭代解决方案。 EM 首先对参数进行有根据的估计,然后检查缺失的数据,然后更改模型以适应有根据的猜测和观察到的数据。