1 问题
之前我们考虑的训练数据中样例的个数m都远远大于其特征个数n,这样不管是进行回归、聚类等都没有太大的问题。然而当训练样例个数m太小,甚至m<<n的时候,使用梯度下降法进行回归时,如果初值不同,得到的参数结果会有很大偏差(因为方程数小于参数个数)。另外,如果使用多元高斯分布(Multivariate Gaussian distribution)对数据进行拟合时,也会有问题。让我们来演算一下,看看会有什么问题:
多元高斯分布的参数估计公式如下:
分别是求mean和协方差的公式,表示样例,共有m个,每个样例n个特征,因此是n维向量,是n*n协方差矩阵。
当m<<n时,我们会发现是奇异阵(),也就是说不存在,没办法拟合出多元高斯分布了,确切的说是我们估计不出来。
如果我们仍然想用多元高斯分布来估计样本,那怎么办呢?
2 限制协方差矩阵
当没有足够的数据去估计时,那么只能对模型参数进行一定假设,之前我们想估计出完全的(矩阵中的全部元素),现在我们假设就是对角阵(各特征间相互独立),那么我们只需要计算每个特征的方差即可,最后的只有对角线上的元素不为0
回想我们之前讨论过的二维多元高斯分布的几何特性,在平面上的投影是个椭圆,中心点由决定,椭圆的形状由决定。如果变成对角阵,就意味着椭圆的两个轴都和坐标轴平行了。
如果我们想对进一步限制的话,可以假设对角线上的元素都是等值的。
其中
也就是上一步对角线上元素的均值,反映到二维高斯分布图上就是椭圆变成圆。
当我们要估计出完整的时,我们需要m>=n+1才能保证在最大似然估计下得出的是非奇异的。然而在上面的任何一种假设限定条件下,只要m>=2都可以估计出限定的。
这样做的缺点也是显然易见的,我们认为特征间独立,这个假设太强。接下来,我们给出一种称为因子分析的方法,使用更多的参数来分析特征间的关系,并且不需要计算一个完整的。
3 边缘和条件高斯分布
在讨论因子分析之前,先看看多元高斯分布中,条件和边缘高斯分布的求法。这个在后面因子分析的EM推导中有用。
假设x是有两个随机向量组成(可以看作是将之前的分成了两部分)
那么只知道联合分布的情况下,如何求得的边缘分布呢?从上面的和可以看出,
由此可见,多元高斯分布的边缘分布仍然是多元高斯分布。也就是说。
上面Cov(x)里面有趣的是,这个与之前计算协方差的效果不同。之前的协方差矩阵都是针对一个随机变量(多维向量)来说的,而评价的是两个随机向量之间的关系。比如={身高,体重},={性别,收入},那么求的是身高与身高,身高与体重,体重与体重的协方差。而求的是身高与性别,身高与收入,体重与性别,体重与收入的协方差,看起来与之前的大不一样,比较诡异的求法。
上面求的是边缘分布,让我们考虑一下条件分布的问题,也就是的问题。根据多元高斯分布的定义,。
且
这是我们接下来计算时需要的公式,这两个公式直接给出,没有推导过程。如果想了解具体的推导过程,可以参见Chuong B. Do写的《Gaussian processes》。
4 因子分析例子
下面通过一个简单例子,来引出因子分析背后的思想。
1、 首先在一个k维的空间中按照多元高斯分布生成m个(k维向量),即
4、 由于真实样例与上述模型生成的有误差,因此我们继续加上误差(n维向量),
让我们使用一种直观方法来解释上述过程:
那么按照因子分析的理解,样本点的生成过程如下:
1、 我们首先认为在1维空间(这里k=1),存在着按正态分布生成的m个点,如下
均值为0,方差为1。
3、 之后加上,即将所有点的横坐标移动,纵坐标移动,将直线移到一个位置,使得直线过点,原始左边轴的原点现在为(红色点)。
然而,样本点不可能这么规则,在模型上会有一定偏差,因此我们需要将上步生成的点做一些扰动(误差),扰动。
5、 其中由于z和的均值都为0,因此也是原始样本点(黑色点)的均值。
由以上的直观分析,我们知道了因子分析其实就是认为高维样本点实际上是由低维样本点经过高斯分布、线性变换、误差扰动生成的,因此高维数据可以使用低维来表示。