EM 算法

  1. 如果概率模型的变量都是观测变量,则给定数据之后,可以直接用极大似然估计法或者贝叶斯估计法来估计模型参数。

    但是当模型含有隐变量时,就不能简单的使用这些估计方法。此时需要使用EM 算法。

    • EM 算法是一种迭代算法。
    • EM 算法专门用于含有隐变量的概率模型参数的极大似然估计,或者极大后验概率估计。
  2. EM算法的每次迭代由两步组成:

    • E步求期望。
    • M步求极大。

    所以EM算法也称为期望极大算法。

一、示例

1.1 身高抽样问题

  1. 假设学校所有学生中,男生身高服从正态分布 , 女生身高服从正态分布

    现在随机抽取200名学生,得到这些学生的身高 ,求参数 的估计。

  2. 定义隐变量为 ,其取值为 ,分别表示男生、女生

    • 如果隐变量是已知的,即已知每个学生是男生还是女生 ,则问题很好解决:

      • 统计所有男生的身高的均值和方差,得到

        其中 表示满足 构成的集合。 分别表示平均值和方差。

      • 统计所有女生的身高的均值和方差,得到

        其中 表示满足 构成的集合。 分别表示平均值和方差。

    • 如果已知参数 ,则任意给出一个学生的身高 ,可以知道该学生分别为男生/女生的概率。

      则有: 。因此也就知道该学生更可能为男生,还是更可能为女生。

    因此:参数 学生是男生/女生,这两个问题是相互依赖,相互纠缠的。

  3. 为解决该问题,通常采取下面步骤:

    • 先假定参数的初始值:

    • 迭代 :

      • 根据 来计算每个学生更可能是属于男生,还是属于女生。

        这一步为E 步(Expectation),用于计算隐变量的后验分布

      • 根据上一步的划分,统计所有男生的身高的均值和方差,得到 ;统计所有女生的身高的均值和方差,得到

        这一步为 M 步(Maximization ),用于通过最大似然函数求解正态分布的参数。

      • 当前后两次迭代的参数变化不大时,迭代终止。

1.2 三硬币模型

  1. 已知三枚硬币 ABC ,这些硬币正面出现的概率分别为 。进行如下试验:

    • 先投掷硬币 A,若是正面则选硬币 B;若是反面则选硬币 C
    • 然后投掷被选出来的硬币,投掷的结果如果是正面则记作 1;投掷的结果如果是反面则记作0
    • 独立重复地 次试验,观测结果为: 1,1,0,1,0,...0,1

    现在只能观测到投掷硬币的结果,无法观测投掷硬币的过程,求估计三硬币正面出现的概率。

  2. 设:

    • 随机变量 是观测变量,表示一次试验观察到的结果,取值为 1 或者0
    • 随机变量 是隐变量,表示未观测到的投掷A硬币的结果,取值为 1 或者 0
    • 是模型参数

    则:

    注意:随机变量 的数据可以观测,随机变量 的数据不可观测

  3. 将观测数据表示为 ,未观测数据表示为

    由于每次试验之间都是独立的,则有:

  4. 考虑求模型参数 的极大似然估计,即:

    这个问题没有解析解,只有通过迭代的方法求解,EM算法就是可以用于求解该问题的一种迭代算法。

  5. EM算法求解:

    首先选取参数的初值,记作 ,然后通过下面的步骤迭代计算参数的估计值,直到收敛为止:

    设第 次迭代参数的估计值为: , 则EM算法的第 次迭代如下:

    • E步:计算模型在参数 下,观测数据 来自于投掷硬币 B 的概率:

      它其实就是 ,即:已知观测变量 的条件下,观测数据 来自于投掷硬币 B 的概率。

    • M 步:计算模型参数的新估计值:

      • 第一个式子:通过后验概率 估计值的均值作为先验概率 的估计。
      • 第二个式子:通过条件概率 的估计来求解先验概率 的估计。
      • 第三个式子:通过条件概率 的估计来求解先验概率 的估计。
  6. EM 算法的解释:

    • 初始化:随机选择三枚硬币 ABC 正面出现的概率 的初始值

    • E 步:在已知概率 的情况下,求出每个观测数据 是来自于投掷硬币 B 的概率。即:

      于是对于 次实验,就知道哪些观测数据是由硬币 B 产生,哪些是由硬币 C 产生。

    • M 步:在已知哪些观测数据是由硬币 B 产生,哪些是由硬币 C 产生的情况下:

      • 就等于硬币 B 产生的次数的频率。
      • 就等于硬币B 产生的数据中,正面向上的频率。
      • 就等于硬币 C 产生的数据中,正面向上的频率。

二、EM算法原理

2.1 观测变量和隐变量

  1. 表示观测随机变量, 表示对应的数据序列;令 表示隐随机变量, 表示对应的数据序列。

    连在一起称作完全数据,观测数据 又称作不完全数据。

  2. 假设给定观测随机变量 ,其概率分布为 ,其中 是需要估计的模型参数,则不完全数据 的似然函数是 , 对数似然函数为

    假定 的联合概率分布是 ,完全数据的对数似然函数是 ,则根据每次观测之间相互独立,有:

  3. 由于 发生,根据最大似然估计,则需要求解对数似然函数:

    的极大值。其中 表示对所有可能的 求和,因为边缘分布

    该问题的困难在于:该目标函数包含了未观测数据的的分布的积分和对数。

2.2 EM算法

2.2.1 原理

  1. EM 算法通过迭代逐步近似极大化

    假设在第 次迭代后, 的估计值为: 。则希望 新的估计值能够使得 增加,即:

    为此考虑两者的差:

    这里 已知,所以 可以直接计算得出。

  2. Jensen 不等式:如果 是凸函数, 为随机变量,则有:

    • 如果 是严格凸函数,当且仅当 是常量时,等号成立。

      jensen

    • 满足 时,将 视作概率分布。

      设随机变量 满足概率分布 ,则有:

  3. 考虑到条件概率的性质,则有 。因此有:

    等号成立时,需要满足条件:

    其中 为随机变量 的取值个数。

  4. 令 :

    则有: ,因此 的一个下界。

    • 根据定义有: 。因为此时有:

    • 任何可以使得 增大的 ,也可以使 增大。

      为了使得 尽可能增大,则选择使得 取极大值的

  5. 求极大值:

    其中: 无关,因此省略。

2.2.2 算法

  1. EM 算法:

    • 输入:

      • 观测变量数据
      • 联合分布 ,以及条件分布

      联合分布和条件分布的形式已知(比如说高斯分布等),但是参数未知(比如均值、方差)

    • 输出:模型参数

    • 算法步骤:

      • 选择参数的初值 ,开始迭代。

      • E步:记 为第 次迭代参数 的估计值,在第 步迭代的 E 步,计算:

        其中 表示:对于观测点 关于后验概率 的期望。

      • M步:求使得 最大化的 ,确定 次迭代的参数的估计值

      • 重复上面两步,直到收敛。

  2. 通常收敛的条件是:给定较小的正数 ,满足: 或者

  3. 是算法的核心,称作 函数。其中:

    • 第一个符号表示要极大化的参数(未知量)。
    • 第二个符号表示参数的当前估计值(已知量)。
  4. EM算法的直观理解:EM算法的目标是最大化对数似然函数

    • 直接求解这个目标是有问题的。因为要求解该目标,首先要得到未观测数据的分布 。如:身高抽样问题中,已知身高,需要知道该身高对应的是男生还是女生。

      但是未观测数据的分布就是待求目标参数 的解的函数。这是一个“鸡生蛋-蛋生鸡” 的问题。

    • EM算法试图多次猜测这个未观测数据的分布

      每一轮迭代都猜测一个参数值 ,该参数值都对应着一个未观测数据的分布 。如:已知身高分布的条件下,男生/女生的分布。

    • 然后通过最大化某个变量来求解参数值。这个变量就是 变量,它是真实的似然函数的下界 。

      • 如果猜测正确,则 就是真实的似然函数。
      • 如果猜测不正确,则 就是真实似然函数的一个下界。
  5. 隐变量估计问题也可以通过梯度下降法等算法求解,但由于求和的项数随着隐变量的数目以指数级上升,因此代价太大。

    • EM算法可以视作一个非梯度优化算法。
    • 无论是梯度下降法,还是EM 算法,都容易陷入局部极小值。

2.2.3 收敛性定理

  1. 定理一:设 为观测数据的似然函数,EM算法得到的参数估计序列, 为对应的似然函数序列,其中

    则: 是单调递增的,即:

  2. 定理二:设 为观测数据的对数似然函数, EM算法得到的参数估计序列, 为对应的对数似然函数序列,其中

    • 如果 有上界,则 会收敛到某一个值

    • 在函数 满足一定条件下,由 EM 算法得到的参数估计序列 的收敛值 的稳定点。

      关于“满足一定条件”:大多数条件下其实都是满足的。

  3. 定理二只能保证参数估计序列收敛到对数似然函数序列的稳定点 ,不能保证收敛到极大值点。

  4. EM算法的收敛性包含两重意义:

    • 关于对数似然函数序列