课程视频地址:http://open.163.com/special/opencourse/machinelearning.html

课程主页:http://cs229.stanford.edu/

更具体的资料链接:https://www.jianshu.com/p/0a6ef31ff77a

笔记参考自中文翻译版:https://github.com/Kivy-CN/Stanford-CS-229-CN

这一讲介绍EM算法和因子分析,回顾了高斯混合模型。

回顾EM算法

  • 重复直到收敛

    • (E步骤)对每个$i$,令

    • (M步骤)令

​ 我们怎么知道这个算法是否收敛呢?假设$\theta^{(t)}​$和$\theta^{(t+1)}​$是两次成功迭代得到的参数。我们将证明$l(\theta^{(t)})\le l(\theta^{(t+1)})​$,这说明EM算法总是让对数似然函数单调递增。证明这点的关键在于我们对$Q_i​$的选择。特别地,当EM算法的参数为$\theta^{(t)}​$时,我们将选择$Q_i^{(t)}(z^{(i)}) := p(z^{(i)}|x^{(i)};\theta^{(t)})​$。我们之前看到这个选择保证了Jenson不等式的等号成立,因此

参数$l(\theta^{(t+1)})$是由最大化该等式的右边得到的,因此

第一个不等号成立是因为如下不等式对任意$Q_i$和$\theta$都成立

特别地,上式对$Q_i=Q_i^{(t)},\theta = \theta^{(t+1)}$成立。第二个不等号成立是因为我们选择$\theta^{(t+1)}$为

因此这个式子在$\theta^{(t+1)}$的取值必然大于等于在$\theta^{(t)}$的取值。最后一个等号成立是在选择$Q_i^{(t)}$时我们就是要保证不等号取等号。

​ 因此,EM算法导致对数似然函数单调收敛。在我们对EM算法的描述中,我们说我们将运行直至收敛。根据我们刚刚展示的结果,一个合理的收敛测试为检测在成功迭代一轮后,$l(\theta)​$的增量是否小于阈值,如果EM算法增加$l(\theta)​$的速度很慢,那么就宣称算法收敛。

注记

如果我们定义

那么从之前的推导中,我们知道$l(\theta)\ge J(Q,\theta)$。EM算法也可以视为$J$的坐标上升过程,其中E步骤关于Q最大化$J$(因为E步骤选择$Q$使得$l(\theta)= J(Q,\theta)$),$M$步骤关于$\theta$最大化$J$

3.回顾高斯混合模型

有了对EM算法的一般定义,让我们回顾拟合高斯混合模型参数$\phi,\mu,\Sigma$的例子。

​ E步骤很简单,按照之前推导的算法,我们可以简单计算得到

这里,$ Q_i(z^{(i)}=j)$表示在$Q_i$分布下,$z^{(i)}$取$j$的概率。

​ 接着,在M步骤中,我们需要关于参数$\phi,\mu,\Sigma$最大化下式

让我们关于$\mu_l$最大化上式。关于$\mu_l$求梯度可得

令上式为$0$,解出$\mu_l$可以得到更新规则

这部分我们在之前的讲义中已经见过。

​ 让我们再看一个例子,推导出M步骤更新$\phi_j$的规则。将关于参数$\phi_j$的部分整合起来,我们需要最大化

但是,这里有一个额外的限制:$\phi_j$的和为$1$,因为它表示概率$\phi_j=p(z^{(i)}=j;\phi)$。为了处理$\sum_{j=1}^k \phi_j =1$,我们构造拉格朗日函数(注意,这里实际上还有限制$\phi_j \ge0$,但随后我们会发现解满足这个条件)

其中$\beta$是拉格朗日乘子。求导可得

令导数为$0$解得

即$\phi_j \propto \sum_{i=1}^m w_j^{(i)}$。利用约束条件$\sum_{j=1}^k \phi_j =1$,我们可以轻松发现

(这里利用到$w_j^{(i)}=Q_i(z^{(i)}=j)​$,然后概率的和为$1​$,$ \sum_{j=1}^k w_j^{(i)}=1​$)。因此我们得到M步骤更新$\phi_j​$的规则

​ 最后补充$\Sigma_j$的更新规则,将关于参数$\Sigma_j$的部分整合起来

注意到如果求出$\Sigma_j^{-1}$的更新规则,那么就可以得到$\Sigma_j$的更新规则,所以关于$\Sigma_j^{-1}$求梯度可得

令导数为$0$可得

这里用到了如下规则:

Part X 因子分析

当我们的数据$x^{(i)}\in \mathbb R^n$来自几个高斯混合模型时,EM算法可以用来拟合混合模型。在这种情形下,我们常常假设有足够多的数据来发现数据中的多元高斯分布结构。这种情形常常发生在训练集样本的数量$m$远远大于数据维度$n$。

​ 现在,考虑$n\gg m$的情形。在这样一个问题中,用一个高斯分布来给数据建模甚至都很困难,更别提高斯混合模型了。特别地,$m$个数据点只张成了$\mathbb R^n$的一个低维子空间,如果我们将用高斯分布给数据建模,然后利用极大似估计来估计均值和协方差,可以得到

​ 我们会发现矩阵$\Sigma$奇异(不可逆)。这意味着$\Sigma^{-1}$不存在,并且$1/ |\Sigma|^{1/2}= 1/ 0$。但是这两项在计算多元高斯分布时都需要用到。另一种陈述问题的困难性的方法如下,对参数的极大似然估计产生的高斯分布,其概率分布分布在数据张成的仿射空间中,这对应着一个奇异的协方差矩阵。

​ 更一般的,除非$m$超过$n$一定数量,否则均值和协方差的极大似然估计可能很差。然而,我们仍然能用一个合理的高斯模型对数据进行拟合,并且也许能够识别出数据中有趣的协方差结构。我们是如何做到的?

​ 在后面一部分中,我们会从复习两个对于$\Sigma$可能的限制开始,这些限制允许我们用少量的数据来拟合$\Sigma$,但是他们都无法对问题给出满意的解答。接着我们将讨论高斯分布的性质;例如高斯分布的边际分布以及条件分布。最后,我们将展示因子分析模型以及EM算法对其参数的估计。

1.$\Sigma$的限制

如果我们没有充足的数据来拟合完整的协方差矩阵,我们可以对我们考虑的矩阵空间$\Sigma$添加一些约束。例如,我们可以选择拟合一个对角协方差矩阵$\Sigma$。在这种情形下,可以很简单核实协方差矩阵的对角元的最大似然估计满足

因为,$\Sigma_{jj}$就是对数据第$j$个分量方差的经验估计。

​ 有时我们会对协方差矩阵添加更多约束,不仅认为它是对角阵,还认为对角元相同,此时最大似然估计为

​ 如果我们对数据拟合一个完整,没有限制的协方差矩阵,为了$\Sigma$的最大似然估计非奇异,必须有$m\ge n+1$。在之前两种约束条件下,当$m\ge 2$时我们就能获得非奇异的$\Sigma$。

​ 但是,将$\Sigma$限制为对角阵意味着对数据的不同分量$x_i,x_j$的建模都是不相关和独立的。通常,获得数据中有趣的相关结构会比较好。如果我们用之前两种限制中任何一种,我们将无法做到这点。在这部分讲义中,我们将介绍因子分析模型,和对角阵相比,它使用更多参数,也捕捉到数据中的相关性,但是又不必拟合完整的协方差矩阵。

2.高斯分布的边际分布和条件分布

在开始描述因子分子之前,我们将讨论多元高斯分布的边际分布和条件分布。

​ 假设我们有一个向量值随机变量

其中$x_1\in \mathbb R^r, x_2 \in \mathbb R^s$,因此$x\in \mathbb R^{r+s}$。假设$x\sim \mathcal N(\mu, \Sigma)$,其中

其中,$\mu_1\in \mathbb R^r$,$\mu_2\in \mathbb R^s$,$\Sigma_{11}=\mathbb R^{r\times r}$,$\Sigma_{12}\in \mathbb R^{r\times s}$,以此类推。注意到因为协方差矩阵对称,所以$\Sigma_{12}=\Sigma_{21}^T$。

​ 在我们的假设下,$x_1$和$x_2$的联合分布为多元高斯分布。那么$x_1$的边际分布是什么?此外,给定$x_2$,$x_1$的条件分布是什么?实际上,有如下结论:

下面证明上述结论。

那么

从而

其中

因此可以看出$y_1, y_2$独立,且

由对称性类似可得

备注:这里求$x_2$的边际分布而不是$x_1$的边际分布是为了方便求出条件分布。

接下来考虑$ x_1 |x_2$的分布,

这里要利用到$B$为正交矩阵,且

首先计算分子

接着计算分母,之前已经计算过了

因此

注意到

从而

3.因子分析模型

在因子分析模型中,我们按如下方式在$(x,z)$上建立联合分布,其中$z\in \mathbb R^k$是一个隐变量:

​ 这里,模型的参数是向量$\mu\in \mathbb R^n$,矩阵$\Lambda \in \mathbb R^{n\times k}$,以及对角阵$\Psi \in \mathbb R^{n\times n}$。$k$的值通常选择为比$n$小。

​ 因此,我们想象每个数据点$x^{(i)}$是如下生成的:首先对$k$维高斯分布$z^{(i)}$取样。然后,通过计算$\mu+\Lambda z^{(i)}$将$z^{(i)}$映射到$\mathbb R^n$的$k$维的仿射子空间。最后,$x^{(i)}$通过对$\mu+\Lambda z^{(i)}$添加协方差噪音$\Psi$生成。

​ 或者等价地,我们可以按如下方式定义因子分析模型

其中$\epsilon ,z​$独立。

​ 让我们看看该模型的准确分布。随机变量$z$和$x$有一个联合高斯分布

我们现在将计算出$\mu_{zx}$和$\Sigma$

​ 由$z \sim \mathcal N(0,I)$我们知道$\mathbb E[z]=0$。所以,我们有

将上述结果合并,我们有

接下来,为了得到$\Sigma$,我们需要计算$\Sigma_{zz}=\mathbb E[(z-\mathbb E[z])(z-\mathbb E[z])^T]$($\Sigma$的左上分块),$\Sigma_{zx}=\mathbb E[(z-\mathbb E[z])(x-\mathbb E[x])^T]$($\Sigma$的右上分块),以及$\Sigma_{xx}=\mathbb E[(x-\mathbb E[x])(x-\mathbb E[x])^T]$($\Sigma$的右下分块)。

​ 因为$z \sim \mathcal N(0,I)$,我们可以轻松得到$\Sigma_{zz}=\text{Cov}(z)=I$。并且,我们有

最后一步中,我们利用到$\mathbb E[zz^T]=\text{Cov}(z)$的事实(因为$z$的均值为$0$),以及$ \mathbb E[z\epsilon^T]= \mathbb E[z]\mathbb E[\epsilon^T]=0$(因为$z$和$\epsilon$独立,所以乘积的期望等于期望的乘积)。类似的,我们可以按如下方式计算出$\Sigma_{xx}$

将所有内容整合起来,我们得到

​ 我们还能发现$x$的边际分布为$x\sim \mathcal N(\mu,\Lambda\Lambda^T+\Psi)$。因此,给定训练集$\{x^{(i)};i=1,…,m\}$,参数的对数似然函数如下:

为了进行最大似然估计,我们想关于参数最大化上式。但是精确地对上式最大化很困难,并且我们知道没有算法能以解析形式求出参数。所以,取而代之,我们将使用EM算法。在下一部分,我们将推导因子分析的EM算法。