最近感受对EM算法有一点遗忘,在表述的时候,仍是有一点说不清,因而从新去看了这篇<CS229 Lecture notes>笔记. 因而有了这篇小札.算法
关于Jensen's inequality不等式:函数
Corollary(推论):spa
若是函数f(x)为凸函数,那么在 f(x) 上任意两点X1,X2所做割线必定在这两点间的函数图象的上方,即:3d
其中t表示【x1,x2】的位置blog
举例子: 当t=1/2 ; 1/2*f(x1) + 1/2*f(x2) >= f( 1/2*x1 + 1/2*x2 );游戏
或者咱们直接抽象的表示为: E[f(X)] ≥ f(EX) ,其中E表示指望.it
那么这个 Jensen's inequality(Jensen's 不等式在EM算法中起到什么做用呢?)这里咱们先不表.io
关于极大似然评估(MLE):table
假定存在一个样本集 D= {x1,x2,...,Xm },为M个独立分布的样本. 假设似然函数为: 联合几率密度函数P(D ; θ) ,其中(P(D ; θ)这种表示至关于P(D),只是存在未知参数θ)class
咱们知道了似然函数以后,将样本数据展开:
P(D ; θ) = p(x1,x2,...,Xm;θ) = ∏mi=1 p(xi ; θ)
咱们令 L( Z ) = ∏mi=1 p(xi ; θ) ,若是存在θi 使得 L(θ)最大,咱们认为θi为θ的极大似然估计量,同时咱们认为θi(x1,x2,...,xm)为样本集D的极大似然函数估计量
关于求解极大似然函数:
求使得出现该组样本的几率最大的θ值。
θi = argmax(L(θ)) = argmax( ∏mi=1 p(xi ; θ) );
继续回到上面的公式:
L( θ ) = ∏mi=1 p(xi ; θ); 要使得L(θ)最大,那么对这个公式进一步化解:
等价于: log( L(θ) ) = log( ∏mi=1 p(xi ; θ) ) = ∑m i=1 P(xi ;θ)
(∑m i=1 P(xi ;θ))' = d( ∑m i=1 P(xi ;θ) ) / d(θ) =0 ; 求导 得 θ的解
关于极大似然求解的步骤:
(1)写出似然函数;
(2)对似然函数取对数,并整理;
(3)求导数;
(4)解似然方程。
好比咱们有一个训练集合X={ x1 , x2 , .... , Xm};里面包含M个样本. 咱们但愿将模型p(x,z)的参数与训练集合数据进行拟合,其中的函数-对数似然是:
咱们想上面求解极大似然函数同样来求解这个似然函数:
对它进行微分方程,求导 d( L(θ) ) / d( θ ) =0; ? 咱们很快就发现没法求解,由于存在新的未知变量Z(隐变量);如何来解释这个隐变量Z呢?
好比这样一个例子:
好比有A,B两我的比赛随机打靶,每一个人每次打4枪,当命中九环之内,包括九环,是记录为1,不然记录为0; 可是因为裁判熬夜玩游戏,比赛完成是,收集比赛结果时,搞混了靶纸。因而整理出以下结果:
人名 | 结果 |
未知 | 1011 |
未知 | 0011 |
未知 | 1101 |
未知 | 0101 |
未知 | 1011 |
未知 | 0010 |
未知 | 1111 |
未知 | 1011 |
问A命中九环的几率pa,B命中九环的几率pb?
而这里的隐变量Z就是人名的顺序。
面对这个问题,显然使用极大似然函数去正面扛困难重重,EM算法为这个问题,提供了一个很好的思路:
求解分两步走:
E step 指望阶段:
先假定,即初始化A,B命中的几率pa0=0.2 , pb0=0.5;
求出8次打靶中,该次打靶的结果是A,B的可能性即几率:
第一次打靶:若是是A的打靶结果: 0.2*0.8*0.2*0.2=0.0064
若是是B的打靶结果: 0.5^4 =0.0625
第i次打靶 | A | B |
1 | 0.0064 | 0.0625 |
2 | 0.0256 | 0.0625 |
3 | 0.0064 | 0.0625 |
4 | 0.0256 | 0.0625 |
5 | 0.0064 | 0.0625 |
6 | 0.1024 | 0.0625 |
7 | 0.0016 | 0.0625 |
8 | 0.0064 | 0.0625 |
如此,咱们依据极大似然函数,来肯定每一轮是谁打的
1轮: P(A1)<P(B1),
由上面这个表,咱们在假定的前提下,计算出了A或者B的出现每轮打靶结果的几率;咱们能够依据这个结果,进一步计算第i次是A,B打靶的相对几率
求出8次打靶中,该次打靶的结果是A,B的相对可能性即几率:
第一次打靶:若是是A的打靶结果: 0.0064/(0.0064 + 0.0625) =0.0928
若是是B的打靶结果: 0.0625/(0.0064 + 0.0625) =0.9072
第i次打靶 | A | B |
1 | 0.0928 | 0.9072 |
2 | 0.290 | 0.710 |
3 | 0.0928 | 0.9072 |
4 | 0.290 | 0.710 |
5 | 0.0928 | 0.9072 |
6 | 0.620 | 0.380 |
7 | 0.0249 | 0.9751 |
8 | 0.0928 | 0.9072 |
咱们先假定A,B命中的几率pa1,pb1,而后去推到它们比赛的顺序,再依据比赛的顺序,来计算A,B命中的几率Pa2,pb2. 当pa2,pb2和pa1,pb2结果相差时较大时,
将pa2,pb2代入,继续推到它们的比赛顺序,计算A,B命中的几率