玩转 EM 算法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_23947237/article/details/79058991

$ 参数估计 | 极大似然估计

1 参数估计的问题提出

极大似然估计:找出与 样本的分布 最接近的 概率分布模型。最大似然估计是利用已知的样本的结果,在使用某个模型的基础上,反推最有可能导致这样结果的模型参数值。


问题:假设有两点分布的抛硬币游戏,每次抛完为正面向上的概率为 θ ,则重复10次实验的得到的结果(即样本)为:+ + - + + + - + - +。
那么可得到如此结果的概率式为:

L(θ)=θ7(1θ)3

能够看到这样的事件发生,我们就认为背后的这套概率模型机制发生的概率最大。于是求如上的概率公式 L(θ) 的最大值(转化为对数然后对 θ 求导)。


2 极大似然估计

求最大似然函数估计值的一般步骤

(1)写出似然函数;

(2)对似然函数取对数,并整理;

(3)对参数求导,令导数为0,得到似然方程;

(4)解似然方程,得到的参数即为所求;

3 为什么要有 EM ?

但是当概率模型含有隐变量时,就没有办法直接使用极大似然估计方法,从而提出能够求解隐变量的 EM 算法。

参考文献:https://www.jianshu.com/p/1121509ac1dc

扫描二维码关注公众号,回复: 3091105 查看本文章

后面在GMM模型中也会再次说明。


$ 凸优化 | Jensen 不等式

1 凸函数定义

给定映射 f:RnR ,如果 dom fRn 为凸集,并且对于任意 x,ydom f 和任意 0t1 ,满足

f(tx+(1t)y)tf(x)+(1t)f(y)

则称函数是凸的。
如下图所示,凸函数特点: 弦在弧上


cvx


2 Jensen 不等式

Th1:如果 f 凸函数 X 是随机变量,则:

f(E(X))E(f(X))

特别地,如果 f 严格凸函数,那么 f(E(X))=E(f(X)) 当且仅当 X 是常量,即 p(x=E(X))=1


Th2:若 f 凹函数,则:

f(E(X))E(f(X))

bu

严格凸:对于任意 xy ,且 0<t<1 ,有

f(tx+(1t)y)<tf(x)+(1t)f(y)


$ EM算法 | GMM模型

1 EM算法的要点

简介:
…………………………………………………………………………………………
《数学之美》的作者吴军将EM算法称为上帝的算法,EM算法也是公认的机器学习十大经典算法之一。
…………………………………………………………………………………………
EM是一种求解参数极大似然估计的迭代算法,具有良好的收敛性和每次迭代都能使似然函数值单调不减的优良性质。
…………………………………………………………………………………………
在统计学习、NLP 等领域应用非常广泛,许多统计学算法都是 EM 算法的体现,如隐马尔科夫模型的训练方法 Baum-Welch 算法、最大熵模型的训练方法 GIS 算法、高斯混合模型 EM 算法、主题模型训练推理的 pLSA 方法,都属于 EM 算法。甚至连聚类中的 k-means 算法其实也是EM方法的体现。

上面的简介在我看来就是激发一下兴趣,不过本质就是废话!接下来我们看几个要点,理解算法的灵魂核心。 在我看来,EM算法就是条件概率的一场游戏。


要点 1 :隐变量的华丽登场

似然估计的概率公式为 L(θ) ,其中 yi 是样本数据(观测值),公式中可能会有 隐变量 z ,公式变为 p(y,z)

公式可以根据强行分离出隐变量 z 的形式:联合分布再积分

L(θ)=i=1mp(yi|θ)=i=1m[zp(yi,z|θ)]

取对数:要注意 隐含变量其实是 z(i)

(θ)=ilogp(yi|θ)=ilogzp(yi,z|θ)

ilogzp(yi,z|θ)=ilogz(i)p(yi,z(i)|θ)

对于每一个样例 yi ,令 Qi 表示该样例隐变量 z 的某种分布。

Qi 满足的条件是 z(i)Qi(z(i))=1,Qi(z(i))>0

zp(yi,z(i)|θ)=zQi(z(i))p(yi,z(i)|θ)Qi(z(i))

(θ)=ilogzp(y,z|θ)=ilogzQip(y,z|θ)Qi


要点 2 :Jensen不等式的应用

log 是 凹函数。因此有

log(E(X))E(log(X))

X 可以替换为下面的表达式:
p(y,z|θ)Qi

logzQip(y,z|θ)QizQi[logp(y,z|θ)Qi]

(θ)=ilogzQip(y,z|θ)QiizQilogp(y,z|θ)Qi


要点 3 :探索最紧的下界

特别地如果 f(E(X))=E(f(X)) 当且仅当 X 是常量,即

p(y,z|θ)Qi=c

c 是 constant ,则有
(θ)=ilogzQip(y,z|θ)Qi=izQilogp(y,z|θ)Qi

Qi 满足的条件是 z(i)Qi(z(i))=1,Qi(z(i))>0

Qi(z(i))=p(y,z(i)|θ)c=p(y,z(i)|θ)zp(y,z|θ)=p(z(i)|y,θ)


要点 4 :EM 算法框架


初始化分布参数 θ 重复E、M步骤直到收敛:

E 步:根据参数 θ 初始值或上一次迭代所得参数值来计算出隐变量的后验概率(即隐性变量的期望),作为隐性变量的现估计值:

Qi(z(i))=p(z(i)|yi,θ)

M 步:将似然函数最大化以获得新的参数值 θ
θ=argmaxθizQilogp(y,z|θ)Qi


2 GMM模型

问题 1 :高斯分布

随机挑选10000名志愿者,测量身高。
志愿者中分男性和女性:男性身高分布服从 N(μ1,σ1) ,女性身高分布服从 N(μ2,σ2)
在样本中未知样本属于男性还是女性,即打乱样本的情况下,参数估计 μ1,σ1,μ2,σ2
如果将两个二维高斯分布 N(μ1,Σ1) N(μ1,Σ1) 合成一个二维的分布,那么就可以用合成后的分布来描述所有点。最直观的方法就是对这两个二维高斯分布做线性组合,用线性组合后的分布来描述整个集合中的数据。这就是高斯混合模型(GMM)。


这里写图片描述

参考文献:http://blog.csdn.net/jinping_shi/article/details/59613054


问题 2 :GMM 的参数

GMM模型中有三个参数需要估计,分别是 π,μ,Σ 。这里的参数都是以矩阵或者向量的形式出现。
参考文献:http://blog.csdn.net/u012151283/article/details/77649924

假设数据服从 K 个混合高斯分布。即数据能够由 K 个确定的高斯分布以一定的权重叠加生成。

πk 是选中参量为 μk Σk 的概率,也叫权值因子:

Kπk=1

从数据集求出这 K 个高斯分布的参数:假设 K=2 ,那么对应的 GMM 形式如下:

p(x)=π1N(x|μ1,Σ1)+π2N(x|μ2,Σ2)

通过 EM 算法,我们可以迭代计算出GMM中的参数:
(πk,xk,Σk)

参考文献:http://blog.csdn.net/junshen1314/article/details/50300421


问题 3 :GMM 的 EM 应用

  • step 1:定义分量数目 K ,对每个分量 k 设置 πkμkΣk 的初始值,然后计算对数似然函数:
    p(xi|π,μ,Σ)=k=1KπkN(xi|μk,Σk)

    logip(xi|π,μ,Σ)=ilogp(xi|π,μ,Σ)

  • E step:根据当前的 πkμkΣk 计算后验概率,即期望 γ(n,k)
    γ(n,k)=πkN(xn|μn,Σn)Kj=1πjN(xn|μj,Σj)

    γ(n,k) 可以认为是第 n 个样本来自第 k 个分布的概率。

  • M step:根据 E step 中计算的 γ(n,k) 再计算新的 πkμkΣk
    μnewkΣnewkπnewk=1Nkn=1Nγ(n,k)xn=1Nkn=1Nγ(n,k)(xnμnewk)(xnμnewk)T=NkN

    其中的 Nk=Nn=1γ(n,k)

  • step 4:计算对数似然函数:
    logp(x|π,μ,Σ)=n=1Nlog{k=1KπkN(xk|μk,Σk)}
  • step 5:检查参数是否收敛或对数似然函数是否收敛,若不收敛,则返回第 2 步

以上关于 GMM 的参数估计推导可以类比 EM 推导。

猜你喜欢

转载自blog.csdn.net/qq_23947237/article/details/79058991