网易公开课,第13,14课
notes,9

本质上因子分析是一种降维算法
参考,http://www.douban.com/note/225942377/,浅谈主成分分析和因子分析

把大量的原始变量,浓缩成少数几个因子变量
原始变量,代表浅层的表面现象,所以一定是很多和繁杂的
而因子变量,是代表深层的本质,因,是无法直接观察到的

所以因子分析,就是拨开现象发现本质的过程。。。很牛逼的感觉

举个例子,观察一个学生,你可以统计到很多原始变量,

代数,几何,语文,英语各科的成绩,每天作业时间,每天笔记的量。。。

这些都是现象,那么他们的本质是什么,
逻辑因子,记忆因子,计算因子,表达因子

这些都是些更本质的东西,但是你直接观察不到, 所以我们要做的是,根据表示现象的原始变量,分析出潜在的因子变量,以达到降维

既然要找出latent变量,自然想到要用到EM算法

 

先看看,这个问题是怎么引出的?

对于前面看到的算法,一般都是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

好,是奇异矩阵,对于EM算法的问题是什么?

在计算混合高斯分布的密度是,需要算,
行列式为0,会导致无穷大,所以没有解

 

Restrictions of

那么怎么解决上面的问题?很显然我们是无法拟合出一个完整的的,所以对它做些限制
我们假设是个对角矩阵,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的分布,原理说不清,所以也是只是列出结果

通过一系列计算过程,可以参考讲义,得到,

通过上面边缘分布的定义,我们知道,

x的分布为,

所以得到优化目标函数为,

但是这个目标函数是无法直接解的

 

EM for factor analysis

所以还是要使用EM,

E-Step,

其中,

根据上面关于条件分布的定义,

于是,

 

M-Step,

优化目标函数,其中z是满足高斯分布的连续变量,故用积分

然后的过程就是对各个参数求偏导,求值。

求解过程,具体参考讲义吧,看着虐心。。。呵呵

Andrew Ng机器学习公开课笔记 – Factor Analysis的更多相关文章

  1. Andrew Ng机器学习公开课笔记–Principal Components Analysis (PCA)

    网易公开课,第14, 15课 notes,10 之前谈到的factor analysis,用EM算法找到潜在的因子变量,以达到降维的目的 这里介绍的是另外一种降维的方法,Principal Compo ...

  2. Andrew Ng机器学习公开课笔记–Independent Components Analysis

    网易公开课,第15课 notes,11 参考, PCA本质是旋转找到新的基(basis),即坐标轴,并且新的基的维数大大降低 ICA也是找到新的基,但是目的是完全不一样的,而且ICA是不会降维的 对于 ...

  3. Andrew Ng机器学习公开课笔记 -- 支持向量机

    网易公开课,第6,7,8课 notes,http://cs229.stanford.edu/notes/cs229-notes3.pdf SVM-支持向量机算法概述, 这篇讲的挺好,可以参考   先继 ...

  4. Andrew Ng机器学习公开课笔记 -- Regularization and Model Selection

    网易公开课,第10,11课 notes,http://cs229.stanford.edu/notes/cs229-notes5.pdf   Model Selection 首先需要解决的问题是,模型 ...

  5. Andrew Ng机器学习公开课笔记–Reinforcement Learning and Control

    网易公开课,第16课 notes,12 前面的supervised learning,对于一个指定的x可以明确告诉你,正确的y是什么 但某些sequential decision making问题,比 ...

  6. Andrew Ng机器学习公开课笔记 -- 学习理论

    网易公开课,第9,10课 notes,http://cs229.stanford.edu/notes/cs229-notes4.pdf 这章要讨论的问题是,如何去评价和选择学习算法   Bias/va ...

  7. Andrew Ng机器学习公开课笔记 -- Mixtures of Gaussians and the EM algorithm

    网易公开课,第12,13课 notes,7a, 7b,8 从这章开始,介绍无监督的算法 对于无监督,当然首先想到k means, 最典型也最简单,有需要直接看7a的讲义   Mixtures of G ...

  8. Andrew Ng机器学习公开课笔记 -- Generative Learning algorithms

    网易公开课,第5课 notes,http://cs229.stanford.edu/notes/cs229-notes2.pdf 学习算法有两种,一种是前面一直看到的,直接对p(y|x; θ)进行建模 ...

  9. Andrew Ng机器学习公开课笔记 -- Online Learning

    网易公开课,第11课 notes,http://cs229.stanford.edu/notes/cs229-notes6.pdf   和之前看到的batch learning算法不一样,batch ...

随机推荐

  1. Android API中常用的包(转)

    在Android应用开发中,我们一般都是用java语言.所以Android很好的继承了java的功能,不过为了满足手机系统的需要和实现一些新的功能,Android还提供了一些特有的扩展的java功能. ...

  2. linux shutdown关闭系统命令使用介绍(转)

    shutdown命令是最常用的关闭系统命令,不仅可以用于立即关闭系统,还可以在指定时间关闭系统   linux关闭系统命令之shutdown 关闭.重启系统 Linux是一个多用户.多任务系统,如果不 ...

  3. 基于C#语言利用Microsoft.office.introp.excel操作Excel总结

    终于解决了质量评估测试软件在任意装有excel(2010以下版本)的电脑上正常使用的问题!!!!!!!!!! 可到http://www.microsoft.com/en-sa/download/con ...

  4. Linux常用命令_(基本命令)

    基本命令:ls.cd.pwd.man 1.ls 打印当前目录下的文件和目录文件 用法详解:: ls [-alFR] [文件或目录] -a 显示所有文件,包括隐藏文件:[root@qmfsun]#ls ...

  5. 一个DIV三列布局100%高度自适应的好例子(国外)

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W ...

  6. http://jingyan.baidu.com/article/fcb5aff78e6a48edab4a7146.html

    http://jingyan.baidu.com/article/fcb5aff78e6a48edab4a7146.html

  7. POJ3659 Cell Phone Network(树上最小支配集:树型DP)

    题目求一棵树的最小支配数. 支配集,即把图的点分成两个集合,所有非支配集内的点都和支配集内的某一点相邻. 听说即使是二分图,最小支配集的求解也是还没多项式算法的.而树上求最小支配集树型DP就OK了. ...

  8. HDU2204 Eddy's爱好(容斥原理)

    题目问[1,n]有几个数是$m^k (k>1)$形式. 如果这样考虑,m已知k未知,对于每一个m统计其k的数量即$\lfloor log_mn \rfloor$个,再容斥,然而m太多了,完全不可 ...

  9. POJ1845 Sumdiv(求所有因数和+矩阵快速幂)

    题目问$A^B$的所有因数和. 根据唯一分解定理将A进行因式分解可得:A = p1^a1 * p2^a2 * p3^a3 * pn^an.A^B=p1^(a1*B)*p2^(a2*B)*...*pn^ ...

  10. MONO 使用重要提示

    重要提示:如果要使用mvc这样的框架(网址没有扩展名或扩展名没有正常规律),请一定用Jexus,而不要用apache/nginx等. ASP.NET跨平台初学者要注意: 1.不要开始就用freeBSD ...