EM算法(Expectation-Maximization Algorithm,期望最大化算法)是一种迭代优化算法,主要用于在含有隐变量(未观测变量)或不完全数据的概率模型中,估计参数的最大似然估计(Maximum Likelihood Estimation, MLE)或最大后验概率估计(Maximum A Posteriori, MAP)。它被广泛应用于各种机器学习问题,如混合高斯模型隐马尔可夫模型(HMM)等。

背景与动机

在许多统计问题中,数据并不总是完全观测的。例如,某些观测数据可能部分丢失,或存在无法直接测量的隐变量。在这种情况下,直接使用最大似然估计(MLE)来估计模型参数可能变得困难,因为我们无法明确地处理这些隐藏变量。

EM算法通过迭代更新参数,将原问题分解为两个步骤:期望步骤(E步)最大化步骤(M步),从而逐渐逼近参数的最大似然估计。

EM算法的基本思想

EM算法的核心思想是通过处理隐藏变量,优化含有不完全数据的似然函数。假设我们有观测到的数据集

Expectation-Maximization Algorithm(EM算法)_似然函数
和隐藏的(未观测到的)数据
Expectation-Maximization Algorithm(EM算法)_机器学习_02
,目标是通过观测数据
Expectation-Maximization Algorithm(EM算法)_似然函数
来估计模型的参数
Expectation-Maximization Algorithm(EM算法)_人工智能_04
。由于隐藏变量的存在,我们的似然函数并不直接对
Expectation-Maximization Algorithm(EM算法)_似然函数

Expectation-Maximization Algorithm(EM算法)_数据_06

EM算法的关键在于,将隐变量的估计和参数更新分成两个步骤,每一步都相对简单:

  1. E步(期望步骤,Expectation Step):在给定当前参数
    Expectation-Maximization Algorithm(EM算法)_似然函数_07
    的情况下,计算后验概率分布
    Expectation-Maximization Algorithm(EM算法)_人工智能_08