斯坦福公开课Machine Learning笔记(十)–Mixtures of Gaussians and EM algorithm
这系列笔记其实已经手写好, 现在一次性发上来, 主要是怕丢. 内容以Andrew Ng的讲义为主,主要以公式推导与理解为主,引入和介绍省略.对于最后的Reinforcement Learning部分, 由于没有讲义以及对其实在不熟悉, 就没有笔记了(主要还是因为没有讲义).
之前的训练集都是有标记的,k-means是公开课中第一个无标记的算法,其基本思想也很好理解.而这课的EM算法应用很多,先假设了隐变量,其公式推导还是需要慢慢琢磨.
先以高斯混合模型为例:
有隐变量z,x(i)和z(i) 有以下联合分布:
P(x(i),z(i))=P(x(i)|z(i))P(z(i))
∴z(i)~Multionial(ϕ) (ϕj≥0,∑jϕj=1)
∴x(i)|z(i)=j ~N(μj,Σj)
如果知道z(i)
l(θ,μ,Σ)=∑mi=1logP(x(i),z(i);ϕ,μ,Σ)
∴ϕj=1m∑mi=11{z(i)=j}
μj=∑mi=11{z(i)=j}x(i)∑mi=11{z(i)=j}
z(i)∈{0,1}
∴EM算法:
Repeat{
E-step:(guess value of z(i)s)
W(i)j:=P(z(i)=j|x(i);ϕ,μ,Σ)=P(x(i)|z(i)=j)P(z(i)=j)∑kl=1P(x(i)|z(i)=l;μ,Σ)P(z(i)=l;ϕ)=1(2π)n2|Σ|12exp(−12(x(i)−μj)TΣ−1j(x(i)−μj))×ϕj∑kl=11(2π)n2|Σ|12exp(x(i)−μl)TΣ−1j(x(i)−μl)ϕl
M-step:(update the parameters)
}
以上只是EM的一个特例,高斯模型的一个例子.现在来推导一下EM算法:
先介绍下Jensen不等式:
f是凸函数(f′′≥0)
E[f(x)]≤f(E[x])
当且仅当x=E[x],E[f(x)]=f(E[x]),此时P=1
如果f′′≤0
E[f(x)]≥f(E[x])
∴EM:
根据Jensen不等式的取等号条件,我们想要的是P(x(i),z(i);θ)Qi(z(i))=c为常量.又由于∑z(i)Qi(z(i))=1,所以P(x(i),z(i);θ)=c,所以Q的分布就是z的后验概率.
∴Qi(z(i))=P(x(i),z(i);θ)∑z(i)P(x(i),z(i);θ)=P(x(i),z(i);θ)P(x(i);θ)=P(z(i)|x(i);θ)
∴E−step:
Set Qi(z(i))=P(z(i)|x(i);θ)
M−step:
θ:=argmaxθ∑i∑z(i)Qi(z(i))logP(x(i),z(i);θ)Qi(z(i))
从另一个角度来看:
define:
J(θ,Q)=∑i∑z(i)Qi(z(i))logP(x(i),z(i);θ)Qi(z(i)) (l(θ≥J(θ,Q)))
E−step:固定θ,maximize Q
M−step:固定Q, maximize θ
回到高斯混合模型中:
E−step:
M−step:
然后分别对ϕ,μ,Σ求导求解.
Mixtures of Naive Bayes Model
当我们要对文本进行分类,但是不知道标签,那么使用NB对文本进行分类是文本聚类问题.
这里有m个文本,每个文本表示成n维向量.xi∈{0,1}代表词是否出现在文本中.
这里隐变量z∈{0,1} Bernoulli(ϕ)
∴P(x(i)|z(i))=∏mi=1P(x(i)j|z(i))
P(x(i)=1|z(i)=0)=ϕj|z(i)=0
∴
E−step:
W(i)=P(z(i)=1|x(i);ϕj|z,ϕ)
M−step:
ϕj|z(i)=1=∑mi=1W(i)1{x(i)j=1}∑mi=1W(i)
ϕj|z(i)=0=∑mi=1(1−W(i))1{x(i)j=1}∑mi=1(1−W(i))
ϕz=∑i1{z(i)=1}m
其实EM和k-means的大体思路是差不多的,只是EM可以具体求出密度函数P(z|x)