混合因子分析(MFA),或曰概率主成分分析(PPCA),在数据科学中是一种有效的数据降维方法。但是其用途不啻于此。本文从实用的角度简单介绍下混合因子分析的基本原理。
因子分析概述
基本原理
主成分分析(PCA)是一种常用的线性降维技术,因子分析(Factor Analysis, FA)是其更一般形式。这里不讨论PCA的相关细节。FA的提出基于下述线性高斯隐变量生成模型:
p ( z ) = N ( z ∣ μ 0 , Σ 0 ) p ( x ∣ z , θ ) = N ( x ∣ W z + μ , Ψ ) \begin{aligned} p(z) &= \mathcal{N}(z | \mu_{0}, \Sigma_{0}) \\ p(x|z,\theta) &= \mathcal{N}(x|Wz+\mu,\Psi) \end{aligned} p(z)p(x∣z,θ)=N(z∣μ0,Σ0)=N(x∣Wz+μ,Ψ) 其中 W ∈ R D × L W\in\mathbb{R}^{D \times L} W∈RD×L被称为factor loading矩阵。FA可被看作是一种低阶的高斯分布。
如上图, x ∈ R D , D = 2 x\in\mathbb{R}^{D}, D=2 x∈RD,D=2 是2维变量,但是,我们可以用 z ∈ R L , L = 1 z\in\mathbb{R}^{L}, L=1 z∈RL,L=1这个1维变量将其生成。这便是FA的基本原理。该思路应用于机器人运动规划领域十分有价值,因为很多时候维度与自由度并不相同,换一个视角就可以将高维度的运动轨迹用低自由度的机器人实现。
话不多说,给定上述公式,我们可以计算可观变量(visible/observable variable) x x x的边缘概率分布为: p ( x ∣ θ ) = ∫ p ( x ∣ z , θ ) p ( z ) d z = N ( x ∣ W μ 0 + μ , W Σ 0 W ⊤ + Ψ ) p(x|\theta) = \int p(x|z,\theta)p(z)\mathrm{d}z = \mathcal{N}(x|W\mu_{0}+\mu, W\Sigma_{0}W^{\top}+\Psi) p(x∣θ)=∫p(x∣z,θ)p(z)dz=N(x∣Wμ0+μ,WΣ0W⊤+Ψ)
不失一般性,假定 μ 0 = 0 , Σ 0 = I \mu_{0} = 0, \Sigma_{0} = I μ0=0,Σ0=I,那么可得到: p ( x ∣ θ ) = N ( μ , W W ⊤ + Ψ ) p(x|\theta) = \mathcal{N}(\mu,WW^{\top}+\Psi) p(x∣θ)=N(μ,WW⊤+Ψ) 定义:
C = C o v [ x ] = W W ⊤ + Ψ C = \mathrm{Cov}[x] = WW^{\top}+\Psi C=Cov[x]=WW⊤+Ψ 其中 Ψ \Psi Ψ 是对角矩阵,该假设十分关键。对于可观变量 x x x 的每个维度,其方差为
V [ x ] = ∑ k = 1 L w d k 2 + ψ d \mathrm{V}[x] = \sum_{k=1}^{L}w_{dk}^{2}+\psi_{d} V[x]=k=1∑Lwdk2+ψd 可以看出,该表达式包含一个通用因子和一个uniqueness ψ d \psi_{d} ψd。基于上述假设,容易得到可观变量与隐变量的联合分布为:
[ x z ] ∼ N ( [ μ 0 ] , [ W W ⊤ + Ψ W W ⊤ I ] ) \begin{bmatrix} x \\ z \end{bmatrix} \sim \mathcal{N}\left( \begin{bmatrix} \mu \\ 0 \end{bmatrix}, \begin{bmatrix} WW^{\top}+\Psi & W \\ W^{\top} & I \end{bmatrix} \right) [xz]∼N([μ0],[WW⊤+ΨW⊤WI])
利用高斯分布的贝叶斯法则,我们可知:
p ( z ∣ x ) = N ( z | W ⊤ C − 1 ( x − μ ) , I − W ⊤ C − 1 W ) p(z|x) = \mathcal{N}\left( z \middle\vert W^{\top}C^{-1}(x-\mu), I-W^{\top}C^{-1}W \right) p(z∣x)=N(z∣∣W⊤C