EM算法(Expectation-Maximization Algorithm,期望最大化算法)是一种迭代优化算法,主要用于在含有隐变量(未观测变量)或不完全数据的概率模型中,估计参数的最大似然估计(Maximum Likelihood Estimation, MLE)或最大后验概率估计(Maximum A Posteriori, MAP)。它被广泛应用于各种机器学习问题,如混合高斯模型、隐马尔可夫模型(HMM)等。
背景与动机
在许多统计问题中,数据并不总是完全观测的。例如,某些观测数据可能部分丢失,或存在无法直接测量的隐变量。在这种情况下,直接使用最大似然估计(MLE)来估计模型参数可能变得困难,因为我们无法明确地处理这些隐藏变量。
EM算法通过迭代更新参数,将原问题分解为两个步骤:期望步骤(E步) 和 最大化步骤(M步),从而逐渐逼近参数的最大似然估计。
EM算法的基本思想
EM算法的核心思想是通过处理隐藏变量,优化含有不完全数据的似然函数。假设我们有观测到的数据集 和隐藏的(未观测到的)数据 ,目标是通过观测数据 来估计模型的参数 。由于隐藏变量的存在,我们的似然函数并不直接对
EM算法的关键在于,将隐变量的估计和参数更新分成两个步骤,每一步都相对简单:
- E步(期望步骤,Expectation Step):在给定当前参数 的情况下,计算后验概率分布 ,并利用它来估计隐藏变量的期望值(或其相关量)。
- M步(最大化步骤,Maximization Step):使用E步计算的期望值,最大化含有隐藏变量的完全数据的对数似然函数,以更新模型参数 。
然后,重复进行E步和M步,直到参数收敛。
EM算法的步骤
假设我们有观测数据 和未观测到的隐藏数据 ,模型的参数为 。EM算法的步骤可以描述如下:
- 初始化:随机初始化模型参数
-
E步(期望步骤):根据当前参数 ,计算隐藏变量的条件期望,即计算 给定观测数据 和当前参数
在这个步骤中,我们计算的是Q函数: