机器学习(4) EM算法

似然函数

统计学中,似然函数是一种关于统计模型参数的函数。给定输出x时,关于参数θ的似然函数 L(θ|x) (在数值上)等于给定参数θ后变量X的概率: L(θ|x)=P(X=x|θ)

举例

假设统计了一批学生的身高,这批学生的身高是服从同一个高斯分布 P(X|θ) 。现抽取N个学生的身高,第 i 个学生的身高为xi,那么同时抽到这N个学生的概率就是 P(x1|θ)P(x2|θ)P(xN|θ) ,即样本集X中这N个样本的联合概率。
公式表示为:

L(θ)=L(x1,x2,,xN;θ)=i=1NP(xi;θ)

该公式反映了,在概率密度函数的参数为θ时,得到这组身高样本的概率。由于这组身高样本是可以测出来的,所以上述公式的未知数为θ,L为θ的函数,表示的是在不同的θ取值下,取得当前样本集的概率,因此L(θ)为参数θ相对样本集X的似然函数(likehood function)。 那么问题来了,如何通过这批样本来推断θ呢?

这里要用到极大似然的思想,当从样本集X中随机提取出N个样本时,说明抽出来的这N个样本所代表的数据在样本集中占的比重最大,最有可能被抽中,所以才被我随机抽出。在学生身高这个例子中,因为这N个学生的身高被抽出了,而我又是随机抽取的,那就说明这N个学生的身高最具有代表性,最容易在学生中被抽取出来。所以这批身高样本服从的高斯分布的参数θ应该是会让这N个学生的身高出现的概率最大,即L(θ)最大。这叫θ的最大似然估计量,记作:

θ̂ =argmaxL(θ)

因为L(θ)是连乘的,所以通过添加log的方式,将其变为连加,成为对数似然函数。
H(θ)=logL(θ)=logi=1NP(xi;θ)=i=1NlogP(xi;θ)

因此要求出θ,则让似然函数L(θ)极大化,L(θ)的极大值对应的θ就是我们的估计量。这里就回到了求最值的问题了。怎么求一个函数的最值?当然是求导,然后让导数为0,那么解这个方程得到的θ就是了(当然,前提是函数L(θ)连续可微)。那如果θ是包含多个参数的向量那怎么处理啊?当然是求L(θ)对所有参数的偏导数,也就是梯度了,那么n个未知的参数,就有n个方程,方程组的解就是似然函数的极值点了,当然就得到这n个参数了。

极大似然估计,只是一种概率论在统计学的应用,它是参数估计的方法之一。说的是已知某个随机样本满足某种概率分布,但是其中具体的参数不清楚,参数估计就是通过若干次试验,观察其结果,利用结果推出参数的大概值。极大似然估计是建立在这样的思想上:已知某个参数能使这个样本出现的概率最大,我们当然不会再去选择其他小概率的样本,所以干脆就把这个参数作为估计的真实值。

求极大似然函数估计值的一般步骤:
(1)写出似然函数
(2)对似然函数取对数,并整理
(3)求导数,令导数为0,得到似然方程
(4)解似然方程,得到的参数即为所求

EM算法(Expectation maximization)

是一种从不完全数据或有数据丢失的数据集(存在隐含变量)中求解概率模型参数的最大似然估计方法。
假设我们有一个样本集 x1,,xN ,包含 N 个独立的样本。但每个样本i对应的类别 zi 是未知的(相当于聚类),也即隐含变量。故我们需要估计概率模型 P(x,z) 的参数 θ ,但是由于里面包含隐含变量z,所以很难用最大似然求解,但如果 z 知道了,则很容易求解。

logL(θ)=i=1NlogP(xi;θ)=i=1NlogziP(xi,zi;θ)=i=1NlogziQi(zi)P(xi,zi;θ)Qi(zi)i=1NziQi(zi)logP(xi,zi;θ)Qi(zi)(1)(2)(3)

我们的目标是找到合适的 θ z来让 L(θ) 最大。
关于 (1) 式,对于每个样本 xi 的所有可能类别 z 求等式右边的联合概率密度函数和,即可得到该随机变量xi的边缘概率密度。
而对于 (2)(3) 式,我们则通过Jensen不等式(介绍和证明见附录),将和的对数转换成对数的和,这样方便对 θ z求偏导。
对于(2)式,因为 f(x)=logx (二次导数 1x2<0 ,是凹函数 ),所以 f(E(x))E(f(x))

ziQi(zi)P(xi,zi;θ)Qi(zi)P(xi,zi;θ)Qi(zi),ziQi(zi)=1

所以根据Jensen不等式,
f(EziQi[p(xi,zi;θ)Qi(zi)])EziQi[f(p(xi,zi;θ)Qi(zi))]

(3)式的形式可以简单表示为 L(θ)J(z,θ,Q) ,我们的目标既然是最大化L(θ),那也可以通过不断增大下界J(z,θ,Q),使得L(θ)不断提高,最终达到最大值。
让我们再来写一下 L(θ) J(z,θ,Q) ,
L(θ)J(z,θ,Q)=i=1NlogziQi(zi)P(xi,zi;θ)Qi(zi)=i=1NziQi(zi)logP(xi,zi;θ)Qi(zi)

这里的 Qi(zi) 表示对于类别 zi 的概率密度。
我们首先固定 θ ,然后调整Q(z),使得下界J的值变大直到等同L(这个过程 θ 始终不变),然后我们固定Q(z)

附录:

Jensen不等式

设f是定义域为实数的函数,如果对于所有的实数x。如果对于所有的实数 x f(x)的二次导数大于等于0,那么 f 是凸函数。如果只大于0,不等于0,那么称f是严格凸函数。如果f是凸函数, X 是随机变量,那么

E[f(X)]f(E[X]):i=1npif(xi)f(i=1npixi):bap(x)f(x)dxf(bap(x)xdx)

特别地,如果f是严格凸函数,当且仅当X是常量时,上式取等号。

看图形象说明

图中,实线 f 是凸函数,X是随机变量,其中有 P(x=a)=P(x=b)=0.5 。而 X 的期望值为a b 的中值,图中可以看到E[f(X)]>=f(E[X])成立。当 f 是(严格)凹函数当且仅当 f 是(严格)凸函数。 Jensen 不等式应用于凹函数时,不等号方向反向。

Jensen不等式证明:http://blog.csdn.net/wang_yi_wen/article/details/8917396

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值