以下内容均为个人理解,如有错误,欢迎指出
EM算法是一类通过迭代进行极大似然估计的优化算法,用于对包含隐变量或缺失数据的概率模型进行参数估计。
可以表示缺失数据,或概率模型中任何无法直接观测的随机变量,隐变量往往会影响观测变量的取值,例如现在有一群人的身高,但是我们并不知道每个人的性别,性别就是一个隐变量
1、n次实验互相独立,即样本之间互相独立
2、已知其概率密度函数(连续分布)或概率质量函数(离散分布)
以下为个人理解,如有错误,欢迎指出
给定一个南方人身高的观测样本 x 1 , x 2 , x 3 , . . . . x n x_1,x_2,x_3,....x_n x1,x2,x3,....xn,假定身高服从正态分布,我们不知道正态分布的期望与方差,这两个参数记为 θ \theta θ,现在我们想依据这批身高数据求得正态分布的两个参数,从而求得南方人身高的概率密度函数。
我们知道性别可以间接影响身高,例如一个人是女性,那么大概率其身高在1米6左右,如果是男性,其身高大概率在1米7左右,如果我们直接使用极大似然估计最大化对数似然 m a x ( l o g ( ∑ i = 1 n p ( x i ∣ θ ) ) ) max(log(\sum_{i=1}^np(x_i|\theta))) max(log(∑i=1np(xi∣θ))),假设这批样本都是女性,那么求得的概率密度函数将显示大部分南方人的身高都是1米6(男孩子哭死),显然,在有隐变量的情况下,直接使用极大似然估计求出的参数 θ \theta θ将具有很大的偏差,而EM算法将在考虑隐变量的情况下最大化对数似然函数,则有
m a x ( ∑ i = 1 n log p ( x i ∣ θ ) ) = m a x ( ∑ i = 1 n log ∑ j = 1 m p ( x i , z j ∣ θ ) ) ( 隐 变 量 是 离 散 随 机 变 量 ) m a x ( ∑ i = 1 n log p ( x i ∣ θ ) ) = m a x ( ∑ i = 1 n log ∫ a b p ( x i , z ∣ θ ) ) ( 隐 变 量 是 连 续 随 机 变 量 ) \begin{aligned} max(\sum_{i=1}^n\log p(x_i|\theta))=&max(\sum_{i=1}^n\log \sum_{j=1}^mp(x_i,z_j|\theta))(隐变量是离散随机变量)\\ max(\sum_{i=1}^n\log p(x_i|\theta))=&max(\sum_{i=1}^n\log \int_a^bp(x_i,z|\theta))(隐变量是连续随机变量) \end{aligned} max(i=1∑nlogp(xi∣θ))=max(i=1∑nlogp(xi∣θ))=max(i=1∑nlogj=1∑mp(xi,zj∣θ))(隐变量是离散随机变量)max(i=1∑nlog∫abp(xi,z∣θ))(隐变量是连续随机变量)
这看起来非常神奇,毕竟我们都不知道样本集中的样本的性别,但是EM算法是有理论保障的,本文将假设隐变量为离散随机变量
Jensen不等式
x是一个随机变量,f(x)是一个概率密度函数,如果它是一个凸函数,则有
E [ f ( x ) ] ≥ f [ E ( x ) ] E[f(x)]\geq f[E(x)] E[f(x)]≥f[E(x)]
若
若f(x)是一个凹函数,则有
E [ f ( x ) ] ≤ f [ E ( x ) ] E[f(x)]\leq f[E(x)] E[f(x)]≤f[E(x)]
当且仅当x是一个常数时,即随机变量取值固定,等号成立
符号表
符号名 | 含义 |
---|---|
Q ( z i j ) Q(z_{ij}) Q(zij) | 表示样本i属于隐藏变量 z j z_j zj的概率 |
m | 样本数 |
n | 隐变量数 |
θ \theta θ | 未知参数 |
p ( x i , z j ; θ ) p(x_i,z_j;\theta) p(xi,zj;θ) | 表示隐变量取值为 z i z_i zi且样本 x i x_i xi出现的概率(带未知参数的表达式) |
y j y_j yj | y j = p ( x i , z j ; θ ) Q ( z i j ) y_j=\frac{p(x_i,z_j;\theta)}{Q(z_{ij})} yj=Q(zij)p(xi,zj;θ),为离散随机变量 |
我们的想法是构造出Jenson不等式,对于对数似然 ∑ i = 1 m log ∑ j = 1 n p ( x i , z j ; θ ) \sum_{i=1}^m\log \sum_{j=1}^np(x_i,z_j;\theta) ∑i=1mlog∑j=1np(xi,zj;θ),我们取其中的一项 log ∑ j = 1 n p ( x i , z j ; θ ) \log \sum_{j=1}^np(x_i,z_j;\theta) log∑j=1np(xi,zj;θ)进行讨论,对其进行变形,则有
log ∑ j = 1 n p ( x i , z j ; θ ) = log ∑ j = 1 n ( Q ( z i j ) p ( x i , z j ; θ ) Q ( z i j ) ) ( 式 1.1 ) \log\sum_{j=1}^np(x_i,z_j;\theta)=\log \sum_{j=1}^n(Q(z_{ij})\frac{p(x_i,z_j;\theta)}{Q(z_{ij})})(式1.1) logj=1∑np(xi,zj;θ)=logj=1∑n(Q(zij)Q(zij)p(xi,zj;θ))(式1.1)
若设 p ( Y = y j ) = Q ( z i j ) p(Y=y_j)=Q(z_{ij}) p(Y=yj)=Q(zij),式1.1可看成 ∑ j = 1 n p ( Y = y j ) y j \sum_{j=1}^np(Y=y_j)y_j ∑j=1np(Y=yj)yj,这是离散随机变量 y j y_j yj的期望,假设有一个对数函数,则式1.1可看成 f ( E ( Y ) ) f(E(Y)) f(E(Y)),而对数函数是凹函数,所以 E ( f ( Y ) ) = ∑ i = j n [ l o g ( p ( x i , z j ; θ ) Q ( z i j ) ) ] Q ( z i j ) E(f(Y))=\sum_{i=j}^n[log(\frac{p(x_i,z_j;\theta)}{Q(z_{ij})})]Q(z_{ij}) E(f(Y))=∑i=jn[log(Q(zij)p(xi,zj;θ))]Q(zij),由于对数函数是凹函数,则有 f ( E ( Y ) ) = log ∑ j = 1 n ( Q ( z i j ) p ( x i , z j ; θ ) Q ( z i j ) ) ≥ E ( f ( Y ) ) = ∑ i = j n [ l o g ( p ( x i , z j ; θ ) Q ( z i j ) ) ] Q ( z i j ) f(E(Y))=\log \sum_{j=1}^n(Q(z_{ij})\frac{p(x_i,z_j;\theta)}{Q(z_{ij})})\geq E(f(Y))=\sum_{i=j}^n[log(\frac{p(x_i,z_j;\theta)}{Q(z_{ij})})]Q(z_{ij}) f(E(Y))=logj=1∑n(Q(zij)Q(zij)p(xi,zj;θ))≥E(f(Y))=i=j∑n[log(Q(zij)p(xi,zj;θ))]Q(zij)
等号成立的条件是 y j ( 1 ≤ j ≤ n ) y_j\ (1 \leq j \leq n) yj (1≤j≤n)均为常数,设该常数为c,则有
y 1 = p ( x i , z 1 ; θ ) Q ( z i 1 ) = c y 2 = p ( x i , z 2 ; θ ) Q ( z i 2 ) = c . . . . . y n = p ( x i , z 1 ; θ ) Q ( z i n ) = c \begin{aligned} y_1&=\frac{p(x_i,z_1;\theta)}{Q(z_{i1})}=c\\ y_2&=\frac{p(x_i,z_2;\theta)}{Q(z_{i2})}=c\\ &.....\\ y_n&=\frac{p(x_i,z_1;\theta)}{Q(z_{in})}=c \end{aligned} y1y2yn=Q(zi1)p(xi,z1;θ)=c=Q(zi2)p(xi,z2;θ)=c.....=Q(zin)p(xi,z1;θ)=c
则有
p ( x i , z 1 ; θ ) c = Q ( z i 1 ) p ( x i , z 2 ; θ ) c = Q ( z i 2 ) . . . . . p ( x i , z n ; θ ) c = Q ( z i n ) \begin{aligned} \frac{p(x_i,z_1;\theta)}{c}&=Q(z_{i1})\\ \frac{p(x_i,z_2;\theta)}{c}&=Q(z_{i2})\\ .....\\ \frac{p(x_i,z_n;\theta)}{c}&=Q(z_{in}) \end{aligned} cp(xi,z1;θ)cp(xi,z2;θ).....cp(xi,zn;θ)=Q(zi1)=Q(zi2)=Q(zin)
由于一个样本必然属于某个隐变量,则有 ∑ i = 1 n Q ( z i j ) = 1 \sum_{i=1}^nQ(z_{ij})=1 ∑i=1nQ(zij)=1,将上述式子相加即为
c = ∑ j = 1 n p ( x i , z j ; θ ) = ∑ j = 1 n p ( x i ; θ ) p ( z i ∣ x i ; θ ) = p ( x i ; θ ) ∑ j = 1 n p ( z i ∣ x i ; θ ) = p ( x i ; θ ) c=\sum_{j=1}^np(x_i,z_j;\theta)=\sum_{j=1}^np(x_i;\theta)p(z_i|x_i;\theta)=p(x_i;\theta)\sum_{j=1}^np(z_i|x_i;\theta)=p(x_i;\theta) c=j=1∑np(xi,zj;θ)=j=1∑np(xi;θ)p(zi∣xi;θ)=p(xi;θ)j=1∑np(zi∣xi;θ)=p(xi;θ)
所以有
Q ( z i j ) = p ( x i , z j ; θ ) p ( x i ; θ ) = p ( z j ∣ x i ; θ ) Q(z_{ij})=\frac{p(x_i,z_j;\theta)}{p(x_i;\theta)}=p(z_j|x_i;\theta) Q(zij)=p(xi;θ)p(xi,zj;θ)=p(zj∣xi;θ)
即已知样本i,该样本属于隐变量 z j z_j zj的概率,此时等号成立,即
log ∑ j = 1 n p ( x i , z j ; θ ) = ∑ i = j n [ log ( p ( x i , z j ; θ ) Q ( z i j ) ) ] Q ( z i j ) = ∑ j = 1 n [ log p ( x i , z j ; θ ) p ( z j ∣ x i ; θ ) ] p ( z j ∣ x i ; θ ) \log \sum_{j=1}^n p(x_i,z_j;\theta)=\sum_{i=j}^n[\log(\frac{p(x_i,z_j;\theta)}{Q(z_{ij})})]Q(z_{ij})=\sum_{j=1}^n[\log \frac{p(x_i,z_j;\theta)}{p(z_j|x_i;\theta)}]p(z_j|x_i;\theta) logj=1∑np(xi,zj;θ)=i=j∑n[log(Q(zij)p(xi,zj;θ))]Q(zij)=j=1∑n[logp(zj∣xi;θ)p(xi,zj;θ)]p(zj∣xi;θ)
则有
∑ i = 1 m log ∑ j = 1 n p ( x i , z j ; θ ) = ∑ i = 1 m ∑ j = 1 n [ log p ( x i , z j ; θ ) p ( z j ∣ x i ; θ ) ] p ( z j ∣ x i ; θ ) ( 式 1.2 ) \sum_{i=1}^m\log \sum_{j=1}^n p(x_i,z_j;\theta)=\sum_{i=1}^m\sum_{j=1}^n[\log \frac{p(x_i,z_j;\theta)}{p(z_j|x_i;\theta)}]p(z_j|x_i;\theta)(式1.2) i=1∑mlogj=1∑np(xi,zj;θ)=i=1∑mj=1∑n[logp(zj∣xi;θ)p(xi,zj;θ)]p(zj∣xi;θ)(式1.2)
因此最大化对数似然等价于最大化式1.2的右半部分(以下简称式1.2),为什么要使用Jenson不等式进行变化呢?这是由于对数似然在对数函数内部有一个和式,加上概率密度函数一般非常复杂,例如正态分布,求导的结果将会非常复杂,导致求解最大值异常困难
虽然式1.2看起来更加复杂,但是由于EM算法的存在,求其(局部)最大的过程将较为简洁
EM算法是一个迭代过程,假设我们的概率密度函数的一组未知参数为 θ 1 , θ 2 , . . . , θ n \theta_1,\theta_2,...,\theta_n θ1,θ2,...,θn,记为 θ \theta θ,我们首先随机初始化这组参数,假设有k个样本,隐藏变量为 z 1 , z 2 , . . . . , z m z_1,z_2,....,z_m z1,z2,....,zm,设第t次迭代,求得的参数取值为 θ 1 t , θ 2 t , . . . , θ n t \theta_1^t,\theta_2^t,...,\theta_n^t θ1t,θ2t,...,θnt,记为 θ t \theta^t θt,则第t+1次迭代的参数取值 θ 1 t + 1 , θ 2 t + 1 , . . . . . , θ n t + 1 \theta_1^{t+1},\theta_2^{t+1},.....,\theta_n^{t+1} θ1t+1,θ2t+1,.....,θnt+1(记为 θ t + 1 \theta^{t+1} θt+1)通过下列步骤求得
重复E步与M步,直到参数不再变化为止,相比于直接对对数似然求导,式1.3求导的结果将非常简洁。
总结一下为什么需要使用Jenson不等式对含有隐变量的对数似然进行转换。
因为含有隐变量的对数似然求导非常困难,这导致求解最大化过程非常困难,因此,我们使用Jenson不等式对其进行转换,接着用EM算法进行优化,此时求解过程将变得更加简洁容易
我们只需要证明EM算法的每次迭代求得的 θ \theta θ都会使式1.2增大即可,即
∑ i = 1 n log p ( x i ; θ t + 1 ) = ∑ i = 1 m ∑ j = 1 n [ log p ( x i , z j ; θ t + 1 ) p ( z j ∣ x i ; θ t + 1 ) ] p ( z j ∣ x i ; θ t + 1 ) ≥ ∑ i = 1 m ∑ j = 1 n [ log p ( x i , z j ; θ t ) p ( z j ∣ x i ; θ t ) ] p ( z j ∣ x i ; θ t ) = ∑ i = 1 n log p ( x i ; θ t ) ( 式 1.5 ) \sum_{i=1}^n \log p(x_i;\theta^{t+1})=\sum_{i=1}^m\sum_{j=1}^n[\log \frac{p(x_i,z_j;\theta^{t+1})}{p(z_j|x_i;\theta^{t+1})}]p(z_j|x_i;\theta^{t+1})\geq\sum_{i=1}^m\sum_{j=1}^n[\log \frac{p(x_i,z_j;\theta^t)}{p(z_j|x_i;\theta^t)}]p(z_j|x_i;\theta^t)=\sum_{i=1}^n \log p(x_i;\theta^t)(式1.5) i=1∑nlogp(xi;θt+1)=i=1∑mj=1∑n[logp(zj∣xi;θt+1)p(xi,zj;θt+1)]p(zj∣xi;θt+1)≥i=1∑mj=1∑n[logp(zj∣xi;θt)p(xi,zj;θt)]p(zj∣xi;θt)=i=1∑nlogp(xi;θt)(式1.5)
其中 θ t 、 θ t + 1 \theta^t、\theta^{t+1} θt、θt+1分别表示第t、t+1轮变量 θ \theta θ的取值,等号成立时表示位于(局部)最大
依据条件概率,我们有
p ( x ; θ ) = p ( x , z ; θ ) p ( z ∣ x ; θ ) p(x;\theta)=\frac{p(x,z;\theta)}{p(z|x;\theta)} p(x;θ)=p(z∣x;θ)p(x,z;θ)
取对数可得
log p ( x ; θ ) = log p ( x , z ∣ θ ) − log p ( z ∣ x ; θ ) \log p(x;\theta)=\log p(x,z|\theta)-\log p(z|x;\theta) logp(x;θ)=logp(x,z∣θ)−logp(z∣x;θ)
设
Q ( θ , θ t ) = ∑ i = 1 n ∑ j = 1 m log p ( x i , z i j ; θ ) p ( z i j ∣ x i ; θ t ) H ( θ , θ t ) = ∑ i = 1 n ∑ j = 1 m log p ( z i j ∣ x i ; θ ) p ( z i j ∣ x i ; θ t ) \begin{aligned} Q(\theta,\theta^t)=&\sum_{i=1}^n\sum_{j=1}^m\log p(x_i,z_{ij};\theta)p(z_{ij}|x_i;\theta^t)\\ H(\theta,\theta^t)=&\sum_{i=1}^n\sum_{j=1}^m\log p(z_{ij}|x_i;\theta)p(z_{ij}|x_i;\theta^t) \end{aligned} Q(θ,θt)=H(θ,θt)=i=1∑nj=1∑mlogp(xi,zij;θ)p(zij∣xi;θt)i=1∑nj=1∑mlogp(zij∣xi;θ)p(zij∣xi;θt)
所以有
Q ( θ , θ t ) − H ( θ , θ t ) = ∑ i = 1 n ∑ j = 1 m [ log p ( x i , z i j ; θ ) − log p ( z i j ∣ x i ; θ ) ] p ( z i j ∣ x i ; θ t ) = ∑ i = 1 n ∑ j = 1 m log p ( x i , z i j ; θ ) p ( z i j ∣ x i ; θ ) p ( z i j ∣ x i ; θ t ) = ∑ i = 1 n ∑ j = 1 m log p ( x i ; θ ) p ( z i j ∣ x i ; θ t ) ( 条 件 概 率 的 公 式 ) = ∑ i = 1 n log p ( x i ; θ ) ∑ j = 1 m p ( z i j ∣ x i ; θ t ) = ∑ i = 1 n log p ( x i ; θ ) \begin{aligned} Q(\theta,\theta^t)-H(\theta,\theta^t)&=\sum_{i=1}^n\sum_{j=1}^m[\log p(x_i,z_{ij};\theta)-\log p(z_{ij}|x_i;\theta)]p(z_{ij}|x_i;\theta^t)\\ &=\sum_{i=1}^n\sum_{j=1}^m \log \frac{p(x_i,z_{ij};\theta)}{p(z_{ij}|x_i;\theta)} p(z_{ij}|x_i;\theta^t)\\ &=\sum_{i=1}^n\sum_{j=1}^m \log p(x_i;\theta) p(z_{ij}|x_i;\theta^t)(条件概率的公式)\\ &=\sum_{i=1}^n \log p(x_i;\theta) \sum_{j=1}^m p(z_{ij}|x_i;\theta^t)\\ &=\sum_{i=1}^n \log p(x_i;\theta) \end{aligned} Q(θ,θt)−H(θ,θt)=i=1∑nj=1∑m[logp(xi,zij;θ)−logp(zij∣xi;θ)]p(zij∣xi;θt)=i=1∑nj=1∑mlogp(zij∣xi;θ)p(xi,zij;θ)p(zij∣xi;θt)=i=1∑nj=1∑mlogp(xi;θ)p(zij∣xi;θt)(条件概率的公式)=i=1∑nlogp(xi;θ)j=1∑mp(zij∣xi;θt)=i=1∑nlogp(xi;θ)
即 Q ( θ , θ t ) − H ( θ , θ t ) Q(\theta,\theta^t)-H(\theta,\theta^t) Q(θ,θt)−H(θ,θt)就是对数似然,则有
∑ i = 1 n log p ( x i ; θ t + 1 ) − ∑ i = 1 n log p ( x i ; θ t ) = [ Q ( θ t + 1 , θ t ) − Q ( θ t , θ t ) ] − [ H ( θ t + 1 , θ t ) − H ( θ t , θ t ) ] ( 式 1.6 ) \begin{aligned} \sum_{i=1}^n \log p(x_i;\theta^{t+1})-\sum_{i=1}^n \log p(x_i;\theta^{t})=[Q(\theta^{t+1},\theta^t)-Q(\theta^t,\theta^t)]-[H(\theta^{t+1},\theta^t)-H(\theta^t,\theta^t)](式1.6) \end{aligned} i=1∑nlogp(xi;θt+1)−i=1∑nlogp(xi;θt)=[Q(θt+1,θt)−Q(θt,θt)]−[H(θt+1,θt)−H(θt,θt)](式1.6)
由EM算法的M步,我们有
∑ i = 1 k ∑ j = 1 m p ( z j ∣ x i ; θ t ) l o g p ( x i , z j ; θ t + 1 ) p ( z j ∣ x i ; θ t ) ≥ ∑ i = 1 k ∑ j = 1 m p ( z j ∣ x i ; θ t ) l o g p ( x i , z j ; θ t ) p ( z j ∣ x i ; θ t ) \sum_{i=1}^k\sum_{j=1}^m p(z_j|x_i;\theta^t) log\frac{p(x_i,z_j;\theta^{t+1})}{p(z_j|x_i;\theta^t)}\geq \sum_{i=1}^k\sum_{j=1}^m p(z_j|x_i;\theta^t) log\frac{p(x_i,z_j;\theta^t)}{p(z_j|x_i;\theta^t)} i=1∑kj=1∑mp(zj∣xi;θt)logp(zj∣xi;θt)p(xi,zj;θt+1)≥i=1∑kj=1∑mp(zj∣xi;θt)logp(zj∣xi;θt)p(xi,zj;θt)
两端同时加上 ∑ i = 1 k ∑ j = 1 m p ( z j ∣ x i ; θ t ) log p ( z j ∣ x i ; θ t ) \sum_{i=1}^k\sum_{j=1}^m p(z_j|x_i;\theta^t) \log p(z_j|x_i;\theta^t) ∑i=1k∑j=1mp(zj∣xi;θt)logp(zj∣xi;θt)(懒,所以不写了),则有
Q ( θ t + 1 , θ t ) − Q ( θ t , θ t ) ≥ 0 Q(\theta^{t+1},\theta^t)-Q(\theta^t,\theta^t)\geq 0 Q(θt+1,θt)−Q(θt,θt)≥0
第二项会用到Jenson不等式
H ( θ t + 1 , θ t ) − H ( θ t , θ t ) = ∑ i = 1 n ∑ j = 1 m log p ( z i j ∣ x i ; θ t + 1 ) p ( z i j ∣ x i ; θ t ) p ( z i j ∣ x i ; θ t ) ≤ ∑ i = 1 n log ∑ j = 1 m p ( z i j ∣ x i ; θ t + 1 ) p ( z i j ∣ x i ; θ t ) p ( z i j ∣ x i ; θ t ) = ∑ i = 1 n log ∑ j = 1 m p ( z i j ∣ x i ; θ t + 1 ) = 0 \begin{aligned} H(\theta^{t+1},\theta^t)-H(\theta^t,\theta^t)=&\sum_{i=1}^n\sum_{j=1}^m\log \frac {p(z_{ij}|x_i;\theta^{t+1})}{p(z_{ij}|x_i;\theta^{t})}p(z_{ij}|x_i;\theta^t)\\ \leq &\sum_{i=1}^n \log \sum_{j=1}^m \frac {p(z_{ij}|x_i;\theta^{t+1})}{p(z_{ij}|x_i;\theta^{t})}p(z_{ij}|x_i;\theta^t)\\ =&\sum_{i=1}^n \log \sum_{j=1}^mp(z_{ij}|x_i;\theta^{t+1})=0 \end{aligned} H(θt+1,θt)−H(θt,θt)=≤=i=1∑nj=1∑mlogp(zij∣xi;θt)p(zij∣xi;θt+1)p(zij∣xi;θt)i=1∑nlogj=1∑mp(zij∣xi;θt)p(zij∣xi;θt+1)p(zij∣xi;θt)i=1∑nlogj=1∑mp(zij∣xi;θt+1)=0
其实就是E[f(x)] ≤ \leq ≤ f[E(x)],所以式1.6大于等于0,式1.5得证
至此,EM算法已经全部讲解完毕,HMM算法的推导就有用到EM算法,具体可查看机器学习——隐马尔科夫模型