参考:
https://www.cnblogs.com/pinard/p/6912636.html
https://zhuanlan.zhihu.com/p/40991784
《统计学习方法》李航
1 EM算法
EM算法是一种迭代算法,用于含有隐变量(hidden variable)的概率模型参数的极大似然估计,或极大后验概率估计。EM算法的每次迭代由两步组成:E步,求期望(expectation);M步,求极大(maximization)。所以这一算法称为期望极大算法(expectation maximization algorithm),简称EM算法。其基本思想是:首先根据己经给出的观测数据,估计出模型参数的值;然后再依据上一步估计出的参数值估计缺失数据的值,再根据估计出的缺失数据加上之前己经观测到的数据重新再对参数值进行估计,然后反复迭代,直至最后收敛,迭代结束。
一个最直观了解EM算法思路的是K-Means算法。在K-Means聚类时,每个聚类簇的质心是隐含数据。我们会假设K个初始化质心,即EM算法的E步;然后计算得到每个样本最近的质心,并把样本聚类到最近的这个质心,即EM算法的M步。重复这个E步和M步,直到质心不再变化为止,这样就完成了K-Means聚类。
2 预备知识
2.1 Jensen不等式
基本条件: f ( x ) f(x) f(x)为凸函数
离散型Jensen不等式:
若 θ 1 , . . . , θ k ≥ 0 θ_1,...,θ_k \geq 0 θ1,...,θk≥0 , θ 1 + . . . + θ k = 1 θ_1+...+θ_k=1 θ1+...+θk=1 ,则: f ( θ 1 x 1 + . . . + θ k x k ) ≤ θ 1 f ( x 1 ) + . . . + θ k f ( x k ) f(θ_1x_1+...+θ_kx_k)\leq θ_1f(x_1)+...+θ_kf(x_k) f(θ1x1+...+θkxk)≤θ1f(x1)+...+θkf(xk)
连续型Jensen不等式:
若 p ( x ) ≥ 0 p(x) \geq 0 p(x)≥0 , ∫ S p ( x ) d x = 1 \int_Sp(x)dx=1 ∫Sp(x)dx=1 ,则: f ( ∫ S p ( x ) x d x ) ≤ ∫ S f ( x ) p ( x ) d x f(\int_Sp(x)xdx)\leq \int_Sf(x)p(x)dx f(∫Sp(x)xdx)≤∫Sf(x)p(x)dx
进一步理解上离散型Jensen不等式: θ 1 + . . . + θ k θ_1+...+θ_k θ1+...+θk 实际是 x i x_i xi 在给定 θ i θ_i θi 的分布上X的期望, θ 1 f ( x 1 ) + . . . + θ k f ( x k ) θ_1f(x_1)+...+θ_kf(x_k) θ1f(x1)+...+θkf(xk) 实际是 f ( x i ) f(x_i) f(xi) 在给定 θ i θ_i θi 的分布上X的期望,那么我们有: f ( E X ) ≤ E f ( X ) f(EX) \leq Ef(X) f(EX)≤Ef(X)当 f ( x ) f(x) f(x)为凹函数时,有: f ( E X ) ≥ E f ( X ) f(EX) \geq Ef(X) f(EX