据我所知,EM算法可用于在设置为零时找到最大似然,关于似然参数的偏导数给出了一组无法解析求解的方程。但是,是否需要 EM 算法而不是使用一些数值技术来尝试找到关于所提到的方程组约束的最大似然性。
为什么使用期望最大化算法?
机器算法验证
期望最大化
2022-02-09 11:53:50
3个回答
这个问题是合法的,当我第一次学习 EM 算法时,我也有同样的困惑。
一般而言,EM 算法定义了一个迭代过程,该过程允许在模型的某些变量是(或被视为)“潜在”或未知的情况下最大化参数模型的似然函数。
理论上,出于相同目的,您可以使用最小化算法以数值方式找到所有参数的似然函数的最大值。然而在实际情况下,这种最小化将是:
- 计算量更大
- 不太健壮
EM 方法的一个非常常见的应用是拟合混合模型。在这种情况下,考虑将每个样本分配给其中一个组件的变量作为“潜在”变量,问题就大大简化了。
让我们看一个例子。我们有 N 个样本从 2 个正态分布的混合中提取。为了找到没有 EM 的参数,我们应该最小化:
相反,使用 EM 算法,我们首先将每个样本“分配”到一个分量(E 步),然后分别拟合(或最大化)每个分量(M 步)。在这个例子中,M-step只是一个加权平均值和. 迭代这两个步骤是一种更简单、更稳健的方法来最小化.
不需要 EM 而是使用一些数值技术,因为 EM 也是一种数值方法。所以它不能替代 Newton-Raphson。EM 适用于数据矩阵中缺少值的特定情况。考虑一个样本具有条件密度. 那么这个的对数似然是
现在假设您没有完整的数据集由观察到的数据组成和缺失(或潜在)的变量, 这样. 那么观测数据的对数似然是
一般来说,你不能直接计算这个积分,你不会得到一个封闭形式的解决方案. 为此,您使用 EM 方法。有两个迭代的步骤次。在这个步骤这些是您计算的期望步骤
在哪里是估计在里面步。然后计算最大化的最大化步骤关于并设置. 然后,您重复这些步骤,直到该方法收敛到某个值,该值将是您的估计值。
如果您需要有关该方法、其属性、证明或应用的更多信息,请查看相应的Wiki文章。
使用EM是因为在给定模型的情况下,直接计算最大化数据集概率的模型参数通常是不可行或不可能的。