前言
这篇博客简单介绍期望最大化(Expectation-Maximization,EM)算法。
其实很喜欢一些有些年头的算法,名字简明易了。
EM算法便是代表,算法主要迭代Expectation和Maximization两个环节,最后求解模型的MLE或者MAP。
EM算法主要是为了解决所要构建的似然函数或者后验分布中存在隐变量而无法简单获得的问题。
在正式开始前,我想到我的指导老师评价EM算法为“我们当时读博时,谁都了解的算法”。
顺带一提,他是上个世纪90年代的博士生。
EM算法进行MLE
假设我们的观测数据为x = { x 1 , x 2 , … , x N } \boldsymbol{x}= \{x_{1},x_{2}, \dots, x_N\} x = { x 1 , x 2 , … , x N } 。
随机变量服从的分布的模型参数为θ \theta θ ,假定的似然函数为L ( θ ∣ x ) L(\theta \mid \boldsymbol{x}) L ( θ ∣ x ) 。
根据MLE,我们如下估计θ \theta θ
θ ^ ∗ = arg max θ ∑ i N log L ( θ ∣ x i ) , (1) \widehat{\theta}^{*} = \arg \max_{\theta}\sum_{i}^{N}\log{ L(\theta\mid x_{i})}, \tag{1}
θ ∗ = arg θ max i ∑ N log L ( θ ∣ x i ) , ( 1 )
这里我们使用的对数似然函数。
一切看起来都十分顺利,但是如果存在另一个随机变量Z Z Z ,并且与变量X X X 并不独立,那么L ( θ ∣ x ) L(\theta \mid \boldsymbol{x}) L ( θ ∣ x ) 的获得可能要将Z Z Z 周边化掉。
假设,z z z 为Z Z Z 的相应数据。
L ( θ ∣ x ) = P ( x ∣ θ ) = ∫ z P ( x , z ∣ θ ) d z L(\theta \mid \boldsymbol{x}) = P(\boldsymbol{x} \mid \theta) = \int_{\boldsymbol{z}} P(\boldsymbol{x}, \boldsymbol{z} \mid \theta )\, dz
L ( θ ∣ x ) = P ( x ∣ θ ) = ∫ z P ( x , z ∣ θ ) d z
如果z \boldsymbol{z} z 是可以观测的,那么必然没有什么问题
∫ z P ( x , z ∣ θ ) d z = ∫ z P ( x ∣ θ , z ) P ( z ∣ θ ) d z = ∫ z P ( x ∣ θ , z ) P ( z ) d z . \int_{\boldsymbol{z}} P(\boldsymbol{x}, \boldsymbol{z} \mid \theta )\, dz = \int_{\boldsymbol{z}} P(\boldsymbol{x} \mid \theta, \boldsymbol{z} )P(\boldsymbol{z}\mid \theta)\, dz = \int_{\boldsymbol{z}} P(\boldsymbol{x} \mid \theta, \boldsymbol{z} )P(\boldsymbol{z})\, dz.
∫ z P ( x , z ∣ θ ) d z = ∫ z P ( x ∣ θ , z ) P ( z ∣ θ ) d z = ∫ z P ( x ∣ θ , z ) P ( z ) d z .
对于最后一步的原因,可以简单地理解为因为 θ 因为\theta 因为 θ 不是Z Z Z 的参数。
更具体而言的话,也许可以从贝叶斯网络的角度来有一个更直观上的理解
graph LR
A((Z)) --> B((X))
C((θ)) --> B
graph LR
B((Z)) --> A((X))
C((θ)) --> B