- 非监督学习、生成模型
- EM算法应用场景:含有隐变量的参数估计问题
- EM解析(以高斯分布为例):
- 假设有一批数据x。
- x可能满足多种不同的模型,这些模型的分布服从高斯分布的概率密度函数形式(高斯混合模型)。这时,问题中就包含了三个变量:取到某种模型的概率w,以及在该高斯分布下的参数μ和 σ \sigma σ。我们最终求的是最好的模型的参数μ和 σ \sigma σ,所以取到某种模型的概率w就相当于是隐变量。
- 若根据极大似然估计方法,该问题求解可以描述为:
- 设有x个数据,表示为: x i x_{i} xi,i从1到N。
- 设高斯分布的概率密度函数为 f ( μ , σ ) f(\mu,\sigma) f(μ,σ) ,有j个类型的模型,他们概率表示为 f ( μ j , σ j ) f(\mu_{j},\sigma_{j}) f(μj,σj),且每个取到的的概率为 w j w_{j} wj
- 那么对每一个数据x而言,其总的概率就可以表示为:
∑ j = 1 K W j f j ( x i ) \sum_{j=1}^{K} W_{j} f_{j}\left(x_{i}\right) j=1∑KWjfj(xi) - 那么所有的数据满足模型的概率就为(该式也就是极大似然估计):
max ∏ i = 1 n [ ∑ j = 1 k w j f j ( x i ) ] \operatorname{max} \prod_{i=1}^{n}\left[\sum_{j=1}^{k} w_{j} f_{j}\left(x_{i}\right)\right] maxi=1∏n[j=1∑kwjfj(xi)] - 转换为极大似然估计的log形式就为:
max ∑ i = 1 n log ( ∑ j = 1 k w j f j ( x i ) ) \max \sum_{i=1}^{n} \log \left(\sum_{j=1}^{k} w_{j} f_{j}\left(x_{i}\right)\right) maxi=1∑nlog(j=1∑kwjfj(xi))
- 对于上式来说,依旧很难求解,所以EM算法采用了迭代的方式来做。
- 首先初始化该问题中的三个参数: μ 0 , σ 0 , w 0 \mu_{0},\sigma_{0},w_{0} μ0,σ0,w0
- 然后求解
w
j
w_{j}
wj(每一个模型的分布系数),i指代某个x:
W 1 = ∑ i = 1 n W i 1 n W_{1}=\frac{\sum_{i=1}^{n} W_{i 1}}{n} W1=n∑i=1nWi1 - 再求解
μ
1
\mu_{1}
μ1:
μ 1 = ∑ i = 1 n w i 1 x i ∑ i = 1 n w i 1 \mu_{1}=\frac{\sum_{i=1}^{n} w_{i 1} x_{i}}{\sum_{i=1}^{n} w_{i 1}} μ1=∑i=1nwi1∑i=1nwi1xi - 再求解
σ
1
\sigma_{1}
σ1:
σ 1 = ∑ i = 1 n ω i 1 ( x i − μ 1 ) ∑ i = 1 n w i 1 {\sigma_{1}}=\frac{\sum_{i=1}^{n} \omega_{i 1}\left(x_{i}-\mu_{1}\right)}{\sum_{i=1}^{n} w_{i 1}} σ1=∑i=1nwi1∑i=1nωi1(xi−μ1) - 至此,求出了迭代一次的参数值。
- 继续迭代,会发现参数趋于收敛,这时停下来,完成EM算法。
- 一般性的:EM算法的E步,也就是求期望过程,求的是根据数据和当前参数对隐变量的期望的估计。
EM算法的M步,是迭代数据和当前参数,求E步期望最大的过程。