详解降维-SVD角度看PCA和PCoA & 主成分分析-概率角度(Probabilistic PCA)【白板推导系列笔记】

1,245 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第9天,点击查看活动详情

前一节说明了重构特征空间找什么方向的向量,本节讲的是如何重构特征空间,即通过特征分解(SVD)

 

对于中心化的数据矩阵HXHX进行SVD

HX=UΣVT{UTU=IVTV=VVT=IΣ为对角阵 HX=U \Sigma V^{T}\quad \left\{\begin{aligned}&U^{T}U=\mathbb{I}\\&V^{T}V=VV^{T}=\mathbb{I}\\&\Sigma为对角阵\end{aligned}\right.

那么我们对协方差矩阵SS就有

S=1NXTHX=1NXTHTHX=1NVΣUTUΣTVT=1NVΣΣTVT \begin{aligned} S&=\frac{1}{N}X^{T}HX\\ &=\frac{1}{N}X^{T}H^{T}HX\\ &=\frac{1}{N}V \Sigma U^{T}\cdot U \Sigma^{T}V^{T}\\ &=\frac{1}{N}V \Sigma \Sigma^{T}V^{T} \end{aligned}

因此对SS进行SDV就可以得到VV,即方向、主成分,然后通过HXVHX \cdot V得到新的坐标

这里设

T=HXXTH=UΣVTVΣUT=UΣ2UT两边同乘UΣTUΣ=UΣ2UTUΣ=UΣ3=UΣΣ2 \begin{aligned} T&=HXX^{T}H\\ &=U \Sigma V^{T}\cdot V \Sigma U^{T}\\ &=U \Sigma^{2}U^{T}\\ &两边同乘U \Sigma\\ TU \Sigma&=U \Sigma^{2}U^{T}\cdot U \Sigma\\ &=U \Sigma^{3}\\ &=U \Sigma \cdot \Sigma^{2} \end{aligned}

对于HXVHX \cdot V又有

HX=UΣVT两边同乘VHXV=UΣ \begin{aligned} HX&=U \Sigma V^{T}\\ 两边同乘V\\ HX \cdot V&=U \Sigma \end{aligned}

因此对TT进行SVD可以直接得到新的坐标UΣU\Sigma。对于TT的特征值分解也被称为主坐标分析PCoA

这里需要说明的是,由于PCA的对象是Sp×pS_{p \times p},而PCoA的对象是TN×NT_{N \times N},因此对于小样本量的数据集我们常采用PCoA的方法

教科书对PCA的推导一般是基于最小化重建误差或者最大化可分性的,或者说是通过提取数据集的结构信息来建模一个约束最优化问题来推导的。事实上,PCA还有一种概率形式的推导,那就是概率PCA,PRML里面有对概率PCA的详细讲解,感兴趣的读者可以去阅读。需要注意的是,概率PCA不是PCA的变体,它就是PCA本身,概率PCA是从另一种角度来推导和理解PCA,它把PCA纳入了生成式的框架。

如果你只是为了对现有的数据{xi}i=1n\left\{x_{i}\right\}_{i=1}^{n}进行降维,而没有其他需求,那么简单粗暴的非生成式方法当然是更好的选择。

那么,在什么情况下,或者说什么需求下,生成式方法是更好的选择更好呢?答案就蕴含在“生成式”这个名称中:在需要生成新样本的情况下,生成式方法是更好的选择。

作者:小木曾雪菜

链接:(概率)PCA和(变分)自编码器 - 简书 (jianshu.com)

 

PPCA假设所有的样本点取自某个分布XRpX \in \mathbb{R}^{p},对应的每个点xix_{i},都有一个ziz_{i}与之对应,取样与某个分布ZRq(q<p)Z \in \mathbb{R}^{q}(q<p),满足以下条件

x=ωz+μ+ϵ x=\omega z +\mu+\epsilon

这里,显然ω\omega是正交矩阵,即ωTω=I\omega^{T}\omega=\mathbb{I}ϵ\epsilon为噪声ϵN(0,σ2Ip),ϵz\epsilon \sim N(0,\sigma^{2}\mathbb{I}_{p}),\epsilon \bot z,这里我们令zz有高斯先验分布,即

zN(Oq,Iq) z \sim N(\mathbb{O}_{q},\mathbb{I}_{q})

 

其中矩阵ω\omega(维度为p×qp \times q)也称作因子导入矩阵(factorloading matrix),ϵ\epsilon维度为p×pp \times p,目的是解释原始数据xix_{i}内部的相关性,所以方差矩阵ϵ\epsilon可设置为对角矩阵。这个能表征全部数据特征的全局模型就称为因子分析(Factor Analysis)。对于一个特例,ω\omega是正交矩阵,满足ωTω=I,ϵ=σ2I\omega^{T}\omega=\mathbb{I},\epsilon =\sigma^{2}\mathbb{I},,此时模型就是概率性主成分分析PPCA,进一步地当σ20\sigma^{2}\to 0时,就是通常意义上的PCA。

作者:scott198510

链接:PCA与PPCA推导及理解_scott198510的博客-CSDN博客_ppca

 

![[附件/Pasted image 20220930114428.png]]

概率PCA模型的生成式观点的说明,数据空间为二维,潜在空间为一维。一个观测数据点xx的生成方式为:首先从潜在变量的先验分布p(z)p(z)中抽取一个潜在的变量的值z^\hat{z},然后从一个各向同性的高斯分布(用红色圆圈表示)中抽取一个xx的值,这个各向同性的高斯分布的均值为ωz^+μ\omega \hat{z}+\mu,协方差σ2I\sigma^{2}\mathbb{I}。苦涩椭圆画出了边缘概率分布p(x)p(x)的概率轮廓线

来源:《PRML Translation》-P389

作者:马春鹏

原著:《Pattern Recognition and Machine Learning》

作者:Christopher M. Bishop

 

显然我们的目的是为了计算zxz|x。根据条件我们可以计算xz,xx|z,x,再根据数学基础-概率-高斯分布-求联合概率分布就可以得到zxz|x

对于xzx|z

E(xz)=E(ωz+μ+ϵ)=ωz+μVar(xz)=Var(ωz+μ+ϵ)=σ2IxzN(ωz+μ,σ2I) \begin{aligned} E(x|z)&=E(\omega z+\mu+\epsilon )\\ &=\omega z+\mu\\ \text{Var}(x|z)&=\text{Var}(\omega z+\mu+\epsilon )\\ &=\sigma^{2}\mathbb{I}\\ x|z &\sim N(\omega z+\mu,\sigma^{2}\mathbb{I}) \end{aligned}

对于xx

E(x)=E(ωz+μ+ϵ)=E(ωz+μ)+E(ϵ)=μVar(x)=Var(ωz+μ+ϵ)=Var(ωz)+Var(ϵ)=ωIωT+σ2I=ωωT+σ2IxN(μ,ωωT+σ2I) \begin{aligned} E(x)&=E(\omega z+\mu+\epsilon )\\ &=E(\omega z+\mu)+E(\epsilon )\\ &=\mu\\ \text{Var}(x)&=\text{Var}(\omega z+\mu+\epsilon )\\ &=\text{Var}(\omega z)+\text{Var}(\epsilon )\\ &=\omega \cdot \mathbb{I} \cdot \omega^{T}+\sigma^{2}\mathbb{I}\\ &=\omega \omega^{T}+\sigma^{2}\mathbb{I}\\ x&\sim N(\mu,\omega \omega^{T}+\sigma^{2}\mathbb{I}) \end{aligned}

这里再把之前数学基础-概率-高斯分布-求联合概率分布的结论大概推导一下

已知

x=(xaxb),xN([μaμb],[ΣaaΣabΣbaΣbb]) x=\begin{pmatrix} x_{a} \\ x_{b} \end{pmatrix},x \sim N\left(\begin{bmatrix} \mu_{a} \\ \mu_{b} \end{bmatrix},\begin{bmatrix} \Sigma_{aa} & \Sigma_{ab} \\ \Sigma_{ba} & \Sigma_{bb} \end{bmatrix}\right)

{xba=xbΣbaΣaa1xaμba=μbΣbaΣaa1μaΣbba=ΣbbΣbaΣaa1Σab \left\{\begin{aligned}&x_{b \cdot a}=x_{b}-\Sigma_{ba}\Sigma_{aa}^{-1}x_{a}\\ &\mu_{b \cdot a}=\mu_{b}-\Sigma_{ba}\Sigma_{aa}^{-1}\mu_{a}\\ &\Sigma_{bb \cdot a}=\Sigma_{bb}-\Sigma_{ba}\Sigma_{aa}^{-1}\Sigma_{ab}\end{aligned}\right.

显然有

xbaN(μba,Σbba) x_{b \cdot a}\sim N(\mu_{b \cdot a},\Sigma_{bb \cdot a})

又因为xb=xba+ΣbaΣaa1xax_{b}=x_{b \cdot a}+\Sigma_{ba}\Sigma_{aa}^{-1}x_{a},有

E(xbxa)=E(xba)+ΣbaΣaa1xa=μba+ΣbaΣaa1xa=μb+ΣbaΣaa1(xaμa)Var(xbxa)=Var(xba)=Σbba=ΣbbΣbaΣaa1ΣabxbxaN(μb+ΣbaΣaa1(xaμa),ΣbbΣbaΣaa1Σab) \begin{aligned} E(x_{b}|x_{a})&=E(x_{b \cdot a})+\Sigma_{ba}\Sigma_{aa}^{-1}x_{a}\\ &=\mu_{b \cdot a}+\Sigma_{ba}\Sigma_{aa}^{-1}x_{a}\\ &=\mu_{b}+\Sigma_{ba}\Sigma_{aa}^{-1}(x_{a}-\mu_{a})\\ \text{Var}(x_{b}|x_{a})&=\text{Var}(x_{b\cdot a})\\ &=\Sigma_{bb \cdot a}\\ &=\Sigma_{bb}-\Sigma_{ba}\Sigma_{aa}^{-1}\Sigma_{ab}\\ x_{b}|x_{a}& \sim N(\mu_{b}+\Sigma_{ba}\Sigma_{aa}^{-1}(x_{a}-\mu_{a}),\Sigma_{bb}-\Sigma_{ba}\Sigma_{aa}^{-1}\Sigma_{ab}) \end{aligned}

 

这里其实应该证明xbaxax_{b \cdot a}\bot x_{a},来保证xbxa=xbaxa+ΣbaΣaa1xaxa=xba+ΣbaΣaa1xax_{b}|x_{a}=x_{b \cdot a}|x_{a}+\Sigma_{ba}\Sigma_{aa}^{-1}x_{a}|x_{a}=x_{b \cdot a}+\Sigma_{ba}\Sigma_{aa}^{-1}x_{a}成立,但由于以前的笔记证明过了,就不证了)

 

那么对于本题而言,有

X=(xz),XN([μ0],[ωωT+σ2IΔ ΔTI]) X=\begin{pmatrix} x \\ z \end{pmatrix},X \sim N\left(\begin{bmatrix} \mu \\ 0 \end{bmatrix},\begin{bmatrix} \omega \omega^{T}+\sigma^{2}\mathbb{I} & \Delta  \\ \Delta ^{T} & \mathbb{I} \end{bmatrix}\right)

这里对Δ\Delta,有

Cov(x,z)=E[(xμ)(z0)T]=E[(xμ)zT]=E[(ωz+ϵ)zT]=E(ωzzT+ϵzT)由于ϵz=E(ωzzT)+E(ϵ zT)0=ωE(zzTz的方差矩阵)=ωI=ω \begin{aligned} \text{Cov}(x,z)&=E[(x-\mu)(z-0)^{T}]\\ &=E[(x-\mu)z^{T}]\\ &=E[(\omega z+\epsilon )z^{T}]\\ &=E(\omega z z^{T}+\epsilon z^{T})\\ &由于\epsilon \bot z\\ &=E(\omega z z^{T})+\underbrace{E(\epsilon  z^{T})}_{0}\\ &=\omega E(\underbrace{zz^{T}}_{z的方差矩阵})\\ &=\omega \mathbb{I}\\ &=\omega \end{aligned}

因此条件补充为

X=(xz),XN([μ0],[ωωT+σ2Iω ωTI]) X=\begin{pmatrix} x \\ z \end{pmatrix},X \sim N\left(\begin{bmatrix} \mu \\ 0 \end{bmatrix},\begin{bmatrix} \omega \omega^{T}+\sigma^{2}\mathbb{I} & \omega  \\ \omega^{T} & \mathbb{I} \end{bmatrix}\right)

因此有

zxN(ωT(ωωT+σ2I)1(xμ),IωT(ωωT+σ2I)1ω) z|x \sim N(\omega^{T}(\omega \omega^{T}+\sigma^{2}\mathbb{I})^{-1}(x-\mu),\mathbb{I}-\omega^{T}(\omega \omega^{T}+\sigma^{2}\mathbb{I})^{-1}\omega)