Expectation Maximization
单个高斯分布假设
已知观测到的数据 x={x1,x2...,xn} . 若对该数据进行单个高斯分布 θ(μ,σ2) 的假设,则可有以下log likelyhood :
L(θ|x¯)=log(P(x¯|θ))=∑i=1nlog(P(xi|θ))P(xi|θ)=12π−−√σe−(xi−μ)22σ2找到最可能的高斯分布参数,即 P(x¯|θ) 最大. 可以对 L(θ|x¯) 求导, 令其为0,解得 θ
对于混合高斯分布, L(θ|x¯) 较为复杂,故需要引入EM算法来进行求解
EM 算法, 原理为:迭代优化参数,使得 P(x|θ) 最大. 迭代方程如下: 可以证明通过如下方法可保证 P(x|θ(g+1))≥P(x|θ(g)) .
θ(g+1)=argmaxθ∫zlog(P(x,z|θ))∗P(z|x,θ(g))dz, 其中z为隐变量证明如下:
贝叶斯公式:
P(x|θ)=P(x,z|θ)P(z|x,θ)两边取对数:
log(P(x|θ))=log(P(x,z|θ))−log(P(z|x,θ))以隐变量z为分布求期望:
E(log(P(x|θ)))=E(log(P(x,z|θ)))−E(log(P(z|x,θ)))∫zlog(P(x|θ))∗P(z|x,θ(g))dz=∫zlog(P(x,z|θ))∗P(z|x,θ(g))dz−∫zlog(P(z|x,θ))∗P(z|x,θ(g))dzLog likelyhood就出来了:
log(P(x|θ))=∫zlog(P(x,z|θ))∗P(z|x,θ(g))dz−∫zlog(P(z|x,θ))∗P(z|x,θ(g))dz当 θ 取 θ(g+1) 时,
∫zlog(P(x,z|θ))∗P(z|x,θ(g))dz取到最大值。令 H(θ,θ(g))=∫zlog(P(z|x,θ))∗P(z|x,θ(g))dz
如果我们证明了 H(θ(g+1),θ(g))≤H(θ(g),θ(g)) 则 P(x|θ(g+1))≥P(x|θ(g)) 也就证明了.
H(θ(g),θ(g))−H(θ(g+1),θ(g))=∫zlog(P(z|x,θ(g)))∗P(z|x,θ(g))dz−∫zlog(P(z|x,θ(g+1)))∗P(z|x,θ(g))dz=∫zlog(P(z|x,θ(g))P(z|x,θ(g+1)))∗P(z|x,θ(g))dz=∫z−log(P(z|x,θ(g+1))P(z|x,θ(g)))∗P(z|x,θ(g))dz为了证明这一点,需要用到Convax函数的知识即Jensen不等式:
(1−p)∗f(x)+p∗f(y)≥f[(1−p)∗x+p∗y]所以有
∫z−log(P(z|x,θ(g+1))P(z|x,θ(g)))∗P(z|x,θ(g))dz≥−log(∫zP(z|x,θ(g+1))P(z|x,θ(g))∗P(z|x,θ(g))dz)=0故EM算法是合理的,注意:隐变量z的选取不能破坏 xi 的边缘分布