也有不那么主观的方法:把它看成一个 model selection 问题,然后用 model selection 的方法解决。具体例子:Probabilistic PCA + Bayesian model selection。
先介绍一下 Bayesian model selection。一般而言,假设我们有数据 ,候选模型集 ,以及对应参数空间集 。Bayesian model selection 通过计算并比较各模型后验概率
之间的相对大小来决定合适的模型(Bayes factor)。通常,我们假设各个模型的先验 均相等。
这个积分一般比较难算,惯常做法是利用 Laplace's method(下面略去下标 ):假设 ,并令 , 。如果把 在 处 Taylor 展开至二阶(相当于用正态分布近似归一化后的 ),积分就变成了概率积分,可以顺利被积出。如果进一步令 (flat prior),那么当样本大小 很大时,我们有
其中 是 Fisher information matrix(来源于 很大时对 的 Hessian 的近似)。如果再把跟 无关的项扔掉(因为 很大,所以其他项相对可以忽略),就能得到 Bayesian information criterion (BIC)。
回到到 PCA 维数选择这个问题上。这里首先需要 PCA 的概率模型 —— Probabilistic PCA(PPCA):假设样本 生成于未知的低维嵌入 ,且有 。直观上,不考虑平移的话, 就是 PCA 投影的“逆”。PPCA 把 看成隐变量,把映射 、平移向量 、以及噪声大小 看成模型参数,即
把 积掉便有 ,进一步有极大似然估计
其中 中的 是 的前 个特征向量组成的矩阵, 为对应特征值组成的对角阵, 为任意正交矩阵; 中的 则为剩下的后 个特征值。
我们现在把 Bayesian model selection 和 PPCA 结合起来,选出合适的 PCA 分量个数。这里直接套用 BIC 的话还有一点问题:如果不同的模型里有参数处于不同维数的空间中(所谓“uncommon parameter”),那么这些参数一般不能用 flat prior。直观上是因为,维数不同的参数空间中的“1”地位不对等。把这两个不同的“1”放进 Bayes factor 时,可能会选出错误的模型。Objective Bayesian Methods for Model Selection: Introduction and Comparison 的1.5节用大白话解释了这个问题。
因此,我们只给 flat prior,而给其他参数如下 proper prior:
:某 Inverse Gamma 分布(虽然是 common parameter 但为了计算方便)
:某 Inverse Wishart 分布
:Stiefel 流形 上的均匀分布
:会被积走,无所谓
这堆先验加上 PPCA 的似然函数再跟一开始的 Bayesian model selection 搅在一起,经过合理近似(比如 Laplace 近似, 很大等等)后,最终会得到
其中 为 Stiefel 流形 的维数, 。根据 的大小我们便可选出合适的。
以上抄写自 Automatic choice of dimensionality for PCA。另外最近也有人推了个不使用 Laplace 近似的 Exact Dimensionality Selection for Bayesian PCA,有兴趣可以看看。