目录
先讲了本身维度intrinsic dimensionality
实际中,数据点可能不会准确落到低维流形上,可以把偏离称为“噪声noise”
12.1 Principal Component Analysis
老算法了。PCA又叫KL变换
两种推导方式
- 方差最大
- 平方距离最小
方差最大的含义是先选一个轴,让方差最大,再选第二个轴,要正交与第一个轴,投影到该轴上方差最大,接着选下去。这样选出来就是从大到小的特征值,可以用数学归纳法得出,参考习题12.1. 也即
- 对于 D D D维矩阵,想获取前 M M M个特征值和特征向量,可以采用幂方法power method(Golub and Van Loan, 1996),时间复杂度为 O ( M D 2 ) \mathcal O(MD^2) O(MD2),也可以采用EM算法
平方距离最小的推导,书上推的挺好的,值得参考
- 典型相关分析canonical correlation analysis(CCA). PCA考虑一个随机变量,CCA考虑两个或更多的随机变量,并试图找到具有较高交叉相关性的线性子空间对,从而一个子空间和另一个子空间的每个分量具有相关性(我估计这意思应该是成对数据集)
P565 应用
- 有损压缩
- 对数据集进行标准化变换,消除相关性
- 数据可视化
- PCA和LDA的区别
P569 高维数据PCA
如果维度
D
D
D高过数据集
N
N
N,此时压缩维度
M
M
M超过
N
−
1
N-1
N−1毫无意义,至少有
D
−
N
+
1
D-N+1
D−N+1个特征值为0。传统方法找特征值的计算复杂度为
O
(
D
3
)
\mathcal O(D^3)
O(D3). 一种改进方法是:
定义数据集为
X
∈
R
N
×
D
\bm X\in \mathbb R^{N\times D}
X∈RN×D,其中第
n
n
n行为
(
x
n
−
x
‾
)
T
(\bm x_n - \overline \bm x)^T
(xn−x)T. 记
S
=
N
−
1
X
T
X
\bm S=N^{-1}\bm X^T\bm X
S=N−1XTX,PCA需要的特征向量方程为
左乘
X
\bm X
X得到
定义
v
i
=
X
u
i
\bm v_i=\bm X \bm u_i
vi=Xui,得到
从而解的特征值,需要的计算代价为
O
(
N
3
)
\mathcal O(N^3)
O(N3)
为了得到特征向量,再左乘
X
T
\bm X^T
XT
从而
X
T
v
i
\bm X^T \bm v_i
XTvi就是
S
\bm S
S对应特征值
λ
i
\lambda _i
λi的特征向量,归一化得到
(上述公式中
v
i
\bm v_i
vi得是单位化过的,但是如果定义
v
i
=
X
u
i
\bm v_i =\bm X\bm u_i
vi=Xui,则不一定单位化过,反正书上这里写的是有点迷。不过表达的意思已经到了)
12.2 Probabilistic PCA
PCA可以被解释为概率隐变量模型的最大似然,相比于PCA,概率PCA的优势在于
- 采用受限的高斯形式,自由参数的数量受到限制
- 可以推导EM算法,在只有几个特征向量需求时,计算效率高,避免计算协方差的中间步骤
- 概率模型和EM的结合使缺失值可处理
- 混合概率PCA模型也可以形式化构造,并且用EM求解
- 导出贝叶斯PCA,子空间维度可以自动选择
- 似然函数使概率密度模型可以互相比较
- 可以用于建模类条件概率密度,从而处理分类问题
- 可以用于生成
概率PCA中,有隐变量,两者满足
上式可以关于
x
\bm x
x的各个元素分解,也即朴素贝叶斯!
解这个线性高斯模型,得到
其中
P574 最大似然PCA
其中关于
W
,
σ
2
\bm W,\sigma^2
W,σ2优化得到不动点(这式子并不好优化)
其中
U
M
\bm U_M
UM是一个
D
×
M
D\times M
D×M矩阵,列由数据协方差的特征向量的任意子集组成,
L
M
\bm L_M
LM是一个
M
×
M
M\times M
M×M的由对应特征值
λ
i
\lambda_i
λi组成的对角矩阵,
R
\bm R
R是任意
M
×
M
M\times M
M×M的正交矩阵
其中最大似然在选用最大的
M
M
M个特征值时得到,如果再从大到小排序,那就得到了标准PCA的结果
对噪方差声优化,得到
这也是样本的二次重构误差,正好对应了噪声项的方差
- 变换矩阵 W M L \bm W_{ML} WML,如果取 R = I \bm R=\bm I R=I,那么 W M L \bm W_{ML} WML的每一列都是单位特征向量,再乘上 λ i − σ 2 \sqrt{\lambda_i - \sigma^2} λi−σ2,作为缩放因子。这里减 σ 2 \sigma^2 σ2的意义可以这么考虑,算一下 C \bm C C,会发现方差中有一部分是 σ 2 \sigma^2 σ2刻画的
- 如果是采用优化的方法,得到 W \bm W W,则 R \bm R R可能是任意的,导致 W \bm W W的列不是正交的。可以采用后处理得方式得到正交基
如果维度
M
=
D
M=D
M=D,则协方差
得到无约束高斯分布的最大似然解,协方差为样本方差
- 传统PCA通常看作数据点从
D
D
D维到
M
M
M维的投影,概率PCA则相反,看作是隐变量到数据点的映射。对于可视化、数据压缩一类的任务,可以采用贝叶斯公式,求后验
p ( z ∣ x ) = N ( z ∣ M − 1 W T ( x − μ ) , σ 2 M − 1 ) p(\bm z|\bm x)=\mathcal N(\bm z|\bm M^{-1}\bm W^T(\bm x-\bm \mu),\sigma^{2}\bm M^{-1}) p(z∣x)=N(z∣M−1WT(x−μ),σ2M−1)
其中 μ = x ‾ \bm \mu=\overline \bm x μ=x, M \bm M M是
- 当
σ
2
→
0
\sigma^2\to0
σ2→0时,后验均值变为
上式即 L − 1 / 2 U M T ( x − x ‾ ) \bm L^{-1/2}\bm U_M^T(\bm x-\overline \bm x) L−1/2UMT(x−x). 协方差为0. 概率密度奇异 - 当 σ 2 > 0 \sigma^2 > 0 σ2>0时,投影向着原点移动,不同于正交投影(习题12.12)
考虑优化时的参数量,概率PCA的自由度为
即
W
\bm W
W的自由度,加上
σ
2
\sigma^2
σ2的自由度,减去
R
\bm R
R的自由度(或者是
U
\bm U
U的自由度,加上
σ
2
\sigma^2
σ2的自由度)。对于固定
M
M
M,参数量是
D
D
D的线性增长,这点挺神奇的。如果
M
M
M和
D
D
D在同一尺度,那么仍然是
D
D
D的二次增长
P577 概率PCA的EM算法
因为有隐变量 z n \bm z_n zn,所以可以用EM啊。
- EM相比于解析解的优势在于,处理高维时快
- EM方法也可以扩展到因子分析模型(没有解析解)
- 也可以扩展到有缺失值的情况
先考虑对数全概率似然
以
z
\bm z
z的后验分布求期望
其中
上述结果就得到E步;对于M步,需要优化
W
\bm W
W和
σ
2
\sigma^2
σ2
- 效率对比:传统PCA如果想从 D D D维降到 M M M维,特征分解需要复杂度为 O ( M D 2 ) \mathcal O(MD^2) O(MD2),但计算协方差矩阵需要 O ( N D 2 ) \mathcal O(ND^2) O(ND2),其中 N N N是样本数量。这里假定 N N N巨大。基于EM的方法没有显示构造协方差矩阵,最高的计算复杂度发生在求和那里,为 O ( N D M ) \mathcal O(NDM) O(NDM)
- 该方法可以在线学习,E步中只关于每个点算期望,M步中,求和可以变成增量累积。这和第九章EM算法类似
- 该方法的可以用于数据有缺失值的情况,如果数据的某些维度缺失了,可以用EM去补它,缺失的当成隐变量,放到E步当中。如图所示
- 如果把
σ
2
\sigma^2
σ2直接给0,退化为标准PCA,但是仍然能采用EM解!这时候,E步中只要计算
E
[
z
n
]
\mathbb E[\bm z_n]
E[zn]即可,M步也简化。记
X
~
=
[
⋯
,
x
n
−
x
‾
,
⋯
]
T
∈
R
N
×
D
\tilde \bm X=[\cdots, \bm x_n - \overline \bm x, \cdots]^T\in \mathbb R^{N\times D}
X~=[⋯,xn−x,⋯]T∈RN×D,
Ω
=
[
⋯
,
E
[
z
n
]
,
⋯
]
∈
R
M
×
N
\bm \Omega=[\cdots, \mathbb E[\bm z_n],\cdots]\in \mathbb R^{M\times N}
Ω=[⋯,E[zn],⋯]∈RM×N
则E步
Ω = ( W o l d T W o l d ) − 1 W o l d T X ~ T \bm \Omega = (\bm W_{old}^T\bm W_{old})^{-1}\bm W_{old}^T \tilde \bm X^T Ω=(WoldTWold)−1WoldTX~T
M步
该方法的解释为E步找正交投影,M步重新估计主子空间
该图中 z z z不变可以认为是间隔不变,但是这一群 z z z可以刚体转啊
P580 贝叶斯PCA
降多少维的
M
M
M可以自动选。需要给
μ
,
W
,
σ
2
\bm \mu, \bm W, \sigma^2
μ,W,σ2以先验,然后边缘化。可以通过变分框架近似。这里考虑一种简单的基于证据近似的方式。这也是自动相关确定ARD的一个例子。对于
W
\bm W
W,不同维度设计不同的先验
通过最大化边缘近似,把
W
\bm W
W积分积掉,优化
α
\bm \alpha
α,其中有些
α
i
\alpha_i
αi趋于无穷,从而对应
w
i
\bm w_i
wi为0,得到稀疏解
其中为了简化,
μ
,
σ
2
\bm \mu,\sigma^2
μ,σ2视为参数,不给先验。上式不能直接优化,用拉普拉斯近似。当数据集足够大时,认为后验分布足够尖峰,最大化边缘似然得到结果
和公式3.98类似(没验证,一眼看上去感觉还是不一样)
这仍然是一个EM算法,E步算关于
z
n
\bm z_n
zn的后验,M步关于
σ
2
\sigma^2
σ2的估计和式12.57相同,但关于
W
\bm W
W的更新式变了
其中
A
=
d
i
a
g
(
α
i
)
\bm A=diag(\alpha_i)
A=diag(αi)
结果如图所示,右侧贝叶斯选出来的四个轴和左侧对应的四列是一样的感觉,因为如果设定
M
=
4
M=4
M=4,那最大似然解就是左侧那四个
- 概率PCA可以用于讨论吉布斯采样算法(真是梦幻联动,虽然我没看懂),从超参数
ln
α
\ln \alpha
lnα采样,数据集特征维度
D
=
4
D=4
D=4,隐变量维度
M
=
3
M=3
M=3,而数据集则是由1个高方差分量,其余低方差分量生成的。采样结果表明,每一次迭代,一个超参数很小,两个超参数很大,所以其中两个轴会被压制(我估计是知道两个
α
\alpha
α,去采另一个吗)
- 完整的贝叶斯方法,需要在 μ , σ 2 , α \bm \mu,\sigma^2,\bm \alpha μ,σ2,α上给先验概率分布,并使用变分法求解(Bishop 1999b)
P583 因子分析
相比于PPCA,改了方差这个地方
其中
Ψ
∈
R
D
×
D
\bm \Psi \in \mathbb R^{D\times D}
Ψ∈RD×D是对角矩阵,在相关文献中,
W
\bm W
W的列叫做因子载入factor loadings,
Ψ
\bm \Psi
Ψ的对角元素被称为唯一性uniquenesses
因子分析没有解析解,可以用EM求解,类似PPCA,E步
其中
这都直接套高斯线性模型就出来了。M步为
其中
diag
\text{diag}
diag是一个算子,直接把非对角元素置为0(这也太神奇了。。不过仔细想想导数的定义,好像也对)
- 用讨论过的方法,贝叶斯因子分析也能得到
- PPCA和PCA中,如果重新选择坐标系,那么拟合不发生变换,但是 W \bm W W要旋转一下,(但是因子分析模型似乎不行);对于因子分析模型中,类似的性质是,如果一个分量重新缩放,那么这种所发可以被整合到 Ψ \bm \Psi Ψ的元素的重新缩放中
12.3 Kernel PCA
为了避免符号混乱,假定已经归一化过了,即
∑
n
x
n
=
0
\sum_n\bm x_n=\bm 0
∑nxn=0
可以把
x
n
\bm x_n
xn映射到
ϕ
(
x
n
)
\phi(\bm x_n)
ϕ(xn)
假定投影也有0均值,即
∑
n
ϕ
(
x
n
)
=
0
\sum_n \bm \phi(\bm x_n)=0
∑nϕ(xn)=0,从而协方差矩阵为
对应特征向量为
也即
从而向量
v
i
\bm v_i
vi是
ϕ
(
x
n
)
\phi(\bm x_n)
ϕ(xn)的线性组合
回代得到
左乘
ϕ
(
x
l
)
T
\bm \phi(\bm x_l)^T
ϕ(xl)T得到
写成矩阵形式
可以通过求解如下特征值问题求解上式(正确性参见习题12.26)(注意,这里已经巧妙地把从协方差矩阵求特征值变成了核的Gram矩阵求特征值)
对于系数
a
i
\bm a_i
ai则需要满足
对于样本
x
\bm x
x,PCA的投影为
在核PCA中,变换后的特征维度
M
M
M可以超过
D
D
D,甚至是无穷维的。但是非0特征值,不会超过数据点个数
N
N
N
- 之前我们假定了
∑
n
ϕ
(
x
n
)
=
0
\sum_n \bm \phi(\bm x_n)=0
∑nϕ(xn)=0,现在需要审视这个问题
我们不想直接操作特征空间,上式对应Gram核元素为
写成矩阵形式
其中 1 N ∈ R N × N \bm 1_N \in \mathbb R^{N\times N} 1N∈RN×N,每个元素为 1 N \frac{1}{N} N1
这样就绕过了特征空间
下图是选择高斯核生成的结果
(注意其中不同投影的正交性)。等高线是如下投影分量为常量
- 核PCA的一个问题是计算维度为 N × N N\times N N×N矩阵的特征向量 K ~ \tilde \bm K K~,而不是 D × D D\times D D×D的矩阵 S \bm S S,所以对于大数据集经常采用近似
- 在原始PCA当中,通常保留 L < D L<D L<D个特征向量,计算投影来近似数据,但在核PCA中,这通常做不到。映射 ϕ \bm \phi ϕ将 D D D维数据映射到 M M M维特征空间的 D D D维流形上, x \bm x x称为 ϕ ( x ) \bm \phi(\bm x) ϕ(x)的原像pre-image。然而特征空间中的点在特征空间的线性PCA子空间的投影,通常不会位于非线性 D D D维流形中,因此数据空间不会存在一个对应的原像。有一些近似方法找pre-image(Bakir et al., 2004)(真有道理啊,用低维数据可以想象出来)
12.4 Nonlinear Latent Variable Models
P591 独立成分分析 independent component analysis
观测变量和隐变量仍然是线性的关系,但隐变量非高斯
独立成分分析中的独立是指隐变量独立,也即
例如两个人同时讲话,并把声音组合起来。在每个时刻,信号是两个声音振幅的线性组合。并且如果可以从采样数据中推断值,那么可以将混合过程求逆。这个例子叫做盲源分离blind source seperation
上例中,无需引入一个噪声分布,因为潜在变量数量等于观测变量数量,从而观测变量的边缘分布本身就不奇异,不需要噪声
一种常用的更长尾的隐变量分布为
概率隐变量的建模方式一个好处是可以进行形式化推广,例如独立因子分析independent factor analysis:隐变量的数量和观测变量可以不同,观测变量带有噪声,隐变量的概率分布由混合高斯建模(CVMLI书上好想把这个叫做混合因子分析MoFA)
P592 自关联网络 autoassociative neural networks
就是autoencoder吧
该网络构成了自相关映射autoassociative mapping. mse做loss
- 可以证明,即使隐藏单元用了非线性激活,结果仍然是投影到主子空间
- 当然,如果隐藏层更多,那么就实现了非线性PCA
P595 对非线性流形建模
- 一种方式是对流形进行分段线性近似,例如用K-means根据欧式距离划分数据,每个局部集合用标准pca近似。进一步可以用重构误差对聚类进行分配。
通过使用混合概率PCA能定义一个完整的概率模型,其中有离散隐变量(类别)和连续隐变量,似然函数也可以用EM算法优化。进一步从贝叶斯的角度,可以通过变分,让分量数量、有效的模型维度等从数据集中推断出来。这些方法又有很多的设计和变种 - 一种方式是考虑一个单一的非线性模型,而不是将线性模型组合。将子空间的概念推广到非线性曲面,其中一维的被称为主曲线principal curves,该曲线可以用带参的向量值函数
f
(
λ
)
\bm f(\lambda)
f(λ)描述。有许多方法可以参数化这条曲线,其中一种是沿着曲线的弧的长度。对于数据点
x
^
\hat \bm x
x^,找曲线上欧式距离最近的,定义
λ
=
g
f
(
x
)
\lambda = g_f(\bm x)
λ=gf(x). 对于连续的
p
(
x
)
p(\bm x)
p(x),
f
(
λ
)
\bm f(\lambda)
f(λ)的值是要赋予投影到
λ
\lambda
λ的数据点的均值位置
给定连续概率密度,可能对应很多主曲线,我们对有限数据集和光滑的曲线感兴趣。Hastie and Stuetzle (1989)一种两阶段迭代方法,该方法与PCA的EM算法类似。细节翻书……principal curves的概念可以推广到高维流形得到主曲面princial surfaces,但是高维空间中数据平滑很困难 - 一种用于可视化的方式是高维缩放multidimensional scaling (MDS),用于尽可能保持两点间距离。当距离用欧式距离度量时,MDS等价于PCA. MDS可以扩展到更大类数据类型中,根据相似度矩阵定义,得到非度量MDS(可参考西瓜书)
- 局部嵌入locally linear embedding (LLE)是一种降维方法,计算系数集合,使每个数据点能从近邻节点最佳重构。这些系数对近邻数据点的旋转、平移、缩放具有不变性。所以它的道理是希望降维变换后,也保持系数不变(可参考西瓜书)
等度量映射isometric feature mapping (isomap)目标是使用MDS把数据投影到低维,但是使用流形上的测地线距离geodesic distance(可参考西瓜书)通过用KNN或者小球邻域找每个数据点的邻居,构成图 - 潜在特征模型latent trait models:连续隐变量,但是对应离散观测变量,这一个没怎么看……
- 密度网络density network:用多层神经网络的非线性函数来拟合从高斯分布到任意分布的非线性变换。一个负面效果是似然函数所需的隐变量上的积分没法算,只能从变换前的高斯分布采样,用蒙特卡洛方法近似,求和式中的每一项都对应一个样本,所以为了得到准确的边缘分布,需要相当多的数据点,计算代价高
- 如果考虑非线性映射的更受限的形式,生成式地形映射generative topographic mapping (GTM)使用一个隐概率分布,由隐空间(通常是二维)的delta函数的有限个regular grid定义。对隐概率分布的边缘化只需要对每个格点求和即可。该非线性映射由一个线性回归模型给出,这个线性模型允许一般的非线性性质,映射是可调参数的线性函数。因为流形只有两个维度,所以线性回归中的维度灾难造成的局限性不会出现(没看到懂书上这句……)。效果如图
GTM可以看作是自组织映射self-organizing map(SOM)的概率版本(SOM参考西瓜书)。不过SOM没有优化任何良好定义的代价函数,从而收敛困难,“自组织”也不一定会发生。而GTM则优化了对数似然。GTM实际上对应了一个受限的混合高斯,其中每个部分共享方差,均值被限制在一个光滑的二维流形上。GTM有一些扩展,例如处理缺失值的贝叶斯方法、对离散变量的系统化推广、用高斯过程定义流形、层次化GTM模型
西瓜书上关于这一块的讨论,还有一种度量学习(距离度量学习distance metric learning),例如学习马氏距离中的度量矩阵,以提高近邻分类器的性能,称之为近邻成分分析(Neighbourhood Component Analysis,NCA)
参考文献:
[1] Christopher M. Bishop. Pattern Recognition and Machine Learning. 2006