网易公开课,第13,14课
notes,9html
本质上因子分析是一种降维算法
参考,http://www.douban.com/note/225942377/,浅谈主成分分析和因子分析算法
把大量的原始变量,浓缩成少数几个因子变量
原始变量,表明浅层的表面现象,因此必定是不少和繁杂的
而因子变量,是表明深层的本质,因,是没法直接观察到的函数
因此因子分析,就是拨开现象发现本质的过程。。。很牛逼的感受优化
举个例子,观察一个学生,你能够统计到不少原始变量,url
代数,几何,语文,英语各科的成绩,天天做业时间,天天笔记的量。。。3d
这些都是现象,那么他们的本质是什么,
逻辑因子,记忆因子,计算因子,表达因子orm
这些都是些更本质的东西,可是你直接观察不到, 因此咱们要作的是,根据表示现象的原始变量,分析出潜在的因子变量,以达到降维htm
既然要找出latent变量,天然想到要用到EM算法blog
先看看,这个问题是怎么引出的?get
对于前面看到的算法,通常都是m>>n,即训练集远远大于向量维数的
若是m和n近似,或小于n的状况下,会有什么问题?
其实简单点想,
AX = B
其中A是参数向量,而X为变量向量,若是X的维是n
若是要求出A,其实就是在解一个方程组,变量为n个,那么至少要n个方程,若是训练集大小m,即方程数小于n,那必定是没有解的,或无限解
看看formal的形式,对于混合高斯EM算法的M-step,
其中算均值是没有问题的,
但在协方差矩阵时,获得的是奇异矩阵, 即
不存在
关于奇异矩阵,能够参考,可汗学院公开课:线性代数_奇异矩阵_网易公开课
简单点理解,就想我上面说的,若是用这个矩阵当成方程组去求解,是无解的,即方程数不够
专业点说,就是不满秩,矩阵秩(rank)的意思,线性无关的纵列的极大数目
其实就是方程是有效的,没法被剩余的方程线性组合获得的,好比
x+y = 0
2x+2y = 0 ,3x+3y=0……
能够一直写下去,但这样造成的rank仍然为1,由于没法获得解,后面的方程都是无效的
为什么 不存在,由于在计算逆的时候,须要计算1/|x|,其中|x|表示矩阵的行列式,对于奇异矩阵行列式是为0的,因此无穷大
为什么奇异矩阵行列式为0?
我只能用一个2×2矩阵来举例,
a,b
c,d
行列式等于, a×d - b×c,若是是奇异矩阵,这个必定为0
在计算混合高斯分布的密度是,须要算,
行列式为0,会致使无穷大,因此没有解
那么怎么解决上面的问题?很显然咱们是没法拟合出一个完整的的,因此对它作些限制
咱们假设是个对角矩阵,diagonal
简单想一想对角矩阵是什么,只有对角线上的值不为0,其余值都为0
意味着,各个特征间是互相对立的,没有关系的,由于协方差为0即表示没有关系,因此如今只须要算出,每一个特征的方差便可
这样对m就没有要求,有样本就能够算出方差
还能够进一步假设,在对角线上的值都是相等的,便是方差的平均值
Marginals and conditionals of Gaussians
先看看混合高斯分布中,如何求出边界和条件高斯分布
没太搞明白,直接列出结果
对于以下的联合分布,
则其中x1的边缘分布,也是符合高斯分布,p(x1) = p(x1,x2)对x1求积分
而条件分布,p(x1|x2) = p(x1,x2)/p(x2)
其中,
The Factor analysis model
其中x是n维的原始变量,而z是k维的因子变量
,而
,因此
就是n维向量,这个就是一个转换,将k维的z转换为维的x
因此能够理解为,全部的高维的原始变量都是能够用低维的因子变量经过线性变换获得的
因此咱们能够用因子变量来做为后续算法的输入,达到降维的目的
好比上面学生的例子,咱们能够用下面3维的因子变量来替代上面的高维的原始变量
x:(代数 80,几何 90,语文 60,英语 70 。。。)
z:(逻辑因子 80,记忆因子70,表达因子 60)
咱们再看下,因子分析(Factor Analysis)中给的图示,就更清楚一些
好比对于高维数据集,这里假设是2维,
如何用低维的,即一维的,因子变量转换获得,
最后,加上偏差扰动,即点不可能恰好在这个线上,须要加上符合高斯分布的偏差
就获得最开始的原始数据集
说了半天,咱们下步要干什么?再看下这个式子,
咱们的目的是,用z替换x, 那么只要知道参数 ,咱们就能够用z表示x, 即达到目的
那么咱们的目标就是优化参数,使得x达到最大似然估计,即咱们这样转换出的x和真实的x是匹配的
但上面只给出z的分布,怎么求x的分布?
这里就用x,z的联合分布,经过边缘分布来求x的分布,原理说不清,因此也是只是列出结果
经过一系列计算过程,能够参考讲义,获得,
经过上面边缘分布的定义,咱们知道,
因此获得优化目标函数为,
可是这个目标函数是没法直接解的
EM for factor analysis
因此仍是要使用EM,
E-Step,
根据上面关于条件分布的定义,
因而,
M-Step,
优化目标函数,其中z是知足高斯分布的连续变量,故用积分
而后的过程就是对各个参数求偏导,求值。
求解过程,具体参考讲义吧,看着虐心。。。呵呵