主成分分析与隐变量模型

来源:互联网 发布:js indexof函数 编辑:程序博客网 时间:2024/06/05 21:51

用于聚类的无监督方法——将数据对象分割成有限数目的不相关组,使得同组中的数据对象具有某些相似性。现在引入第二类无监督方法,这种方法通常被归类于投影技术
用于处理高维的数据集,以及如何通过将数据集投影到低维空间对数据进行可视化或者特征选择。这些技术用于处理更大规模的隐变量模型



参数的数量随着维度M的增加而增加,我们将M维数据投影到D维的同时,希望在某种程度上保留感兴趣的属性



方差——感兴结构的代表
对数据进行投影操作时,我们希望尽可能保留数据中感兴趣的结构
数据在每个一维空间的方差可以通过下式计算:
σ2=1NNn=1(xnμx)2
如果想要表达数据的聚类结构,在使方差最大的方向上对数据进行投影更能保留这一结构特征
基于这个原因,当考虑投影方向时,方差是一个很好的最大化度量标准。因此在大多流行的投影技术中,如主成分分析,使用方差作为最大化度量的标准。



主成分分析

这里写图片描述
主成分分析(PCA)可能是目前应用最为广泛的一种统计技术,用于将高维数据投影到低维空间。在机器学习中,该技术大多应用于数据可视化特征选择。PCA定义了一组线性投影:每个投影维度都是原始数据维度的一个线性组合



为了简化模型,我们构造 y¯=1NNn=1yn=0

从投影D=1维开始。
xn=wTyn
σ2x=1NNn=1(xnx¯)2

得到:
σ2x=wTCw
C是样本协方差矩阵,定义为
C=1NNn=1(yny¯)(yny¯)T



结合条件 wTw=1,利用拉格朗日方法
最大化:L=wTCwλ(wTw1)
求偏导,得到
Cw=λw
联想到特征向量与特征值,(matlab中的eigs函数可直接求解)



归纳算法
1)让每一个元素减去 y¯,使得M维数据的均值等于0,其中y¯=1NNn=1yn
2)计算样本的协方差矩阵C=1NNn=1ynyTnC=1NYTY
3)求解得到M个特征向量/特征值对。求解(如matlab的eigs函数)
4)Dw1,...,wD.
5)在投影空间中,为对象n建立第d维xnd=wTdyn(X=YW)
DM×DXN×D


特征谱(特征值的重要性)

特征值很小的所对应的维度,相当于噪声数据,并不会比感兴趣特征维度获得更多的信息
以此缩减维度的投影空间能够保留原始数据的聚类信息



选择D
一般情况,对D的选择根据应用不同而不同
实践上,一般不超过3维


PCA的局限性
两个假设:
1)数据必须是实值
2)数据没有缺失值

——引出变分推理(隐变量模型之一,混合模型也属于),一种获得难以求出的后验密度函数的近似方法






隐变量模型



隐变量分类
1)变量对应于对象的真实特征,但是无法被量化
2)抽象的质量,该质量现实不存在,但是在模型中存在且起作用(重点研究)


隐变量模型中的混合模型
在一组数据的生成过程,针对每个数据对象,目的是从K个可能的类别中选择一个,并从这个类别中采样这个数据对象。
znknkznk=10
指示变量就是隐变量(显示不一定存在),用于建立混合模型。



变分贝叶斯


变分贝叶斯VB使用近似推理技术,具有很好的实际性能和较低的计算代价,和之间介绍的拉普拉斯推理近似,轻易获得较难得到的后验概率。


一组数据Y和一个含有参数/隐变量θ的模型
边缘似然P(Y)定义为:
P(Y)=P(y,θ)dθ
利用詹森不等式(期望的对数大于等于对数的期望)
最后得到
logP(Y)L(Q)=Q(θ)log(p(θ|Y)Q(θ))dθ=KL[Q(θ)||p(θ|Y)]
——Q(θ)θ的任意分布
该表达式就是真实后验p(θ|Y)和近似后验Q(θ)之间的(KL)散度——相对熵
KL的更多细节




选择Q(θ)


基于隐变量θ独立性假设,得到

Q(θ)=Li=1Ql(θl)

模型可能有M个参数向量wm和N个隐变量xn,WX

假设这些参数集合之间是相互独立的:

Q(W,X)=QW(W)QX(X)

进一步,假设该分布中一个或者多个M(或N)类别是独立

QW(W)=Mm=1Qwm(wm),QX(X)=Nn=1Qxn(xn)

更进一步,假设xnD维是独立的:

QX(X)=Nn=1Dd=1Qxnd(xnd)


假设在真实后验中这些参数是相互依赖的,独立性假设越多,近似结果可能越差。较多独立性假设使得优化下界变得容易,但近似结果变差




优化边界



利用Q(θ)=Li=1Ql(θl)Qθ,该边界可用下述形式的分布优化获得:


Ql(θl)=exp(Ekl{logp(Y,θ)})exp(Ekl{logp(Y,θ)})dθl

除了第l个分布之外,所有独立分布之和




PCA的概率模型





算法


VB获得了近似后验Q(W,X,τ)

<τ>=a/b()
<wm>N(0,ID),<wwT>=ID+<wm><wm>T
现在我们能计算μxnΣxn,因此也能计算出<xn><xnxTn>:
1)对于所有的n,计算μxnΣxn,并且更新<xn><xnxTn>
2)对于所有的m,使用新产生的<xn><xnxTn>,μwmμw<wm><wmwTm>
3)对于所有的n和m,计算<xTm<wmwTm>xn>
4)计算e和f,并更新<τ>
5)如果不收敛,则返回到1)

收敛判断详见:机器学习基本教程 172 页

0 0
原创粉丝点击