背景
假设我们需要调查我们学校学生的身高分布。我们先假设学校所有学生的身高服从正态分布 N ( μ , δ 1 2 ) N(\mu, \delta_1^2) N(μ,δ12),但是男女但身高分布是不同的,我们假设他们真实的分布分别为男: N ( μ 1 , δ 1 ) N(\mu_1, \delta_1) N(μ1,δ1)和女: N ( μ 2 , δ 2 2 ) N(\mu_2, \delta_2^2) N(μ2,δ22),现在我们怎么估计求得各自的分布呢?
假设我们不能拿到所有的男女学习身高数据以得到真实的数据分布,我们只能从所以学生中抽样,并且抽样得到的数据,完全没有标注是男是女;那我们怎么分别为男生女生估计出一个分布呢?这里就用到EM算法,即(Expectation Maximization)。
大致去看
该方法是怎样做得的呢?简要来说,它是一种不断循环优化的过程:
- 我们首先随机初始化男女身高的平均值和方差,据此求得每一份身高数据是男生,女生的概率分别是多少,两个概率相加是1
- 由每份数据是男或女的概率,更新男和女的身高分布,即更新平均值和方差;
- 对1,2过程不断重复,直至达到一个稳定的状态(比如更新的平均值和方差前与后相差小于某一个值)。
EM
- 不完全数据分析
P ( Y ∣ θ ) P(Y|\theta) P(Y∣θ) - 完全数据分布
P ( Y , Z ∣ θ ) P(Y,Z|\theta) P(Y,Z∣θ)
求解目标最大似然估计,maximun likelihood estimate
l o g P ( Y , Z ∣ θ ) ) = ∑ i n l o g ∑ z i P ( x i , z i ∣ θ ) > = ∑ i ∑ z i Q ( z i ) l o g P ( x i , z i ∣ θ ) Q ( z i ) logP(Y,Z|\theta))=\sum_i^nlog\sum_{z_i}P(x^i,z^i|\theta)>=\sum_i \sum_{z^i} Q(z^i)log \frac{P(x^i,z^i|\theta)}{Q(z^i)} logP(Y,Z∣θ))=i∑nlogzi∑P(xi,zi∣θ)>=i∑zi∑Q(zi)logQ(zi)P(xi,zi∣θ)
Q ( θ , θ i ) = ∑ Z l o g P ( Y , Z ∣ θ ) P ( Z ∣ Y , θ i ) Q(\theta,\theta^i)=\sum_Z logP(Y,Z|\theta)P(Z|Y,\theta^i) Q(θ,θi)=Z∑logP(Y,Z∣θ)P(Z∣Y,θi)
具体而言
https://en.wikipedia.org/wiki/Expectation%E2%80%93maximization_algorithm
- 写出完全数据的概率 P ( Y , Z ∣ θ ) P(Y,Z|\theta) P(Y,Z∣θ),比如隐含量Z为性别男女,变量Y为身高,身高的分布为高斯分布 ( u , δ 2 ) (u,\delta^2) (u,δ2),还有男女的分布 T i T_i Ti
附加知识:
在贝叶斯概率理论中,如果后验概率P(θ|x)和先验概率p(θ)满足同样的分布律,那么,先验分布和后验分布被叫做共轭分布^
-
EM algorithm
-
输 入 : 观 测 变 量 数 据 Y , 隐 变 量 数 据 Z , 联 合 分 布 P ( Y , Z ∣ θ ) , 条 件 分 布 P ( Z ∣ Y , θ ) ; 输入:观测变量数据Y,隐变量数据Z,联合分布P(Y,Z|\theta),条件分布P(Z|Y,\theta); 输入:观测变量数据Y,隐变量数据Z,联合分布P(Y,Z∣θ),条件分布P(Z∣Y,θ);
输出:模型参数 θ \theta θ
(1)选择参数的初值 θ ( 0 ) \theta^(0) θ