统计机器学习 19:降维

墨尔本大学 COMP90051 课程笔记

Posted by YEY on November 24, 2019

Lecture 19 降维

主要内容

  • 主成成分分析(PCA)
    • 线性降维方法
    • 对角化协方差矩阵
  • 核化 PCA

1. 关于降维

1.1 数据的真实维度?

1.2 降维

  • 之前我们介绍了无监督学习中的一类常见任务:聚类
  • 降维 是指使用 较少数量的变量(维度)来表示数据,同时保留数据中我们 “感兴趣的” 结构
  • 通过降维,我们可以达到以下目的:
    • 可视化(例如,将高维数据映射到 2D)
    • 提高 pipeline 中的 计算效率
    • 提升 pipeline 中的数据压缩或者 统计效率

1.3 探索数据结构

  • 一般而言,降维会导致信息丢失
  • 诀窍是确保大部分我们 “感兴趣的” 信息被保留下来,而丢失的大部分都属于噪声
  • 这通常是可能的,因为相比那些记录的变量,真实数据具有的 内在维度可能要少得多
  • 例子: GPS 坐标是 3D 的,而平坦道路上的汽车定位实际是在 2D 流形上的

2. 主成成分分析(PCA)

寻找一种数据的旋转方式使得(新)变量之间的协方差最小化

2.1 主成成分分析

  • 主成成分分析(PCA)是普遍用于降维和数据分析的一种常用方法
  • 给定一个数据集 $\boldsymbol x_1,…,\boldsymbol x_n$,其中 $\boldsymbol x_i\in \boldsymbol R^m$,PCA 的目标是找到一个新的坐标系,使得大部分方差都集中在第一个坐标轴上,然后剩下的大部分方差都集中在第二个坐标轴上,以此类推
  • 然后,降维是基于 丢弃坐标 实现的,我们仅保留前 $l$ 个坐标,丢弃后面的其余坐标($l< m$)

2.2 朴素 PCA 算法

朴素 PCA 算法描述:
1.$\,$选择一个方向 作为新的坐标轴,使得方差沿着该坐标轴是最大化的
2.$\,$选择下一个方向 / 坐标轴垂直于当前所有的坐标轴,使得(余下的)方差着该坐标轴是最大化的
3.$\,$重复步骤 2,直到你得到了和原始数据中同样数量的坐标轴(即,维度)
4.$\,$将原始数据 投影 到这些新的坐标轴上,从而得到新的坐标(“PCA 坐标”)
5.$\,$对于每个数据点,仅保留 前 $l$ 个坐标

如果可以直接实现,那么该算法是有效的,但是,我们还有其他更好的解决方案

2.3 问题描述

  • PCA 的核心是寻找一个新的坐标系,使得大部分方差都被 “早先的” 几个坐标轴捕获到
  • 现在,让我们将这一目标的正式形式写出来,看一下如何实现
  • 首先,回忆点积的几何定义 $\boldsymbol u\cdot \boldsymbol v=u_{\boldsymbol v}\|\boldsymbol v\|$
  • 假设 $\|\boldsymbol v\|=1$,那么 $\boldsymbol u\cdot \boldsymbol v=u_{\boldsymbol v}$
  • 向量 $\boldsymbol v$ 可以被视为一个候选的坐标 ,$u_{\boldsymbol v}$ 可以被视为点 $\boldsymbol u$ 的 坐标

2.4 数据变换

  • 所以,新的 坐标系 是一个向量的集合 $\boldsymbol p_1,…,\boldsymbol p_m$,其中每个 $\|\boldsymbol p_i\|=1$
  • 考虑一个原始的数据点 $\boldsymbol x_j\;(j=1,…,n)$ 和一个主轴 $\boldsymbol p_i\;(i=1,…,m)$
  • 第一个数据点在经过变换之后,其对应的第 $i$ 个坐标为 $(\boldsymbol p_i)’(\boldsymbol x_1)$
    • 对于第二个数据点,则为 $(\boldsymbol p_i)’(\boldsymbol x_2)$,以此类推
  • 将所有这些数字整理为一个向量

    \[\left[(\boldsymbol p_i)'(\boldsymbol x_1),...,(\boldsymbol p_i)'(\boldsymbol x_n)\right]'=\left((\boldsymbol p_i)'\boldsymbol X\right)'=\boldsymbol X'\boldsymbol p_i\]

    其中,$\boldsymbol X$ 的列中具有原始的数据点

2.5 复习:基础统计知识

  • 考虑一个随机变量 $U$ 和相应的样本 $\boldsymbol u=[u_1,…,u_n]’$

  • 样本均值为:$\overline u \equiv \dfrac{1}{n}\sum_{i=1}^{n}u_i\qquad$ 样本方差为:$\dfrac{1}{n-1}\sum_{i=1}^{n}(u_i-\overline u)^2$

  • 假设事先已经减掉了均值(即样本是 居中的),在这种情况下,方差是一个经过缩放的点积 $\dfrac{1}{n-1}\boldsymbol u’\boldsymbol u$

  • 类似地,如果我们有一个来自另一个随机变量的居中随机样本 $\boldsymbol v$,那么样本方差为 $\dfrac{1}{n-1}\boldsymbol u’\boldsymbol v$

  • 最后,如果我们的数据为 $\boldsymbol x_1=[u_1,v_1]’,…,\boldsymbol x_n=[u_n,v_n]’$,将其整合为一个矩阵 $\boldsymbol X$,其中列是数据,行是居中变量。我们可以得到 协方差矩阵 为 $\mathbf \Sigma_{\boldsymbol X}\equiv \dfrac{1}{n-1}\boldsymbol X\boldsymbol X’$

2.6 PCA 的目标

  • 我们应当假设数据是居中的
  • 让我们从第一个主轴的目标开始,数据在这个主轴上的投影为 $\boldsymbol X’\boldsymbol p_1$
  • 因此,沿该主轴的方差为

    \[\dfrac{1}{n-1}\left(\boldsymbol X'\boldsymbol p_1\right)'\left(\boldsymbol X'\boldsymbol p_1\right)=\dfrac{1}{n-1}\boldsymbol p_1'\boldsymbol X\boldsymbol X'\boldsymbol p_1=\boldsymbol p_1'\mathbf \Sigma_{\boldsymbol X}\boldsymbol p_1\]
    • 这里,$\mathbf \Sigma_{\boldsymbol X}$ 是原始数据的协方差矩阵
  • 因此,PCA 应该找到使得 $\boldsymbol p_1’\mathbf \Sigma_{\boldsymbol X}\boldsymbol p_1$ 最大化的 $\boldsymbol p_1$,其中 $\|\boldsymbol p_1\|=1$

2.7 解决这个优化问题

  • PCA 的目标是找到 $\boldsymbol p_1$ 使得 $\boldsymbol p_1’\mathbf \Sigma_{\boldsymbol X}\boldsymbol p_1$ 最大化,其中 $\|\boldsymbol p_1\|=\boldsymbol p_1’\boldsymbol p_1=1$

  • 约束 $\to$ 拉格朗日乘子
    引入拉格朗日乘子 $\lambda_1$,令拉格朗日函数的一阶导数为零,求解

    \[L=\boldsymbol p_1'\mathbf \Sigma_{\boldsymbol X}\boldsymbol p_1-\lambda_1(\boldsymbol p_1'\boldsymbol p_1-1)\] \[\dfrac{\partial L}{\partial \boldsymbol p_1}=2\mathbf \Sigma_{\boldsymbol X}\boldsymbol p_1-2\lambda_1\boldsymbol p_1=0\] \[\mathbf \Sigma_{\boldsymbol X}\boldsymbol p_1=\lambda_1\boldsymbol p_1\]
  • 定义 $\boldsymbol p_1$ 为 特征向量,$\lambda_1$ 为对应的 特征值

2.8 复习:特征向量

  • 给定一个方阵 $\boldsymbol A$,一个列向量 $\boldsymbol e$
    如果满足 $\boldsymbol {Ae}=\lambda \boldsymbol e$
    那么向量 $\boldsymbol e$ 被称为 方阵 $\boldsymbol A$ 的特征向量
    这里,$\lambda$ 是对应的特征值

  • 几何解释:将 $\boldsymbol {Ae}$ 与前面的 $\boldsymbol {px}_i$ 进行对比。这里,对于某个向量 $\boldsymbol e$ 而言,$\boldsymbol A$ 是一个变换矩阵(“新轴”),使得向量 $\boldsymbol e$ 在经过变换后仍然指向相同的方向。

2.9 复习:特征值

  • 代数解释:如果 $\boldsymbol {Ae}=\lambda \boldsymbol e$,那么 $(\boldsymbol A-\lambda \boldsymbol I)\boldsymbol e=0$,其中 $\boldsymbol I$ 是单位矩阵
  • 当且仅当行列式 $|\boldsymbol A-\lambda \boldsymbol I|=0$ 时,上面的等式具有非零解 $\boldsymbol e$
    而方程 $|\boldsymbol A-\lambda \boldsymbol I|=0$ 被称为特征方程,该方程的根 $\lambda$ 被称为特征值
  • 特征向量和特征值是线性代数中的重要概念,并出现在许多实际应用中
  • 矩阵的 谱(Spectrum)是其特征值的集合
  • 有一些用于高效计算特征向量的算法

2.10 主成成分捕捉到的方差

  • 总结:我们选择 $\boldsymbol p_1$ 作为中心协方差矩阵 $\mathbf \Sigma_{\boldsymbol X}$ 的最大特征值的特征向量
  • 被 $\boldsymbol p_1$ 所捕获的数据的方差:
    • 注意,我们已经表明了 $\lambda_1=\boldsymbol p_1’\mathbf \Sigma_{\boldsymbol X}\boldsymbol p_1$
    • 但是,$\boldsymbol p_1’\mathbf \Sigma_{\boldsymbol X}\boldsymbol p_1$ 是投影数据的方差
      $\to$ 第一 特征值 是捕获到的 方差
  • 选择维度位于 碎石图(scree plot) 中的 “拐点” 处

2.11 PCA 的高效求解

  • 相同的模式可以用来寻找所有的主成成分
    • 约束 $\|\boldsymbol p_i\|=1$ 避免了方差 $\boldsymbol p_i’\mathbf \Sigma_{\boldsymbol X}\boldsymbol p_i$ 因为重新缩放 $\boldsymbol p_i$ 导致的发散
    • 每次我们都会增加额外的约束,使得下一个主成成分与所有先前的主成成分正交。等效地,我们搜索它们的补集。
  • 方法是:将 $\boldsymbol p_i$ 设为中心数据协方差矩阵 $\mathbf \Sigma_{\boldsymbol X}$ 的 所有特征向量,按照 特征值降序排列
  • 真的对于任何 $\mathbf \Sigma_{\boldsymbol X}$ 都可行吗?
  • 引理: 一个 $m\times m$ 的实对称矩阵有 $m$ 个实特征值,并且它们对应的特征向量都正交。
  • 引理: 一个 PSD(半正定)矩阵还具有非负特征值。

2.12 PCA 总结

  • 假设数据点被排列在矩阵 $\boldsymbol X$ 的列中,这意味着变量在矩阵的行中。
  • 确保数据是居中的:从每一行中减去平均行(数据中心)
  • 我们寻找一组正交基 $\boldsymbol p_1,…,\boldsymbol p_m$
    • 每个基向量都具有单位长度,并且它们彼此之间互相垂直
  • 寻找中心数据协方差矩阵 $\mathbf \Sigma_{\boldsymbol X}\equiv \dfrac{1}{n-1}\boldsymbol X\boldsymbol X’$ 的特征值
    • 总是可行的,并且相当高效
  • 将特征值从大到小排列
    • 每个特征值都等于数据沿着对应主成成分方向上的方差
  • 将 $\boldsymbol p_1,…,\boldsymbol p_m$ 设为对应的特征向量
  • 将数据 $\boldsymbol X$ 投影到这些新的坐标轴上,从而得到变换数据的坐标
  • 仅保留前 $s$ 个坐标实现降维
  • PCA 的另一种视角:$s$-维的平面 最小化了数据的残差平方和(该平面其实就是由所选择的 $s$ 个主成成分所张成的线性空间)

2.13 PCA vs. 线性回归

2.14 PCA 的额外效应

  • PCA 的目的是寻找坐标轴,使得沿每个后续坐标轴的方差最大化
  • 考虑两个候选坐标轴 $i$ 和 $(i+1)$。非正式地,如果它们之间存在相关性,那么意味着轴 $i$ 可以进一步旋转以捕获更多方差
  • PCA 应该最终找到新的坐标轴(即变换),使得 变换后的数据不相关

2.15 对称矩阵的谱定理

  • 为了进一步探讨这种效应,我们需要参考线性代数的基本结果之一
    • 相关证明超出了范围,不在这里讨论
    • 这是奇异值分解(SVD)定理的一个特例
  • 定理: 对于任何实对称矩阵 $\mathbf \Sigma_{\boldsymbol X}$,总是存在一个行向量由 $\mathbf \Sigma_{\boldsymbol X}$ 的特征向量组成的实正交矩阵 $\boldsymbol P$,以及一个由 $\mathbf \Sigma_{\boldsymbol X}$ 的特征值组成的对角矩阵 $\boldsymbol \Lambda$,使得 $\mathbf \Sigma_{\boldsymbol X}=\boldsymbol P’ \boldsymbol \Lambda \boldsymbol P$

2.16 对角化协方差矩阵

  • 构造变换矩阵 $\boldsymbol P$,其行向量是特征向量(新的坐标轴)
    • 通过我们的问题表述,$\boldsymbol P$ 是一个正交矩阵
  • 注意到 $\boldsymbol P’\boldsymbol P=\boldsymbol I$,其中 $\boldsymbol I$ 是单位矩阵
    • 关于这点,可以回想一下,矩阵乘法结果中的每个元素都是对应行和列的点积
    • 所以,$\boldsymbol P’\boldsymbol P$ 中的元素 $(i,j)$ 是点积 $\boldsymbol p_i’\boldsymbol p_j$,如果 $i=j$ 则其值为 $1$,否则为 $0$
  • 变换后的数据为 $\boldsymbol P\boldsymbol X$
    • 和上面类似,注意到 $\boldsymbol P\boldsymbol X$ 中的元素 $(i,j)$ 是点积 $\boldsymbol p_i’\boldsymbol x_j$,也就是 $\boldsymbol x_j$ 在轴 $\boldsymbol p_i$ 上的投影,即第 $j$ 个点的新的第 $i$ 个坐标
  • 变换后的数据的协方差为

    \[\mathbf \Sigma_{\boldsymbol{PX}}\equiv \dfrac{1}{n-1}(\boldsymbol{PX})(\boldsymbol{PX})'=\dfrac{1}{n-1}(\boldsymbol{PX})(\boldsymbol X'\boldsymbol P')=\boldsymbol P\mathbf \Sigma_{\boldsymbol{X}}\boldsymbol P'\]
  • 根据谱分解定理,我们可以得到 $\mathbf \Sigma_{\boldsymbol{X}}=\boldsymbol P’\boldsymbol \Lambda \boldsymbol P$
  • 因此

    \[\mathbf \Sigma_{\boldsymbol{PX}}=\boldsymbol P\boldsymbol P'\boldsymbol \Lambda \boldsymbol P\boldsymbol P'=\boldsymbol \Lambda\]
  • 变换后的数据的协方差矩阵是对角矩阵,其对角线上的元素就是矩阵 $\boldsymbol \Lambda$ 对角线上的特征值
  • 变换后的数据是不相关的

2.17 非线性数据和核化 PCA

  • 低维近似不必是线性的
  • 核化 PCA:将数据映射到特征空间,然后使用 PCA
    • 用数据点表示主成成分。求解过程利用了 $\boldsymbol X’\boldsymbol X$ 可以被核函数化 $(\boldsymbol X’\boldsymbol X)_{ij}=K(\boldsymbol x_i,\boldsymbol x_j)$
    • 求解策略不同于常规 PCA
    • 模块化:更改核函数会导致不同的特征空间变换

总结

  • 主成成分分析
    • 线性降维方法
    • 对角化协方差矩阵
  • 核化 PCA
知识共享许可协议本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 欢迎转载,并请注明来自:YEY 的博客 同时保持文章内容的完整和以上声明信息!