赞
踩
EM算法用到了大量的概率论与数理统计的知识,必须对基础有一定掌握才能完成EM算法的推导。
思想:我们观测到了一组样本,为什么我们能观测到这一组样本呢?因为这一组样本出现的概率比较大,如果这一组观测值出现的概率比较小我们很可能就观测不到这组样本。基于以上理论,我们先将这组样本出现的概率求出来,前面提到这组样本出现的概率比较大我们才能观测到这组样本,那么多大的概率才算是概率比较大呢?我们没有概念,但是我们可以求出现这组样本的最大概率,这个最大概率的值是多少我们并不关心,在求概率最大的过程中就可以将概率分布中的参数θ求出来。
总结:最大似然估计就是令观测到的样本出现的概率最大,在求概率最大值的过程中对参数θ求导,令导数为零,进而求出参数θ。
权威的最大似然估计解释见下图:
(1)凹函数和凸函数:首先问大家一个问题,下面的函数是凹函数还是凸函数?不太好回答,因为不同的教材里面对于凹函数和凸函数的正方向的定义不太相同,所以本博客统一规定:上凸函数即下凹函数;上凹函数即下凸函数。那么下图就是一个上凹下凸的函数。
(2)上凹下凸函数:
总体:试验的全部可能的观察值称为总体,这些观察值可能有重复值(如果将这些值去重,就是样本空间,样本空间是一个集合,不重复)。
总体和随机变量:总体和随机变量可以划等号,一个总体对应一个随机变量X,可以称为总体X。
个体:对总体X进行的一次观察,并记录的结果。
样本:对总体X进行n次重复的、独立的试验,每一次试验用一个随机变量Xi表示(此时还没有做试验,先用变量表示),n次试验结果按照试验顺序排列记为X1,X2,···,Xn。我们称X1,X2,···,Xn就是来自总体X的一个随机样本。(注意Xi仅仅代表第i次试验对应的随机变量,并不是指具体的值,其实质还是一个随机变量,只是编上了号而已,且Xi与X是独立同分布)。
样本值:当n次观察一经完成,我们就得到了一组实数x1,x2,···,xn,他们依次是随机变量X1,X2,···,Xn的观察值,称为样本值。
另外,需要注意的是一个随机变量X可以表示多个特征(在《数据挖掘十大算法》一书中有所体现)
注意:期望又称均值,这里的均值指的是总体的均值,跟样本均值不是一个概念。
背景:在没有隐变量的情况下,使用最大似然估计MLE即可估计出概率分布的参数θ,但是当存在隐变量时最大似然估计法也束手无策,EM算法可以在有隐变量的情况下同时估计出参数θ和隐变量的分布。
隐变量:前文提到隐变量,那么到底什么是隐变量?有机器学习基础的同学一看就懂,这里提到的隐变量其实就是标签(类别),一个观察值样本X,可以看做是特征数据(字段),那么每一行数据都对应一个y值,即标签(类别),于是就可以将(X, y)看成是一个观察样本。然后再通过最大似然估计思想,假设该样本出现的概率最大时,将参数θ和隐变量的分布同时求出来。(如果没有机器学习的基础,建议去了解有监督和无监督的概念)
用途:无监督学习,可以实现聚类的效果。
设,X1,X2,X3···Xn是来自总体X的1个样本;设x1,x2,x3···xn是来自样本X1,X2,X3···Xn的一个样本值(观察值);设Zi是类别(标签)对应每一个Xi。
于是,观测样本X,隐变量Z,完整观测样本(X,Z)。
假设,第i次试验的随机变量Xi对应的隐变量Zi服从Qi(zi)分布,则:
我们的目标是将
那么,下界函数的最大值怎么求呢?从形式上看,即
当f(x)为常数时,等号成立,这里的f(x)即ln(x),ln(x)为常数即x为常数,即:
到这个地方,就可以把类别的概率分布求出来,首先假设θ已知(初始化),再求出这个条件概率即可,那么这个条件概率如何理解呢?通过贝叶斯转换来求!!!这时,必须理解这里的zi是什么意思,
综上,有两个地方需要特别注意:
(1)E步:初始化参数θ,利用贝叶斯求出概率分布
(2)M步:代入
不断迭代E步和M步,直到
即,保证:
从而:
笔者综合网上案例,发现下面这个案例比较好,但是想完全理解也需要下一番功夫。
假设有两枚硬币1和2,他们随机抛掷后正面朝上的概率分别为
硬币 | 结果 | 统计 |
1 | 正正反正反 | 3正-2反 |
2 | 反反正正反 | 2正-3反 |
1 | 正反反反反 | 1正-4反 |
2 | 正反反正正 | 3正-2反 |
1 | 反正正反反 | 2正-3反 |
由于,两个硬币抛掷互不干扰,所以我们以抛掷硬币1为例来演示
硬币1的分布律形式已知,如下图所示,分布律中的参数
X | 正面 | 反面 |
p |
硬币1的试验结果统计如下表:
硬币 | 结果 | 统计 |
1 | 正正反正反 | 3正-2反 |
1 | 正反反反反 | 1正-4反 |
1 | 反正正反反 | 2正-3反 |
那么出现以上结果的概率为:
对似然函数取对数:
令
对于
试验定义如下:每次取一枚硬币,连续抛掷5下记为一组,共抛掷五组,每一组为同一枚硬币,但是不知道是哪一枚硬币抛掷的,记录结果如下:
硬币 | 结果 | 统计 |
unknown | 正正反正反 | 3正-2反 |
unknown | 反反正正反 | 2正-3反 |
unknown | 正反反反反 | 1正-4反 |
unknown | 正反反正正 | 3正-2反 |
unknown | 反正正反反 | 2正-3反 |
那么这里不光要估计出两枚硬币正面朝上的概率
根据前面推导的公式可得:
(1)初始化θ,令
(2)基础初始化的θ求
我们以第一组试验为例讲解
硬币1出现正正反正反的概率为:
硬币2出现正正反正反的概率为:
将所有组(轮次)试验的结果分别计算,统计如下表:
轮次 | 结果 | 统计 | 硬币1产生此结果的概率 | 硬币2产生此结果的概率 |
1 | 正正反正反 | 3正-2反 | 0.00512 | 0.03087 |
2 | 反反正正反 | 2正-3反 | 0.02048 | 0.01323 |
3 | 正反反反反 | 1正-4反 | 0.08192 | 0.00567 |
4 | 正反反正正 | 3正-2反 | 0.00512 | 0.03087 |
5 | 反正正反反 | 2正-3反 | 0.02048 | 0.01323 |
(3)根据贝叶斯求
注意:笔者参考了大量博客都没有提到
已知试验结果“正正反正反”,求该结果是硬币1投掷的概率:
将所有组(轮次)试验的结果分别计算,统计如下表:
轮次 | 结果 | 统计 | 已知此结果, 推测是由硬币1投掷的概率 | 已知此结果, 推测是由硬币2投掷的概率 |
1 | 正正反正反 | 3正-2反 | 0.14 | 0.86 |
2 | 反反正正反 | 2正-3反 | 0.61 | 0.39 |
3 | 正反反反反 | 1正-4反 | 0.94 | 0.06 |
4 | 正反反正正 | 3正-2反 | 0.14 | 0.86 |
5 | 反正正反反 | 2正-3反 | 0.61 | 0.39 |
上面这个表其实就是
(4)计算M步,即:
我们的目标是将上面式子最大化,在最大化的过程中求出参数
令
相同的方法可求得,
(5)新算的
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。