最大似然估计
- 在讲EM算法前,回顾下最大似然估计
最大似然估计解决的问题是,在不知道参数θ的情况下,只有数据,要猜出参数θ。
- 假设参数为θ
- 那么在θ参数出现的情况下,出现样本 xi 的概率就是 p(xi|θ)
- 考虑所有样本,计算最大值,进行累乘法: l(θ)=∏mi=1p(xi|θ)
- 由于累乘计算难度比较大,加入一个对数转换为加法
- 因为我们求得是最大值,即使加入对数也不会改变结果
- logAB = logA + logB
- 所以最大似然函数变成 l(θ)=log∏mi=1p(xi|θ)=∑mi=1logp(xi|θ)
- 接下来只要知道 p(xi|θ) 的分布函数,就可以进行相关求解
EM算法解决什么问题
- 如果存在隐含变量,最大似然函数就难以求解
如:假设有两枚不均匀的硬币A和B,分别朝上和朝下的概率都不同,也就是不一定是0.5朝上,0.5朝下,要求这两个硬币的朝上和朝下的概率。
每次投掷10次,但是每次的结果我们不知道来自哪一个硬币,这个就是隐含变量。结合最大似然函数就是 ∑mi=1log∑zp(xi|θ)
∑z 在此例子中表示两种情况,一种来自A,一种来自B,这样就难以求解。 - em算法具体是怎么做的
0.随机或者根据经验假设初始值朝上的概率 θA 和 θB
1.E-step:根据参数θ计算每个样本属于 Zi 的概率,也就是这个样本是属于A还是属于B的概率
2.M-Step:根据Q,求出含有θ的似然函数的下界并最大化它,得到新的参数θ
3.不断的迭代更新下去
EM算法推导
Jensen不等式
- 设f是定义域为实数的函数,如果对于所有的实数x。如果对于所有的实数x,f(x)的二次导数大于等于0,那么f是凸函数。
- 如果f是凸函数,X是随机变量,那么:E[f(X)]>=f(E[X])
- 如果是凹函数,则f(E[X])>=E[f(X)]
- 把函数
log∑zp(xi|θ)
转换为Jensen不等式格式求解
- log∑zp(xi|θ)=log∑zQ(z)p(xi|θ)Q(z)
- Q(z) 表示z的分布函数
- 由于 ∑zQ(z)p(xi|θ)Q(z) 是 p(xi|θ)Q(z) 的期望
- 设Y= p(xi|θ)Q(z) 则有: log∑zQ(z)p(xi|θ)Q(z)=log∑YP(Y)Y=logE(Y)>=E(logY)
- E(logY)=∑YP(Y)logY=∑zQ(z)logp(xi,z;θ)Q(z)
- 结论: l(θ)=∑mi=1log∑zp(xi,z;θ)>=∑mi=1∑zQ(z)logp(xi,z;θ)Q(z)
- 求下界的最大值,即左右相等的时候
- Jensen中等式成立的条件是随机变量是常数: Y=p(x,z;θ)Q(z)=c
- 由于Q(z)是z的分布函数: ∑zQ(z)=∑zp(xi,z;θ)c=1
- 由上面的式子得: c=∑zp(xi,z;θ)
- Q(z)=p(xi,z;θ)c=p(xi,z;θ)∑zp(xi,z;θ)=p(xi,z;θ)p(xi;θ)=p(z|xi;θ)
- Q(z)表示第i个数据来自 Zi 的概率