为什么要EM
EM是极大似然估计的强化版,用于估计当模型中包含不可观测节点(即隐变量)时的似然函数,准确地说是估计似然函数的下界。
举例说明EM的必要性:
假设一个由 K 个正态分布组成的高斯混合模型(GMM),N 个样本,都不知道属于哪个正态分布,令变量 z 代表所属的正态分布,即 z 是隐变量。
则似然函数为 ∏i=1Np(xi),一般转为对数似然,即 L=∑i=1Nlogp(xi),由于隐变量 z 无法被观测,因此不能将 p(x) 写成某个正态分布形式,只能展开为 L=∑i=1Nlog∑k=1Kπzkp(xi∣zk),在极大似然估计中,令似然函数对各参数求导等于零,联立方程组,解得各参数。假设我们对 p(xi∣z1) 即第一个正态分布中的均值 μ1 求导并令导数等于零:
∂μ1∂L=i=1∑N∑k=1Kπzkp(xi∣zk)πz1∂μ1∂p(xi∣z1)=0
类似求出其他参数对应的方程,求解这个方程组。
再来看如果用EM,则需要最大化的函数为 ELBO=∑i=1N∑k=1Kq(zk)logp(xi∣zk),同样对 μ1 求导并令导数等于零:
∂μ1∂ELBO=i=1∑Np(xi∣zk)q(zk)∂μ1∂p(xi∣z1)=0
在 (1) 中每个方程都包含所有正态分布的参数(在分母上,注意这里分母是无法通过右边的零去掉的),而 (2) 中只包含自己这个正态分布的参数,求解难度差距可想而知。
并且这个方程组是存在许多约束的,例如 ∑zπz=1,协方差矩阵半正定等等。在多数情况下,(1) 完全无法求解。
什么是EM
在上一节中已经给出了EM中需要最大化的函数 ELBO=∑i=1N∑k=1Kq(zk)logp(xi∣zk),这一节将进行推导。
在上一节已经说过,EM与极大似然估计一样,希望最大化对数似然 L=∑i=1Nlogp(xi),由于不可观测的隐变量导致无法写成单一的分布,故只能展开为 L=∑i=1Nlog∑k=1Kp(xi,zk)。注意这里进一步没有展开成 ∑i=1Nlog∑k=1Kπzkp(xi∣zk),是因为我们要引入一个变分分布 q(zk) 以使Jensen不等式能够取到等号。引入 q(zk),则可以转化为
L=i=1∑Nlogk=1∑Kq(zk)q(zk)p(xi,zk)
上一节说过,log∑ 这个形式导致方程组难解,所以有人提出通过Jensen不等式能将其转化成 ∑log。
Jensen不等式:
如果 X 是随机变量,g 是凸函数,则
g(E[X])≤E[g(X)]
等号当且仅当 X 是一个常数或 g 是线性时成立。
在我们这里有 g=log,X=q(zk)p(xi,zk),由于 log 是凹函数,所以由Jensen不等式可知
logk=1∑Kq(zk)q(zk)p(xi,zk)≥k=1∑Kq(zk)logq(zk)p(xi,zk)
等号当且仅当 q(zk)p(xi,zk) 是一个常数时成立。
则
L=i=1∑Nlogp(xi)=i=1∑Nlogk=1∑Kq(zk)q(zk)p(xi,zk)≥i=1∑Nk=1∑Kq(zk)logq(zk)p(xi,zk)≜ELBO(q,x)
最后一行我们定义 ∑i=1N∑k=1Kq(zk)logq(zk)p(xi,zk) 为证据下界(Evidence Lower BOund,ELBO),即对数似然函数 L(证据)的下界。
接下来就是正式讲解EM算法了。
EM算法分为E步和M步:
- 在E步中确定我们引入的变分分布 q(zk) 以使上面的等号成立,即找到使 ELBO=L 的 q(zk);
- 在M步中寻找参数 Θ 以最大化 ELBO,这里的 Θ 是模型的参数,例如GMM中所有正态分布的均值和方差。
所以EM实际上是通过优化 ELBO 来间接优化对数似然,而 ELBO 是 logq(zk)p(xi,zk) 的期望(Expectation),所以得名EM(Expectation Maximum)算法。
E-step
在E步中确定我们引入的变分分布 q(zk) 以使上面的等号成立,即找到使 ELBO=L 的 q(zk);
上面说过 (3) 式中等号当且仅当 q(zk)p(xi,zk) 是一个常数时成立。则我们设这个常数为 c,即 q(zk)p(xi,zk)=c,进行以下变换:
⟹⟹⟹q(zk)p(xi,zk)=ccp(xi,zk)=q(zk)k=1∑Kcp(xi,zk)=k=1∑Kq(zk)=1c=k=1∑Kp(xi,zk)
则
q(zk)=cp(xi,zk)=∑k′=1Kp(xi,zk′)p(xi,zk)=p(xi)p(xi,zk)=p(zk∣xi)
换句话说,我们找到的那个 q(zk) 就是 zk 的后验分布 p(zk∣xi),而这个后验分布可以通过贝叶斯公式算出来。(插一句,用贝叶斯公式算的时候里面会用到 zk 的先验分布 πzk,要把它和我们引入的变分分布 q(zk) 区分开。)在GMM中算后验分布可以用贝叶斯公式比较简单,但其他情况下也可能会比较复杂,例如涉及到变分推断等,不在本文讨论范围内。
M-step
在M步中寻找参数 Θ 以最大化 ELBO,这里的 Θ 是模型的参数,例如GMM中所有正态分布的均值和方差。
这一步与不包含隐变量的极大似然估计的区别在于:极大似然估计中最大化对数似然,而EM中最大化的是对数似然的下界 ELBO。将 ELBO 对 Θ 中每个参数求导,令导数为零,联立方程组求解出参数。(插一句,尽管经过E步后已经有 ELBO(q,x)=L(x),但由于Jensen不等式的存在,所以在新的参数Θ^下 ELBO 与对数似然 L 不一定仍然相等,所以直接优化对数似然与优化 ELBO 还是不同的,这也是EM算法必须要迭代的原因。)
M步是一个约束优化问题,其中的约束如在第一节最后提到的 ∑zπz=1 以及协方差矩阵半正定等等,需要用到拉格朗日乘数法等,这里不再展开。
当然,如果觉得求解方程组太繁琐,也可以用梯度上升来优化 ELBO,但如果能直接求出解析解,为什么还要在EM已经有迭代的情况下再套一层梯度上升迭代呢?况且用梯度上升为什么不直接用神经网络呢?
EM的收敛性
参考 邱锡鹏,神经网络与深度学习,机械工业出版社,https://nndl.github.io/, 2020.
假设在第 t 次迭代时模型参数为 Θt,在E步时找到了分布 qt(zk) 使得 p(x;Θt)=ELBO(q,x;Θt). 在M步时固定 qt(zk),找到一组参数 Θt+1 使得 ELBO(q,x;Θt+1)≥ELBO(q,x;Θt). 因此有
logp(x;Θt+1)≥ELBO(qt,x;Θt+1)≥ELBO(qt,x;Θt)=logp(x;Θt)
即经过每一次迭代,对数似然增加,即 logp(x;Θt+1)≥logp(x;Θt).