[贝叶斯九]之EM算法

本文介绍了EM(期望最大化)算法的基本概念、理论推导及其在三枚硬币问题中的应用。EM算法是一种用于含有隐变量的概率模型参数估计的迭代方法,通过E步计算隐变量的期望和M步进行极大似然估计不断迭代,直至收敛。文章通过一个简单的正态分布参数估计例子展示了EM算法的工作流程,并探讨了其在实际问题中的应用。
摘要由CSDN通过智能技术生成

一、简单介绍

EM(Expectaion Maximization)算法(又称为期望最大化方法)是一种迭代算法,Dempster等人在1977年总结提出来的。简单来说EM算法就是一种含有隐变量的概率模型参数的极大似然估计。EM算法的每次迭代由两步组成:第一是求期望,第二是求极大。EM算法在机器学习中有极为广泛的应用。如常被用来学习高斯混合模型(Gaussian mixture model, 简称GMM)的参数。

那么什么是含有 隐 变 量 的 概 率 模 型 ? 这里举一个常用的三硬币例子,假设我们有三枚硬币:A、B和C,他们的质地都是不均匀的,假设他们正面朝上的概率分别是:a、b和c。现在弄一个抛硬币的规则,先抛A硬币,如果A正面朝上,那么就抛B硬币,否则就抛C硬币。最后记下最终结果,正面朝上记为1,否则记为0。现在进行10次该实验,假如得到的结果如下: 1,0,0,1,1,1,0,1,0,0。这个时候我们其实只得到了最终的结果,并不知道是B还是C硬币的结果,因为不知道每次A硬币的结果。这个时候A硬币的抛掷就可以认为是一个隐含变量。但是问题是如何根据这个结果来估计这三个参数呢?

二、理论推导

2.1 算法思想

在解决例子问题之前,我们先进行一些所谓枯燥的数学化定义,这样或许能帮助理解和记忆。首先,假设 Y Y 是最终观测到的变量集(上述硬币中的最终正反面结果), Z 是隐变量集(A硬币结果), Θ(a,b,c) Θ ( a , b , c ) 是我们待求的参数集。根据之前我们对于极大似然估计的解释,假设抛开隐变量集不管,我们最终的目的就是根据最终观测到的变量集采用极大似然估计的方法来求解出参数集。所以,我们的目标函数就是最大化似然(这里取似然函数的对数)。

L(Θ|Y,Z)=log P(Y,Z|Θ) L ( Θ | Y , Z ) = l o g   P ( Y , Z | Θ )

如果没有 Z Z 变量,如上所说,直接可以用极大似然估计的方法来估计参数。但是这里多了一个隐变量 Z ,所以EM算法的精髓思想出来了:

  • 初始化一个 Θ0 Θ 0 参数
  • E步:根据 Θt Θ t 我们可以计算出 Z Z 的期望值,记为 Z t
  • M步:根据 Zt Z t 我们可以利用极大似然法估计出参数 Θ Θ ,记为 Θt+1 Θ t + 1
  • 重复上述EM步直到收敛

简单阐述就是:其实这里有两类变量,一类是隐变量,一类是待求的参数变量。那么普通的思路该怎么求这个参数变量呢?由上述阐述可以知道,如果我们事先知道了隐变量就能利用极大似然来估计参数,如果我们知道了参数,那么我们可以计算出隐变量集的期望。这里就形成了一个制约,只要我们给出隐变量的初始值就能通过迭代达到两类变量之间的平衡,也就是收敛。类似于我们在生活中的称重,如果要将一类物品分为两部分(比如糖果),在没有称的情况下,往往我们在左右手进行掂量(这就有点像两类变量),如果左手上重了就分点到右手上,否则,从右手上扒拉点分到左手,直到感觉两只手上重量差不多。

所以这里就落下了两个最主要的问题

  • 为什么是求 Z Z 的期望?
  • 一定会收敛?收敛到哪里?

2.2 算法推导

对于第一个问题,为什么是求 Z 的期望?其实上述只是简单的假设,根据我们的目标需求,需要极大似然估计参数,所以需要知道隐变量,然后采取了这种假设、迭代的思路。实际上EM算法并不是直接求解 Z Z 的期望,而是将E、M两步联合。

假设迭代进行到第 t 步,得到了参数 Θt Θ t ,这个时候 Z Z 的概率分布为: P ( Z | Y , Θ t ) 。我们不直接计算这个概率分布的期望值,而是计算对数似然函数 L L 关于 Z 的期望值。同样分为如下两步。

  • E步(Expectation): 计算对数似然函数 L L 关于 Z 的期望值(一个条件概率的期望值,已知观测结果 Y Y 和参数 Θ 的条件下,对数似然函数 L L 的期望值)。这个函数称为 Q 函数。

Q(Θ|Θt)=Ez[log P(Y,Z|Θ)|Y,Θt]=z{ P(Z|Y,Θt) logP(Y,Z|Θ)}(1)(1) (1) Q ( Θ | Θ t ) = E z [ l o g   P ( Y , Z | Θ ) | Y , Θ t ] (1) = ∑ z { P ( Z | Y , Θ t )   l o g P ( Y , Z | Θ ) }

  • M步(Maximization):最大化期望似然函数。
    Θt+1=argmaxΘ Q(Θ|Θt) Θ t + 1 = a r g m a x Θ   Q ( Θ | Θ t )

重复上述两个步骤,直到收敛到局部最优解。详细的有关收敛问题,可以参考李航老师的《统计学习方法》。

这里就通过简单的方法介绍一下EM算法的核心思路,然后主要是通过以下几个例子来感受一下EM算法。

三、三枚硬币

这里我们首先借用一下李航老师在《统计学习方法》中的三枚硬币模型的例子进行阐述。

这里写图片描述

Step1: 先定义一些数学变量

  • Y={ y1,y2,y3,........,yn} Y = { y 1 , y 2 , y 3 , . . . . . . . . , y n } 代表最终抛掷硬币的结果,每次的抛掷结果 y{ 0,1} y ∈ { 0 , 1 }
  • Z={ z1,z2,z3,.....,zn} Z = { z 1 , z 2 , z 3 , . . . . . , z n } 表示隐含变量,其实就是A硬币的抛掷结果,所以 z{ 0,1}<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值