EM算法

介绍

我们经常会从样本观察数据中,找出样本的模型参数。 最常用的方法就是极大化模型分布的对数似然函数。

很多算法中我们经常假设训练样本所有属性变量的值都已被观测到,即训练样本是“完整”的,但现实应用中,往往会遇到“不完整”的情况。

没有观察到的变量叫做隐变量。令 X 表示已观测变量集,Z 表示隐变量集,Θ\ThetaΘ 表示模型参数。若欲对Θ\ThetaΘ 做极大似然估计,则应最大化对数似然

LL(Θ∣X,Z)=lnP(X,Z∣Θ)(1)LL(\Theta|X,Z)=ln P(X,Z|\Theta) \tag{1}LL(ΘX,Z)=lnP(X,ZΘ)(1)

由于 Z 是隐变量,上式无法直接求解,此时,可通过对 Z 计算期望,来最大化已观测数据的对数“边际似然”。

LL(Θ∣X)=lnP(X∣Θ)=ln∑ZP(X,Z∣Θ)(2)LL(\Theta|X)=ln P(X|\Theta)=ln \sum_Z P(X,Z|\Theta) \tag{2}LL(ΘX)=lnP(XΘ)=lnZP(X,ZΘ)(2)

EM(期望最大化)算法常用于估计参数隐变量,是一种迭代算法,基本思想是:若参数 Θ\ThetaΘ 已知,则可根据训练数据推断出最优隐变量 Z 的值(E步);反之,若 Z 已知,则可方便地对参数 Θ\ThetaΘ 做极大似然估计(M步)。

于是,以初始值 Θ0\Theta^0Θ0 为起点,对式(2)迭代执行以下步骤直至收敛:

  • 基于 Θt\Theta^tΘt 推断隐变量 Z 的期望,记为 ZtZ^tZt
  • 基于已观测变量 X 和 ZtZ^tZt 对参数 Θ\ThetaΘ 做极大似然估计,记为 Θt+1\Theta^{t+1}Θt+1

这就是EM算法的原型。

进一步,我们不是取 Z 的期望,而是基于 Θt\Theta^tΘt 计算 Z 的概率分布 P(Z∣X,Θt)P(Z|X,\Theta^t)P(ZX,Θt) ,则EM算法两个步骤如下:

  • E步:基于 Θt\Theta^tΘt 推断隐变量的分布 P(Z∣X,Θt)P(Z|X,\Theta^t)P(ZX,Θt) ,并计算对数似然LL(Θ∣X,Z)LL(\Theta|X, Z)LL(ΘX,Z)关于Z 的期望Q(Θ∣Θt)=EZ∣X,ΘtLL(Θ∣X,Z)Q(\Theta|\Theta^t)=E_{Z|X,\Theta^t}LL(\Theta|X,Z)Q(ΘΘt)=EZX,ΘtLL(ΘX,Z)
  • M步:寻找参数最大化期望似然 Θt+1=argΘmaxQ(Θ∣Θt)\Theta^{t+1}=arg_{\Theta}max Q(\Theta|\Theta^t)Θt+1=argΘmaxQ(ΘΘt)

思考

隐变量估计问题还可通过梯度下降等优化算法求解,但由于求和项数将随着隐变量的数目以指数级上升,会给梯度计算带来麻烦,而EM算法可看作一种非梯度优化方法。

参考

周志华《机器学习》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值