Note 7 - 核主成分分析(Kernel Principal Component Analysis)


核主成分分析

  • Note 7 - 核主成分分析(Kernel Principal Component Analysis)
  • 7.1 用内积表示的线性PCA(Linear PCA expressed with inner products)
  • 7.2 向核PCA过渡 (Transition to Kernel PCA)
  • Definition 7.1 正定核 (Positive Definite Kernel)


标准PCA通过将观察到的数据投射到一个线性子空间来降低其维度。选择投影的方式是使以平方的标准欧氏准则衡量的误差最小,这也可以解释为减少白高斯噪声的一种方式。一个非常重要的应用是将PCA作为分类的预处理,因为分类器在减少噪声的特征空间中表现更好。

标准PCA的主要缺点是,它严重依赖数据的近似线性结构。在许多应用中,这是一个过于严格的假设。核PCA(K-PCA)是标准PCA的一个扩展,它没有这些缺点。K-PCA的关键思想是,它隐含地假设存在一个非线性映射

核主成分分析python 核主成分分析的优缺点_线性代数
其中核主成分分析python 核主成分分析的优缺点_信息检索_02是一个非常高维的向量空间(甚至可能是无限维的),其内积为核主成分分析python 核主成分分析的优缺点_核主成分分析python_03。我们无妨把核主成分分析python 核主成分分析的优缺点_信息检索_02看作是一些核主成分分析python 核主成分分析的优缺点_核主成分分析python_05,有非常大的核主成分分析python 核主成分分析的优缺点_矩阵_06。作为一个初步的步骤,我们重新表述众所周知的标准PCA,使其只涉及我们数据的内积。

核主成分分析python 核主成分分析的优缺点_线性代数_07 形式上,希尔伯特空间核主成分分析python 核主成分分析的优缺点_线性代数_08是一个实数或复数内积空间,就内积所引导的距离函数而言,它也是一个完整的公制空间。

7.1 用内积表示的线性PCA(Linear PCA expressed with inner products)

核主成分分析python 核主成分分析的优缺点_机器学习_09为居中的数据矩阵(这将是下面推导的一个关键假设),让核主成分分析python 核主成分分析的优缺点_线性代数_10核主成分分析python 核主成分分析的优缺点_核主成分分析python_11矩阵,由数据的所有内积组成。更确切地说,核主成分分析python 核主成分分析的优缺点_信息检索_12项是核主成分分析python 核主成分分析的优缺点_核主成分分析python_13核主成分分析python 核主成分分析的优缺点_信息检索_14和第核主成分分析python 核主成分分析的优缺点_矩阵_15观测值的内积核主成分分析python 核主成分分析的优缺点_矩阵_16

回顾一下,如果核主成分分析python 核主成分分析的优缺点_信息检索_17是数据矩阵的SVD。那么数据向量核主成分分析python 核主成分分析的优缺点_机器学习_18的前核主成分分析python 核主成分分析的优缺点_核主成分分析python_19主分量是由核主成分分析python 核主成分分析的优缺点_矩阵_20给出的。在目前的情况下,只给出了内积,因此不可能直接得到核主成分分析python 核主成分分析的优缺点_机器学习_21。然而,核主成分分析python 核主成分分析的优缺点_核主成分分析python_13的特征值分解允许对这个问题有一个优雅的解决方案。记住,我们有 核主成分分析python 核主成分分析的优缺点_线性代数_10 并用它的SVD代替核主成分分析python 核主成分分析的优缺点_矩阵_24。我们得到

核主成分分析python 核主成分分析的优缺点_信息检索_25

记住,核主成分分析python 核主成分分析的优缺点_机器学习_26是正交的,核主成分分析python 核主成分分析的优缺点_线性代数_27是对角的。因此,方程(7.2)是核主成分分析python 核主成分分析的优缺点_核主成分分析python_13的特征值分解(EVD),由于EVD的唯一性,通过计算核主成分分析python 核主成分分析的优缺点_核主成分分析python_13核主成分分析python 核主成分分析的优缺点_核主成分分析python_19最大特征值与它们各自的特征向量,我们得到核主成分分析python 核主成分分析的优缺点_核主成分分析python_31核主成分分析python 核主成分分析的优缺点_矩阵_32。我们将假设核主成分分析python 核主成分分析的优缺点_机器学习_33,否则我们可以减少目标子空间的维度而不损失任何数据信息。为了简单起见,我们定义对角矩阵核主成分分析python 核主成分分析的优缺点_机器学习_34

这使我们能够对于一个给定的观测值 核主成分分析python 核主成分分析的优缺点_矩阵_35只需使用内积就可以计算出 核主成分分析python 核主成分分析的优缺点_矩阵_36的主成分。对于一个新的测量值核主成分分析python 核主成分分析的优缺点_矩阵_35,我们有

核主成分分析python 核主成分分析的优缺点_线性代数_38

将此方程与核主成分分析python 核主成分分析的优缺点_线性代数_39相乘,我们可以得到

核主成分分析python 核主成分分析的优缺点_机器学习_40

注意,这个方程的右边可以通过只涉及数据的内积的数据来计算,即Gram-matrix 核主成分分析python 核主成分分析的优缺点_核主成分分析python_13和内积核主成分分析python 核主成分分析的优缺点_矩阵_42

使数据居中
到目前为止,我们已经假定数据是居中的,也就是说,Gram-matrix 核主成分分析python 核主成分分析的优缺点_核主成分分析python_13来自居中化的数据。这个假设很关键,因为否则方程(7.4)的推导将不成立。现在让我们假设,我们没有可用的居中数据,而Gram-matrix 核主成分分析python 核主成分分析的优缺点_核主成分分析python_13是由非居中数据建立的。好消息是,可以通过以下公式直接从核主成分分析python 核主成分分析的优缺点_核主成分分析python_13推导出对应于中心数据的格拉姆矩阵,例如核主成分分析python 核主成分分析的优缺点_矩阵_46,即

核主成分分析python 核主成分分析的优缺点_机器学习_47

其中核主成分分析python 核主成分分析的优缺点_矩阵_48.


证明:
从方程(1.3)中可以看出,如果核主成分分析python 核主成分分析的优缺点_矩阵_24表示非居中的数据矩阵,那么居中的矩阵由以下公式给出

核主成分分析python 核主成分分析的优缺点_机器学习_50

核主成分分析python 核主成分分析的优缺点_信息检索_51。 由此,可以看出

核主成分分析python 核主成分分析的优缺点_机器学习_52
用对称矩阵的速记符号来表示 核主成分分析python 核主成分分析的优缺点_信息检索_53。我们可以得到

核主成分分析python 核主成分分析的优缺点_线性代数_54


因此,如果我们有来自非中心数据的Gram-matrix,我们可以很容易地计算出对应于中心数据的Gram-matrix(无需明确地将核主成分分析python 核主成分分析的优缺点_矩阵_24居中)。由此,我们可以–如上所述–计算核主成分分析python 核主成分分析的优缺点_矩阵_32核主成分分析python 核主成分分析的优缺点_信息检索_57。为了计算新数据样本核主成分分析python 核主成分分析的优缺点_矩阵_35的主成分,我们首先要根据训练样本把核主成分分析python 核主成分分析的优缺点_矩阵_35居中处理。具体来说,这意味着我们必须从核主成分分析python 核主成分分析的优缺点_矩阵_35减去训练数据的经验平均值核主成分分析python 核主成分分析的优缺点_信息检索_61。然后我们必须用核主成分分析python 核主成分分析的优缺点_信息检索_62替换公式(7.3)和(7.4)中的核主成分分析python 核主成分分析的优缺点_矩阵_24。这就得到了

核主成分分析python 核主成分分析的优缺点_矩阵_64

其中

核主成分分析python 核主成分分析的优缺点_线性代数_65

7.2 向核PCA过渡 (Transition to Kernel PCA)

现在,通过简单地将内积 核主成分分析python 核主成分分析的优缺点_核主成分分析python_66替换为核主成分分析python 核主成分分析的优缺点_机器学习_67来扩展经典的PCA是很简单的。K-PCA的实际成功是由于计算核主成分分析python 核主成分分析的优缺点_机器学习_67时,既不需要核主成分分析python 核主成分分析的优缺点_信息检索_69也不需要核主成分分析python 核主成分分析的优缺点_线性代数_70

核主成分分析python 核主成分分析的优缺点_矩阵_71

这反映了核主成分分析python 核主成分分析的优缺点_机器学习_67的属性,即对于所有核主成分分析python 核主成分分析的优缺点_信息检索_73来说是对称的,并且满足核主成分分析python 核主成分分析的优缺点_矩阵_74 的正定属性。用核主成分分析python 核主成分分析的优缺点_信息检索_75代替核主成分分析python 核主成分分析的优缺点_机器学习_67,因此不需要知道特征映射核主成分分析python 核主成分分析的优缺点_信息检索_69,称为核技巧(Kernel trick)。

Definition 7.1 正定核 (Positive Definite Kernel)

  1. 核主成分分析python 核主成分分析的优缺点_矩阵_78核主成分分析python 核主成分分析的优缺点_机器学习_79如上定义. 带有核主成分分析python 核主成分分析的优缺点_矩阵_80核主成分分析python 核主成分分析的优缺点_矩阵_81核主成分分析python 核主成分分析的优缺点_机器学习_82-矩阵核主成分分析python 核主成分分析的优缺点_核主成分分析python_83 被称为核主成分分析python 核主成分分析的优缺点_核主成分分析python_84的Gram-或Kernel-矩阵,相对于核主成分分析python 核主成分分析的优缺点_矩阵_85
  2. 如果对于所有有限的、非空的集合 核主成分分析python 核主成分分析的优缺点_核主成分分析python_86来说,相应的Gram-matrix是正半定的(正定的),那么这个函数核主成分分析python 核主成分分析的优缺点_机器学习_79被称为核(正定的核)。

在上一小节中,我们讨论了在潜在的希尔伯特空间中的数据居中问题。我们在这里也面临同样的问题。当一个新的数据点出现时,直接计算新数据点的非中心化内积向量与训练数据的关系是很简单的。我们将把它称为

核主成分分析python 核主成分分析的优缺点_矩阵_88

那么,中心化数据的第核主成分分析python 核主成分分析的优缺点_矩阵_15条是

核主成分分析python 核主成分分析的优缺点_信息检索_90

为了找到一个更简洁的表达方式,我们利用标量乘积的线性来得到

核主成分分析python 核主成分分析的优缺点_信息检索_91

而且很容易看出,

核主成分分析python 核主成分分析的优缺点_核主成分分析python_92

总之,对于一个训练集核主成分分析python 核主成分分析的优缺点_线性代数_93

  1. 找到一个合适的内核函数 核主成分分析python 核主成分分析的优缺点_线性代数_94

核主成分分析python 核主成分分析的优缺点_矩阵_95

  1. 计算Gram-matrix 核主成分分析python 核主成分分析的优缺点_机器学习_96,其中核主成分分析python 核主成分分析的优缺点_线性代数_97是居中化的数据。
  2. 计算特征值分解核主成分分析python 核主成分分析的优缺点_线性代数_98。由于核函数的定义,矩阵核主成分分析python 核主成分分析的优缺点_核主成分分析python_83是半正定的,因此核主成分分析python 核主成分分析的优缺点_机器学习_100的对角线项是非负的。因此,我们可以写成 核主成分分析python 核主成分分析的优缺点_线性代数_101.
  3. 定义缩减矩阵 核主成分分析python 核主成分分析的优缺点_核主成分分析python_102核主成分分析python 核主成分分析的优缺点_信息检索_103.
  4. 缩减后的训练数据由以下公式得出

核主成分分析python 核主成分分析的优缺点_矩阵_104

  1. 对于一个新的数据点核主成分分析python 核主成分分析的优缺点_核主成分分析python_105核主成分分析python 核主成分分析的优缺点_线性代数_106核主成分的计算方法是

核主成分分析python 核主成分分析的优缺点_线性代数_107

其中

核主成分分析python 核主成分分析的优缺点_核主成分分析python_108