机器学习笔记--线性因子模型
线性因子模型是基于潜变量的最简单的概率模型,时常被用来作为混合模型或者更大的深度概率模型的组成模块。本文首先介绍线性因子模型的一般形式,然后再罗列一些特殊情况下的典型线性因子模型,方便日后学习。
一、线性因子模型
随机线性解码器函数通过对 \(h\) 的线性变换以及添加噪声来生成 \(x\),我们可以通过该函数来定义线性因子模型。
线性因子模型描述的数据生成过程如下:
首先我们从一个因子分布 \(p( h) \) 中抽取解释性因子 \(h\) :\(h\sim p( h) \),然后在给定因子的情况下,对实值的可观察变量进行采样:
其中噪声往往是对角化的且服从高斯分布。
下图是描述线性因子模型族的有向图模型,从中我们可以看出其一般形式。
二、典型的线性因子模型
我们假设观察到的数据向量 \(x\) 是通过独立的潜在因子 \(h\) 的线性组合再加上一定噪声获得的。不同的模型,比如概率 PCA,因子分析或者 ICA,都是选择了不同形式的噪声以及先验 \(p( h) \)。
1、因子分析
在因子分析中,潜变量的先验是一个方差为单位矩阵的高斯分布
而噪声是从对角协方差矩阵的高斯分布中抽出来的,协方差矩阵为 \( \psi =diag(\sigma ^{2}) \),其中 \( \sigma ^ {2}=\left[ \sigma _ {1} ^ {2},\sigma _ {2} ^ {2},\ldots ,\sigma _ {n} ^ {2}\right] ^ {T} \) 表示一个向量,每个元素表示一个变量的方差。
很容易我们就可以看出生成的 \(x\) 服从多维正态分布,并满足
2、概率PCA
当因子分析模型中的条件方差 \( \sigma _{i} ^{2} \) 等于同一个值时,线性因子模型就变成了概率 PCA。在这种情况下,\(x\) 服从的多维正态分布将变为
其中 \(\sigma ^{2}\) 是一个标量。或者等价地,可以将 \(x\) 表示为
其中 \( z\sim N(z;0,I) \) 是高斯噪声。
3、PCA
当概率 PCA 中的 \( \sigma \rightarrow 0 \) 时,PCA 可以看成是概率 PCA 的退化。此时,\( x \) 的表示可以写为
4、独立成分分析
独立成分分析(ICA)是一种建模线性因子的方法,旨在将观察到的信号分离成许多完全独立的潜在信号,这些潜在信号通过缩放和叠加可以恢复成观察数据。
许多不同的具体方法被称为 ICA,它们均要求 \( p(h) \) 是非高斯的。这样的选择在 0 附近具有比正态分布更高的峰值,因此 ICA 常用于学习稀疏特征。
5、慢特征分析
慢特征分析(SFA)是使用来自时间信号的信息学习不变特征的线性因子模型,其想法源于慢性原则。
在求解时,SFA 往往要满足三个约束:一是学习到的特征要具有零均值,这样优化问题才会具有唯一解;二是学习到的特征要具有单位方差,以防止所有的特征趋近于 0 的病态解;最后一个约束是要求学习到的特征之间必须彼此线性去相关。
6、稀疏编码
稀疏编码模型通常假设线性因子有一个各向同性精度为 \( \beta \) 的高斯噪声:
而分布 \( p(h) \) 通常为一个峰值很尖锐且接近 0 的分布,如可分解的 Laplace、Cauchy 或者可分解的 Student-t 分布。