EM算法

用途:求解含有因变量的问题,但模型结构需要先知道。

方法:最大化完全数据(可观测数据+不可观测)的期望;

第1步(E步):先假定一个模型初始参数,求完全数据的期望等价于求因变量参数值;

第2步(M步):因变量确定之后,问题转化为极大似然估计问题,最大化完全数据的期望,即更新模型参数。

 

使用到的关键工具:Jensen不等式

假定函数f(x)是下凹函数,,则有:

否则f(x)是上凸函数,则有:

 

实际计算步骤

E步(已知theta求z)
根据theta的初值,计算各个样本j对于各个模型k的响应度r_jk值
计算公式:对于样本j,计算单个模型输出在全部模型输出的比值。

M步(已知z求theta,使用极大似然估计)
根据E步的响应度r_jk,迭代更新各个子模型k的theta参数值
计算公式:
    模型k均值miu_k = r_j乘以实际输出再累加 / r_jk的累加和
    模型k方差sigma_k = r_jk乘以(实际输出 - miu_k)^2 / r_jk的累加和
    模型k权重alpha_k = r_jk的累加和 / 样本总数
本质上就是一个逐点相乘的各种比值计算。

 

公式推导

首先有jensen不等于f(∑r_i * x_i) >= ∑f(r_i * x_i),∑r_i=1

令模型参数theta记做$,则
log p(y|$) 
= log ∑ p(y,z|$) 
= log ∑ Q(z)*p(y,z|$)/Q(z) 
≥ ∑ Q(z)* log[p(y,z|$)/Q(z)]

即原函数存在一定下界,等号取到条件是p(y,z|$)/Q(z)=c常数。
Q(z) = p(y,z|$) / ∑_z p(y,z|$) = p(y,z|$) / p(y|$) = y(z|y,$))
即在给定模型参数和观测时的z的条件概率。

说明:通过jensen不等式,将log ∑转为了∑log问题。

 

E步:固定$,计算Q(z)得到下界J(z,$);
M步:固定Q(z),改变$最大化(提升)下界J(z,$)。

 

Q函数为∑_z p(z|y,$)*p(y,z|$),确定了z,联合概率分布p(y,z|$)也就知道了

完全数据的联合概率分布为p(y,z|$)
 

参考文献:

人人都懂EM算法

https://zhuanlan.zhihu.com/p/36331115

 

【机器学习】EM——期望最大(非常详细)

https://zhuanlan.zhihu.com/p/78311644

 

-- over --

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值