上篇博文介绍了EM算法用于拟合混合高斯模型,但是当数据个数远小于特征维度时,高斯模型难以使用,因为维度高时需要更多数据来充分拟合模型,以单高斯分布建模为例:
由最大化拟然函数可得:
此时方差矩阵不可逆,所以模型不能工作。可能的解决方法:
1 限制方差矩阵
可以限制矩阵只有主对角线非0,这样实质上是抛弃了特征之间的某些关系,其实没有很好的学习到数据特征。
2 因子分析模型
在上一种方法中,我们限制协方差矩阵必须是对角矩阵,这样也就是强制限定不同特征分量间是独立的,而现实世界中很多情况下它们并不独立,那么无论如何最优化拟然函数都不能捕捉到它们的关系。
第二种模型除了保留主对角线方差,还用更多的参数试图捕捉某些特征间的关系,
基本思想就是设置一个隐变量z,其维度小于特征维度,然后通过联合高斯分布映射到特征维度里,此时通过最优化拟然函数,能够捕捉到一些特征间的关系。
设z是k维向量:
X是n维的,Λ是n*k的矩阵, Ψ 是n*n的矩阵并且是对角矩阵
直观理解x地分布:以z为基准,经过线性变换Λ出现"倾斜",在通过μ实现中心的平移,通过平移,倾斜,并添加随机干扰Ψ,能够更好的拟合数据特征,而平移,倾斜的过程是通过逐步最大化拟然函数L实现的。
那么