线性代数笔记16:理解PCA

在SVD的基础上,深入理解PCA。

本文涉及到仿射变换、SVD等多个概念,可以先看参考文献,本文作为复习理解之用。

基本思想

降维是机器学习中很常见的一种思维方式,一般来说,可以通过线性投影和非线性映射进行。

PCA是一种简单的线性映射,当考虑降维时,我们一般有两种思路:

  • 找到d-维仿射变换子空间,在合适的投影下,新的投影点与原先的投影点就接近。也就是说,在新投影下能最大限度的保持原数据的特征。
  • 找到d-位投影,尽可能多的保留数据的变动(方差)。

我们将会从这两个思路分别进行求解,可以看到,这两个目标实际上等价。

定义

首先定义一些常用的量

样本均值

μ n = 1 n n = 1 n x i

样本协方差

n = 1 n 1 i = 1 n ( x i μ i ) ( x i μ i ) T

其中 x i 为数据样本(列向量),因此可以得到 X = ( x 1 , . . . , x n ) p × n 矩阵,因此,写成矩阵的形式为

n = 1 n 1 ( X μ n 1 ) ( X μ 1 ) T

直观理解

首先,让我们用不是很严格的数学公式来直观理解PCA。

我们很常见的思想是使得协方差矩阵的方差尽可能大(保留更多有效信息),而让协方差尽可能的小(防止数据冗余),在协方差矩阵中则表现为对角矩阵 D

我们令经过d-维基 V 变换后的新坐标为 y ,因此可得:

(1) D = y y T (2) = V x ( V x ) T (3) = V x x T V T (4) = V n V T

这个式子有着特殊的含义。其中, D 是新的协方差矩阵(对角矩阵),而 n 则是原始数据的协方差矩阵, V 则是d-维正交基。

因此,这个式子可以理解为:对协方差矩阵 n ,找一个 V ,使得其转变为对角矩阵。而协方差矩阵是实对称矩阵,一定能够对角化,证明了这一点的完备性。

因此,我们只需要对协方差矩阵进行对角化,然后求出其对应的特征向量,即为新坐标下的正交基 V 。对 y = V x 进行坐标变换则求到了新坐标下的PCA坐标。

PCA是最佳的仿射变换拟合

我们要对每个近似 x i 近似(由仿射变换的定义):

x i μ + j = 1 d β i j v j

其中, V p × d = ( v 1 , . . , v d ) 为d-维子空间中的标准正交基, μ R p 是平移量, β j 为在基 v j 下的系数, β j i β j 的第 i 个分量那么上式可以写成:

x i = μ + V β i

由于其中的 V 由标准正交基组成,因此 V T V = 1 .

用平方误差来衡量拟合效果,即要求出:

min μ , V , β i . V T V = 1 i = 1 n | | x i ( μ + V β i ) | | 2

μ 的最优值

首先对 μ 求偏导,可以得到:

i = 1 n ( x i ( μ + V β i ) ) = 0 ( i = 1 n x i ) n μ V ( i = 1 n β i ) = 0

由于 μ β 之间没有关系,不失一般性我们可以假设 β i = 0 ,因此可以解出:

μ = 1 n i = 1 n x i = μ n

因此, μ 的最优值就是样本均值 μ

这样,我们可以将原始式子化简为:

min μ , V , β i . V T V = 1 i = 1 n | | x i ( μ n + V β i ) | | 2

β i 的最优值

注意到, β i 之间是无耦合的影响的最小值,因此,对于原始式子,可以分别解出 β i

min β i | | x i μ n V β i | | 2 = min β i | | x i μ n j = 1 d β i j v j | | 2

由于 V 是标准正交基,对 β i 求偏导:

β i j = v j T ( x i μ n ) β i = V T ( x i μ n )

因此式子可以化简为:

min V T V = 1 i = 1 n | | ( x i μ n ) V V T ( x i μ n ) | | 2

V 的最优值

| | x | | 2 =< x , x > V T V = 1 ,可以得到:

(5) | | ( x i μ n ) V V T ( x i μ n ) | | 2 = [ ( x i μ n ) V V T ( x i μ n ) ] T [ ( x i μ n ) V V T ( x i μ n ) ] (6) = ( x i μ n ) T ( x i μ n ) ( x i μ n ) T V V T ( x i μ n ) ( x i μ n ) T V V T ( x i μ n ) + ( x i μ n ) T V V T V V T ( x i μ n ) (7) = 2 ( x i μ n ) T ( x i μ n ) 2 ( x i μ n ) T V V T ( x i μ n )

由于 ( x i μ n ) T ( x i μ n ) V$无关,因此等价于求:

max V T V = 1 i = 1 n ( x i μ n ) T V V T ( x i μ n )

由矩阵的迹的性质可得:

y T y = T r ( y y T )

化简原式可得:

i = 1 n ( x i μ n ) T V V T ( x i μ n ) = i = 1 n [ V T ( x i μ n ) ] T [ V T ( x i μ n ) ]

因此,将原始化简的式子等价于求:

max V T V = 1 i = 1 n ( x i μ n ) T V V T ( x i μ n ) = max V T V = 1 ( n 1 ) T r ( V T n V )

即:

max V T V = 1 T r ( V T n V )

即,我们最后要求的标准正交基为使得协方差矩阵的迹最大;这等价于求协方差矩阵的特征值,并按照从大到小排列。

PCA保留最大方差

我们的第二个目标是要保留数据最大变化的d-维投影。可以写出全方差为:

T o t a l V a r i a n c e ( X n ) = 1 n | | x i μ n | | 2 = 1 n i = 1 n | | x i 1 n i = 1 n x i | | 2

因此,我们要向最大化投影以后的方差,即 V T x i 的方差:

max V T V = 1 i = 1 n | | V T x i 1 n i = 1 n V T x i | | 2

根据之前的结论:

i = 1 n | | V T x i 1 n i = 1 n V T x i | | 2 = i = 1 n | | V T ( x i μ n ) | | 2 = ( n 1 ) T r ( V T n V )

表明主成分 V 可以通过下式解决:

max V T V = 1 T r ( V T n V )

这样,两种不同的度量方法就等价求协方差矩阵的前 d 个特征值。

参考资料

猜你喜欢

转载自blog.csdn.net/crazy_scott/article/details/80104245