文章目录
期望最大化算法(Expectation Maximization, EM)
1. 基本内容
- 用于含有隐变量的概率模型参数的极大似然估计
- EM 是个一般方法,而不是某个具体模型
- 知道有哪些分布模型,但不知道每个样本具体属于哪个分布
2. 从三硬币模型
2.1 问题提出
A, B, C 为三枚硬币,正面朝上的概率假设分别为 π , p , q \pi,p,q π,p,q ,进行投掷硬币实验:先投掷 A 硬币,结果用 x 表示,如果朝上(x=1),投掷 B 硬币,否则(x=0),投掷 C 硬币。最终结果记为 y,正面 y=1, 反面 y=0
假设经过 n 次实验,得到结果 y 1 , y 2 , ⋯ , y n y_1, y_2, \cdots, y_n y1,y2,⋯,yn ,如何从极大似然估计的角度估计参数?
2.2 解决方案
流程如下图所示
可以得到联合概率分布:
y=1 | y=0 | |
---|---|---|
from B | π p \pi p πp | π ( 1 − p ) \pi (1-p) π(1−p) |
from C | ( 1 − π ) q (1-\pi)q (1−π)q | ( 1 − π ) ( 1 − q ) (1-\pi) (1-q) (1−π)(1−q) |
total | π p + ( 1 − π ) q \pi p+(1-\pi)q πp+(1−π)q | π ( 1 − p ) + ( 1 − π ) ( 1 − q ) \pi(1-p)+(1-\pi)(1-q) π(1−p)+(1−π)(1−q) |
total其实就是每个结果 y i ( 0 o r 1 ) y_i(0\ or\ 1) yi(0 or 1) 的密度,对于两种结果,可以统一写成:
π p y i ( 1 − p ) 1 − y i + ( 1 − π ) q y i ( 1 − q ) 1 − y i \pi p^{y_i}(1-p)^{1-y_i}+(1-\pi)q^{y_i}(1-q)^{1-y_i} πpyi(1−p)1−yi+(1−π)qyi(1−q)1−yi
那么转化为极大似然估计问题,就是求解
m a x w , p , q ∏ i = 1 n [ π p y i ( 1 − p ) 1 − y i + ( 1 − π ) q y i ( 1 − q ) 1 − y i ] \mathop{max}\limits_{w,p,q} \prod\limits_{i=1}^n[\pi p^{y_i}(1-p)^{1-y_i}+(1-\pi)q^{y_i}(1-q)^{1-y_i}] w,p,qmaxi=1∏n[πpyi(1−p)1−yi+(1−π)qyi(1−q)1−yi]
或者可以写成
m a x w , p , q ∏ i = 1 n [ π p + ( 1 − π ) p ] x i [ π ( 1 − p ) + ( 1 − π ) ( 1 − q ) ] 1 − x i \mathop{max}\limits_{w,p,q}\prod\limits_{i=1}^n [\pi p+(1-\pi)p]^{x_i}[\pi(1-p)+(1-\pi)(1-q)]^{1-x_i} w,p,qmaxi=1∏n[πp+(1−π)p]xi[π(1−p)+(1−π)(1−q)]1−xi
对其进行求解,可以得到
p ( y = 1 ) = π p + ( 1 − π ) q = k n p ( y = 0 ) = π ( 1 − p ) + ( 1 − π ) ( 1 − q ) = n − k n p(y=1) = \pi p+(1-\pi)q = \frac{k}{n} \\ p(y=0) = \pi(1-p)+(1-\pi)(1-q) = \frac{n-k}{n} p(y=1)=πp+(1−π)q=nkp(y=0)=π(1−p)+(1−π)(1−q)=nn−k
其中,k 为结果中 y=1 的个数,n 为总实验次数。两式其实是等价的,可以写作为一个关系式
π p + ( 1 − π ) q = k n \pi p + (1-\pi)q = \frac{k}{n} πp+(1−π)q=nk
其中, π , p , q \pi,p,q π,p,q 三个为待估计参数。方程数小于参数个数(静不定),理论上来讲,只要符合该关系式的参数值,就是一个合理估计。
该问题比较简单,可以求出解析解,但对于一般问题来说,极大似然函数是得不到解析解的。下面从迭代的角度来逼近这个极大似然的解。
2.3 换个角度
考虑结果的所有情况,获得条件概率:
P ( f r o m B ∣ y = 1 ) = π p π p + ( 1 − π ) q = a P ( f r o m C ∣ y = 1 ) = ( 1 − π ) q π p + ( 1 − π ) q = b P ( f r o m B ∣ y = 0 ) = π ( 1 − p ) π ( 1 − p ) + ( 1 − π ) ( 1 − q ) = c P ( f r o m C ∣ y = 0 ) = ( 1 − π ) ( 1 − q ) π ( 1 − p ) + ( 1 − π ) ( 1 − q ) = d \begin{aligned} P(from B | y=1) &= \frac{\pi p}{\pi p + (1-\pi)q} = a \\ P(from C | y=1) &= \frac{(1-\pi)q}{\pi p + (1-\pi)q} = b\\ P(from B | y=0) &= \frac{\pi (1-p)}{\pi(1-p)+(1-\pi)(1-q)} = c \\ P(from C | y=0) &= \frac{(1-\pi)(1-q)}{\pi(1-p)+(1-\pi)(1-q)} = d \end{aligned} P(fromB∣y=1)P(fromC∣y=1)P(fromB∣y=0)P(fromC∣y=0)=πp+(1−π)qπp=a=πp+(1−π)q(1−π)q=b=π(1−p)+(1−π)(1−q)π(1−p)=c=π(1−p)+(1−π)(1−q)(1−π)(1−q)=d
也就是说,对与一个实验结果 y i y_i yi,有上面四种情况(严格来说是两种,因为结果 y i = 0 , 1 y_i=0,\ 1 yi=0, 1 是知道的),为了清晰起见,针对每种个实验结果 y i y_i yi 可以列出下面的表格
y 1 y_1 y1 | y 2 y_2 y2 | ⋯ \cdots ⋯ | y n y_n yn | |
---|---|---|---|---|
from B | y = 1 | a 1 a_1 a1 | a 2 a_2 a |