降维与度量学习

kk-近邻学习

kk 近邻(kk-Nearest Neighbor, kkNN)学习是一种常用的监督学习算法:

  • 给定测试样本,基于某种距离度量
  • 找出训练集中与其最靠近的 kk 个训练样本
    • 在分类任务中使用「投票法」,即选择这 kk 个样本中出现最多的类别作为预测结果
    • 在回归任务中使用「平均法」,即选择这 kk 个样本的实值输出标记的平均值作为预测结果
    • 还可基于距离远近赋予不同的权重,进行加权投票或加权平均,距离越近的样本权重越大

与之前介绍的学习方法相比,kk-近邻学习没有显式的训练过程。

按是否在训练阶段就对样本进行学习处理,有两种学习方法:

  • 急切学习(eager learning):在训练阶段就对样本进行学习处理的方法
  • 懒惰学习(lazy learning):在训练阶段仅仅是把样本保存起来,训练时间开销为零,待收到测试样本后再进行处理
    • kk 近邻学习是懒惰学习方法的著名代表。

kkNN 中 kk 是一个重要的参数。此外若采用不同的距离计算方式,则找出的近邻可能也有显著的差别,导致分类结果有显著不同。下面是一个示意图:

假设距离计算是恰当的,即能够恰当地找出 kk 个近邻,下面对「最近邻分类器」,即 11NN 在二分类问题上的性能做一个简单的讨论。

给定测试样本 x\bm{x},若其最邻近样本为 z\bm{z},则最邻近分类器出错的概率就是 x,z\bm{x}, \bm{z} 类别标记不同的概率,即

P(err)=1cYP(cx)P(cz)P(\text{err}) = 1 - \sum_{c \in \mathcal{Y}}P(c \mid \bm{x}) P(c \mid \bm{z})

假设样本独立同分布,且对任意 x\bm{x} 与任意小正数 δ\delta,在 x\bm{x}δ\delta-邻域内总能找到一个训练样本。

c=arg maxcYP(cx)c^{*} = \argmax\limits_{c \in \mathcal{Y}}P(c \mid \bm{x}) 为贝叶斯最优分类器的结果,有

P(err)=1cYP(cx)P(cz)1cYP2(cx)1P2(cx)=(1+P(cx))(1P(cx))2×(1P(cx))=2P(err)\begin{aligned} P(\text{err}) &= 1 - \sum_{c \in \mathcal{Y}}P(c \mid \bm{x}) P(c \mid \bm{z}) \\ &\simeq 1 - \sum_{c \in \mathcal{Y}} P^2(c \mid \bm{x}) \\ &\le 1 - P^2(c^{*} \mid \bm{x}) \\ &= (1 + P(c^{*} \mid \bm{x}))(1 - P(c^{*} \mid \bm{x})) \\ &\le 2 \times (1 - P(c^{*} \mid \bm{x})) \\ &= 2P(\text{err}^{*}) \end{aligned}

即最近邻分类器虽然很简单,但泛化错误率却不会超过贝叶斯最优分类器的错误率的两倍。

低维嵌入

上面的讨论基于一个重要假设——任意测试样本 x\bm{x} 的任意小的 δ\delta-邻域总能找到一个训练样本,即训练样本的采样密度足够大,或称为「密采样」(dense sample)。

但这个假设在现实任务中通常很难满足。例如若 δ=0.001\delta = 0.001,对单个维度,需要 10001000 个样本点平均分布在归一化后的属性取值范围内,若维数为 2020,需满足密采样条件,则至少需要 (103)20=1060(10^3)^{20} = 10^{60} 个样本。这还仅仅只是维数为 2020 的情况,现实应用中属性维数往往更高。

另外当维数很高时,计算内积也不再容易,会给距离计算带来很大的麻烦。

在高维情形下出现的数据样本稀疏、距离计算困难等问题,是所有机器学习方法共同面临的严重障碍,称为「维数灾难」(curse of dimensionality)。

缓解维数灾难的一个重要途径是降维(dimension reduction, 维数约简),即通过某种数学变换,将原始高维属性空间转变为一个低维「子空间」,使得在该子空间中样本密度更高、距离计算更方便。

降维是合理,是因为很多时候观测或收集到的数据样本虽然是高维的,但与学习任务密切相关的也许仅是某个低维分布,即高维空间中的一个低维「嵌入」(embedding),如下图所示:

若要求原始空间中样本之间的距离在低维空间中得以保持,如上图所示,则得到「多维缩放」(Multiple Dimensional Scaling, MDS)这一种经典降维方法。

假定 mm 个样本在原始空间的距离矩阵为 DRm×m\mathbf{D} \in \R^{m \times m},其中 dij=dist(xi,xj)d_{ij} = \operatorname{dist}(\bm{x}_i, \bm{x}_{j})

目标是获得样本在 dd' 维空间的表示 ZRd×m\mathbf{Z} \in \R^{d' \times m},其中 ddd' \le d,且任意两个样本在 dd' 维空间中的欧氏距离等于原始空间中的距离,即

zizj=dij,i,j\left\lVert \bm{z}_i - \bm{z}_{j} \right\rVert = d_{ij}, \quad \forall i, j

B=ZZRm×m\mathbf{B} = \mathbf{Z}^\intercal \mathbf{Z} \in \R^{m \times m},其中 B\mathbf{B} 为降维后样本的内积矩阵,即 bij=zizjb_{ij} = \bm{z}_i^\intercal \bm{z}_{j}

则有

dij2=zizj2=zi2+zj22zizj=bii+bjj2bij\begin{aligned} d_{ij}^2 &= \left\lVert \bm{z}_i - \bm{z}_{j} \right\rVert^2 \\ &= \left\lVert \bm{z}_i \right\rVert^2 + \left\lVert \bm{z}_{j} \right\rVert^2 - 2\bm{z}_i^\intercal \bm{z}_{j} \\ &= b_{ii} + b_{jj} - 2b_{ij} \end{aligned}

为了便于讨论,令降维后的样本 Z\mathbf{Z} 被中心化,即 i=1mzi=0\displaystyle \sum_{i=1}^{m}\bm{z}_i = \bm{0},则有 B\mathbf{B} 行与列之和均为零,即 i=1mbij=j=1mbij=0\displaystyle \sum_{i=1}^{m}b_{ij} = \sum_{j=1}^{m}b_{ij} = 0

由此可得

{i=1mdij2=tr(B)+mbjjj=1mdij2=tr(B)+mbiii=1mj=1mdij2=2mtr(B)\left\lbrace\begin{aligned} \sum_{i=1}^{m}d_{ij}^2 &= \trace(\mathbf{B}) + m \cdot b_{jj} \\ \sum_{j=1}^{m}d_{ij}^2 &= \trace(\mathbf{B}) + m \cdot b_{ii}\\ \sum_{i=1}^{m}\sum_{j=1}^{m}d_{ij}^2 &= 2m \cdot \trace(\mathbf{B}) \end{aligned}\right.

其中有 tr(B)=i=1mzi2\trace(\mathbf{B}) = \displaystyle \sum_{i=1}^{m}\left\lVert \bm{z}_i \right\rVert^2

{di2=1mj=1mdij2dj2=1mi=1mdij2d2=1m2i=1mj=1mdij2\begin{equation} \left\lbrace\begin{aligned} d_{i \cdot}^2 &= \frac{1}{m}\sum_{j=1}^{m}d_{ij}^2 \\ d_{\cdot j}^2 &= \frac{1}{m}\sum_{i=1}^{m}d_{ij}^2 \\ d_{\cdot \cdot}^2 &= \frac{1}{m^2}\sum_{i=1}^{m}\sum_{j=1}^{m}d_{ij}^2 \end{aligned}\right. \label{1} \end{equation}

则有

bij=12(dij2di2dj2+d2)\begin{equation} b_{ij} = -\dfrac{1}{2}(d_{ij}^2 - d_{i \cdot}^2 - d_{\cdot j}^2 + d_{\cdot \cdot}^2) \label{2} \end{equation}

也就是说,可以通过降维前后保持不变的距离矩阵 D\mathbf{D} 求取内积矩阵 B\mathbf{B}

对内积矩阵 B\mathbf{B} 进行特征值分解,有 B=VΛV\gdef\diag{\operatorname{diag}}\mathbf{B} = \mathbf{V} \mathbf{\Lambda} \mathbf{V}^\intercal,其中 Γ=diag(λ1,,λd)\mathbf{\Gamma} = \diag(\lambda_1, \dots, \lambda_{d}) 为特征值构成的对角矩阵,且 λ1λd\lambda_1 \ge \dots \ge \lambda_d

V\mathbf{V} 为特征向量矩阵,假定其中有 dd^{*} 个非零特征值,构成对角矩阵 Λ=diag(λ1,,λd)\mathbf{\Lambda}_{*} = \diag(\lambda_1, \dots, \lambda_{d^{*}}),令 V\mathbf{V}_{*} 表示相应的特征向量矩阵,则 Z\mathbf{Z} 可表达为

Z=Λ1/2VRd×m\mathbf{Z} = \mathbf{\Lambda}_{*}^{1 / 2}\mathbf{V}_{*}^\intercal \in \R^{d^{*} \times m}

现实应用中为了有效降维,往往仅需降维后的距离与原始空间中的距离尽可能接近,而不必严格相等。此时可取 ddd' \ll d 个最大特征值构成对角矩阵 Λ~=diag(λ1,,λd)\tilde{\mathbf{\Lambda}} = \diag(\lambda_1, \dots, \lambda_{d'}),对应的特征向量矩阵 V~\tilde{\mathbf{V}},则降维后的样本表示为

Z~=Λ~1/2V~Rd×m\tilde{\mathbf{Z}} = \tilde{\mathbf{\Lambda}}^{1 / 2}\tilde{\mathbf{V}}^\intercal \in \R^{d' \times m}

下面是 MDS 算法的描述:

  1. (1)\eqref{1} 计算 di2,dj2,d2d_{i \cdot }^2, d_{\cdot j}^2, d_{\cdot \cdot}^2
  2. (2)\eqref{2} 计算 B\mathbf{B}
  3. B\mathbf{B} 进行特征值分解;
  4. Λ~\tilde{\mathbf{\Lambda}}dd' 个最大特征值构成的对角矩阵,V~\tilde{\mathbf{V}} 为相应的特征向量矩阵;
  5. 输出:Λ~1/2V~Rm×d\tilde{\mathbf{\Lambda}}^{1 / 2}\tilde{\mathbf{V}}^\intercal \in \R^{m \times d'},每行是一个样本的低维坐标。

一般来说,欲获得低维子空间,最简单的是对原始高维空间进行线性变换。给定 dd 维空间中的样本 X=(x1,xm)Rd×m\mathbf{X} = (\bm{x}_1 \dots, \bm{x}_m) \in \R^{d \times m},变换之后得到 ddd' \le d 维空间中的样本

Z=WX\mathbf{Z} = \mathbf{W}^\intercal \mathbf{X}

其中 WRd×d\mathbf{W} \in \R^{d \times d'} 是变换矩阵,ZRd×m\mathbf{Z} \in \R^{d' \times m} 是样本在新空间中的表述。

变换矩阵可视为 dd'dd 维向量,zi=Wxi\bm{z}_i = \mathbf{W} \bm{x}_i 是第 ii 个样本与这 dd' 个基向量分别做内积而得到的 dd' 维属性向量。

换言之,zi\bm{z}_i 是原属性向量 xi\bm{x}_i 在新坐标系 {w1,,wd}\left\lbrace \bm{w}_1, \dots, \bm{w}_{d'} \right\rbrace 中的坐标向量。

wi,wj\bm{w}_i, \bm{w}_{j} 正交,则新坐标系是一个正交坐标系,此时 W\mathbf{W} 为正交变换。

显然新空间中的属性是原空间中属性的线性组合。

基于线性变换来进行降维的方法称为「线性降维方法」,都符合 Z=WX\mathbf{Z} = \mathbf{W}^\intercal \mathbf{X} 的基本形式,不同之处在于对低维子空间的性质有不同要求,相当于对 W\mathbf{W} 施加了不同的约束。

对降维效果的评估,通常是比较降维前后学习器的性能,若性能有所提高则认为降维起到了作用。若将维数降至二维或三维,则可通过可视化技术来直观地判断降维效果。

主成分分析

主成分分析(Principal Component Analysis, PCA)是最常用的一种降维方法。

对于正交属性空间中的样本点,如何用一个超平面对所有样本进行恰当的表达?

  • 最近重构性:样本点到这个超平面的距离都足够近
  • 最大可分性:样本点在这个超平面上的投影尽可能分开

基于这两个性质,能分别得到 PCA 的两种等价推导。

最近重构性

假设数据样本进行了中心化,即 ixi=0\displaystyle \sum_{i}\bm{x}_i = \bm{0},再假定投影变换后得到的新坐标系为 {w1,,wd}\left\lbrace \bm{w}_1, \dots, \bm{w}_d \right\rbrace,其中 wi\bm{w}_i 是标准正交基向量(wi2=1,wiwj=0\left\lVert \bm{w}_i \right\rVert_2 = 1,\, \bm{w}_i^\intercal \bm{w}_{j} = 0)。

若丢弃新坐标系中的部分坐标,即将维度降低到 d<dd' < d,则样本点 xi\bm{x}_i 在低维坐标系中的投影为 zi=(zi1;;zid)\bm{z}_i = (z_{i 1}; \dots; z_{id'}),其中 zij=wjxiz_{ij} = \bm{w}_j^\intercal \bm{x}_ixi\bm{x}_i 在低维坐标系下第 jj 维的坐标。若基于 zi\bm{z}_i 来重构 xi\bm{x}_i,则会得到 x^i=j=1dzijwj\hat{\bm{x}}_i = \displaystyle \sum_{j=1}^{d'} z_{ij}\bm{w}_{j}

考虑整个训练集,原样本点 xi\bm{x}_i 与基于投影重构的样本点 x^i\hat{\bm{x}}_i 之间的距离为

i=1mj=1dzijwjxi22=i=1m(j=1dzijwjxi)(j=1dzijwjxi)=i=1m(j=1dzijwj)(j=1dzijwj)2i=1m(j=1dzijwj)xi+i=1mxixi=i=1mj=1dzij22i=1mj=1dzijwjxi+i=1mxixi=i=1mzizi2i=1mziWxi+constanttr(W(i=1mxixi)W)\begin{aligned} \sum_{i=1}^{m} \left\lVert \sum_{j=1}^{d'}z_{ij}\bm{w}_{j} - \bm{x}_i \right\rVert_2^2 &= \sum_{i=1}^{m} \left( \sum_{j=1}^{d'}z_{ij}\bm{w}_{j} - \bm{x}_i \right)^\intercal \left( \sum_{j=1}^{d'}z_{ij}\bm{w}_{j} - \bm{x}_i \right) \\ &= \sum_{i=1}^{m} \left( \sum_{j=1}^{d'}z_{ij}\bm{w}_{j} \right)^\intercal \left( \sum_{j=1}^{d'}z_{ij}\bm{w}_{j} \right) - 2 \sum_{i=1}^{m} \left( \sum_{j=1}^{d'}z_{ij}\bm{w}_{j} \right)^\intercal \bm{x}_i + \sum_{i=1}^{m} \bm{x}_i^\intercal \bm{x}_i\\ &= \sum_{i=1}^{m} \sum_{j=1}^{d'} z_{ij}^2 - 2 \sum_{i=1}^{m} \sum_{j=1}^{d'} z_{ij}\bm{w}_{j}^\intercal \bm{x}_i + \sum_{i=1}^{m} \bm{x}_i^\intercal \bm{x}_i\\ &= \sum_{i=1}^{m} \bm{z}_i^\intercal \bm{z}_i - 2 \sum_{i=1}^{m}\bm{z}_i^\intercal \mathbf{W}^\intercal \bm{x}_i + \text{constant}\\ &\propto - \trace \left( \mathbf{W}^\intercal \left( \sum_{i=1}^{m}\bm{x}_i \bm{x}_i^\intercal \right) \mathbf{W} \right) \end{aligned}

根据最近重构性,上式应被最小化。考虑到 wj\bm{w}_{j} 是标准正交基,且 ixixi\displaystyle \sum_i \bm{x}_i \bm{x}_i^\intercal 是协方差矩阵,有主成分分析的优化目标

minWtr(WXXW)s.t.WW=I\begin{equation} \min_{\mathbf{W}} - \trace \left( \mathbf{W}^\intercal \mathbf{X} \mathbf{X}^\intercal \mathbf{W} \right) \quad \text{s.t.} \quad \mathbf{W}^\intercal \mathbf{W} = \mathbf{I} \label{3} \end{equation}

其中 X=(x1,,xm)Rd×m\mathbf{X} = (\bm{x}_1, \dots, \bm{x}_m) \in \R^{d \times m}W=[w1,,wd]Rd×d\mathbf{W} = [\bm{w}_1, \dots, \bm{w}_d] \in \R^{d \times d}

最大可分性

样本点 xi\bm{x}_i 在新空间中超平面上的投影为 Wxi\mathbf{W}^\intercal \bm{x}_i。若所有样本点的投影能尽可能分开,则应该使投影后样本点的方差最大化。

投影后样本点的方差为 sumiWxixiW\displaystyle sum_i \mathbf{W}^\intercal \bm{x}_i \bm{x}_i^\intercal \mathbf{W},于是优化目标可写为

maxWtr(WXXW)s.t.WW=I\begin{equation} \max_{\mathbf{W}} \trace \left( \mathbf{W}^\intercal \mathbf{X} \mathbf{X}^\intercal \mathbf{W} \right) \quad \text{s.t.} \quad \mathbf{W}^\intercal \mathbf{W} = \mathbf{I} \label{4} \end{equation}

这与 (3)\eqref{3} 是等价的。

求解

使用拉格朗日乘子法可得

XXW=λW\mathbf{X} \mathbf{X}^\intercal \mathbf{W} = \lambda \mathbf{W}

于是只需对协方差矩阵 XX\mathbf{X} \mathbf{X}^\intercal 进行特征值分解[1],将求得特征值进行排序 λ1λd\lambda_1 \ge \dots \lambda_d,再取前 dd' 个特征值对应的特征向量构成 W=(w1,,wd)\mathbf{W} = (\bm{w}_1, \dots, \bm{w}_{d'}),这就是主成分分析的解。

PCA 算法描述如下:

  1. 对所有样本进行中心化:xixi1mi=1mxi\bm{x}_i \gets \bm{x}_i - \displaystyle \frac{1}{m}\sum_{i=1}^{m}\bm{x}_i
  2. 计算样本的协方差矩阵 XX\mathbf{X} \mathbf{X}^\intercal
  3. 对协方差矩阵进行特征值分解;
  4. 取前 dd' 个最大特征值对应的特征向量 w1,,wd\bm{w}_1, \dots, \bm{w}_{d'}
  5. 输出:投影矩阵 W=(w1,,wd)\mathbf{W}^{*} = (\bm{w}_1, \dots, \bm{w}_{d'})

降维后低维空间的维数 dd' 通常是由用户事先指定,或通过在 dd' 值不同的低维空间中对 kk 近邻分类器(或其他开销较小的学习器)进行交叉验证,来选取较好的 dd' 值。

对 PCA,还可从重构的角度设置一个重构阈值 tt(例如 95%95\%),然后选取使下式成立的最小 dd' 值:

i=1dλii=1dλit\frac{\sum_{i=1}^{d'}\lambda_i}{\sum_{i=1}^{d}\lambda_i} \ge t

PCA 仅需保留 W\mathbf{W}^{*} 与样本的均值向量(均值向量是为了中心化),即可通过简单的向量减法与矩阵-向量乘法,将新样本投影至低维空间中。

低维空间与原始高维空间必有不同,因为对应的最小的 ddd - d' 个特征值的特征向量被舍弃了,这也是降维导致的结果。但舍弃这部分信息往往是必要的:一方面,舍弃这部分信息之后能使样本的采样密度增大,这正是降维的重要动机;另一方面,当数据受到噪声影响时,最小的特征值所对应的特征向量往往与噪声有关,将它们舍弃能在一定程度上起到去噪的效果。

核化线性降维

线性降维方法假设从高维空间到低维空间的函数映射是线性的,然而,在不少现实任务中,可能需要非线性映射才能找到恰当的低维嵌:

其中将「原本采样」的低维空间称为「本真」(intrinsic)低维空间,以区别于降维后的低维空间。

非线性降维的一种常用方法,就是基于核技巧对线性降维方法进行「核化」。下面是核主成分分析(Kernelized PCA, KPCA)的描述。

假定我们将在高维特征空间中把数据投影到由 W=(w1,,wd)\mathbf{W} = (\bm{w}_1, \dots, \bm{w}_d) 确定的超平面上,则对于 wj\bm{w}_{j}

(i=1mzizi)wj=λjwj\left( \sum_{i=1}^{m}\bm{z}_i \bm{z}_i^\intercal \right) \bm{w}_{j} = \lambda_j \bm{w}_{j}

其中 zi\bm{z}_i 是样本点 xi\bm{x}_i 在高维特征空间中的像。

αij=1λjziW\bm{\alpha}_i^{j} = \dfrac{1}{\lambda_{j}} \bm{z}_i^\intercal \mathbf{W},有

wj=1λj(i=1mzizi)wj=i=1mziziwjλj=i=1mziαij\begin{aligned} \bm{w}_{j} = \dfrac{1}{\lambda_{j}} \left( \sum_{i=1}^{m} \bm{z}_i \bm{z}_i^\intercal \right) \bm{w}_{j}\\ &= \sum_{i=1}^{m} \bm{z}_i \dfrac{\bm{z}_i^\intercal \bm{w}_{j}}{\lambda_{j}}\\ &= \sum_{i=1}^{m} \bm{z}_i \alpha_i^{j} \end{aligned}

假定 zi\bm{z}_i 是由原始属性空间中的样本点 xi\bm{x}_i 通过映射 ϕ\phi 产生的,即

zi=ϕ(xi),i=1,2,,m.\bm{z}_i = \phi(\bm{x}_i)\quad ,\,i=1, 2, \dots, m.

ϕ\phi 能被显式表达出来,则通过它将样本映射至高维空间,再在特征空间中实施 PCA 即可,即有

(i=1mϕ(xi)ϕ(xi))wj=λjwj\left( \sum_{i=1}^{m} \phi(\bm{x}_i) \phi(\bm{x}_i)^\intercal \right) \bm{w}_{j} = \lambda_{j} \bm{w}_{j}

wj=i=1mϕ(xi)αij\bm{w}_{j} = \sum_{i=1}^{m} \phi(\bm{x}_i) \alpha_i^{j}

对于 W\mathbf{W} 即为 W=i=1mziαi\mathbf{W} = \displaystyle \sum_{i=1}^{m} \bm{z}_i \bm{\alpha}_i

一般情形下不清楚 ϕ\phi 的具体形式,因此引入核函数

κ(xi,xj)=ϕ(xi)ϕ(xj)\kappa(\bm{x}_i, \bm{x}_{j}) = \phi(\bm{x}_i)^\intercal \phi(\bm{x}_{j})

又由 wj\bm{w}_{j} 的值,代入优化式可得

Kαj=λjαj\mathbf{K} \bm{\alpha}^{j} = \lambda_{j} \bm{\alpha}^{j}

其中 K\mathbf{K}κ\kappa 对应的核矩阵,有 (K)ij=κ(xi,xj)(\mathbf{K})_{ij} = \kappa(\bm{x}_i, \bm{x}_{j})αj=(α1j;;αmj)\bm{\alpha}^{j} = (\alpha_1^{j}; \dots; \alpha_m^{j})

上式为特征值分解问题,取 K\mathbf{K} 最大的 dd' 个特征值对应的特征向量即可。

对新样本 x\bm{x},其投影后第 jj 维坐标为

zj=wjϕ(x)=i=1mαijϕ(xi)ϕ(x)=i=1mαijκ(xi,x)\begin{aligned} z_{j} &= \bm{w}_{j}^\intercal \phi(\bm{x}) \\ &= \sum_{i=1}^{m} \alpha_i^{j} \phi(\bm{x}_i)^\intercal \phi(\bm{x})\\ &= \sum_{i=1}^{m} \alpha_i^{j} \kappa(\bm{x}_i, \bm{x}) \end{aligned}

其中 αi\bm{\alpha}_i 已经过规范化。

可见,为获得投影后的坐标,KPCA 需对所有样本求和,因此它的计算开销较大。

上述推导的书上版本

书上的推导直接使用了 W\mathbf{W}。假定我们将在高维特征空间中把数据投影到由 W\mathbf{W} 确定的超平面上,即 PCA 欲求解

(i=1mzizi)W=λW\left( \sum_{i=1}^{m} \bm{z}_i \bm{z}_i^\intercal \right) \mathbf{W} = \lambda \mathbf{W}

其中 zi\bm{z}_i 是样本点 xi\bm{x}_i 在高维特征空间中的像。

αi=1λziW\bm{\alpha}_i = \dfrac{1}{\lambda} \bm{z}_i^\intercal \mathbf{W},有

W=1λ(i=1mzizi)W=i=1mziziWλ=i=1mziαi\begin{aligned} \mathbf{W} = \dfrac{1}{\lambda} \left( \sum_{i=1}^{m}\bm{z}_i \bm{z}_i^\intercal \right) \mathbf{W}\\ &= \sum_{i=1}^{m} \bm{z}_i \dfrac{\bm{z}_i^\intercal \mathbf{W}}{\lambda}\\ &= \sum_{i=1}^{m} \bm{z}_i \bm{\alpha}_i \end{aligned}

zi=ϕ(xi)\bm{z}_i = \phi(\bm{x}_i) 可得 PCA 欲求解的式子进一步有

(i=1mϕ(xi)ϕ(xi))W=λW\left( \sum_{i=1}^{m} \phi(\bm{x}_i) \phi(\bm{x}_i)^\intercal \right) \mathbf{W} = \lambda \mathbf{W}

W=i=1mϕ(xi)αi\mathbf{W} = \sum_{i=1}^{m} \phi(\bm{x}_i) \bm{\alpha}_i

引入核函数后代入化简欲求解的式子为

KA=λA\mathbf{K} \mathbf{A} = \lambda \mathbf{A}

其中 K\mathbf{K} 为核矩阵,A=(αi;;αm)\mathbf{A} = (\bm{\alpha}_i; \dots; \bm{\alpha}_m)

上式为特征值分解问题,取 K\mathbf{K} 最大的 dd' 个特征值对应的特征向量即可。

对新样本 x\bm{x}

z=Wϕ(x)=i=1mαiϕ(xi)ϕ(x)=i=1mαiκ(xi,x)\begin{aligned} \bm{z} &= \mathbf{W}^\intercal \phi(\bm{x})\\ &= \sum_{i=1}^{m} \bm{\alpha}_i \phi(\bm{x}_i)^\intercal \phi(\bm{x})\\ &= \sum_{i=1}^{m} \bm{\alpha}_i \kappa(\bm{x}_i, \bm{x}) \end{aligned}

其中 αi\bm{\alpha}_i 已经过规范化。

流形学习

流形学习(manifold learning)是一类借鉴了拓扑流形概念的降维方法。「流形」是在局部与欧氏空间同胚的空间,换言之,它在局部具有欧氏空间的性质,能用欧氏距离来进行距离计算。

若低维流形嵌入到高维空间中,则数据样本在高维空间的分布虽然看上去非常复杂,但在局部上仍具有欧氏空间的性质,因此,可以容易地在局部建立降维映射关系,然后再设法将局部映射关系推广到全局。

当维数被降至二维或三维时,能对数据进行可视化展示,因此流形学习也可被用于可视化。

等度量映射

等度量映射(Isometric Mapping, Isomap)的基本出发点,是认为低维流形嵌入到高维空间之后,直接在高维空间中计算直线距离具有误导性,因为高维空间中的直线距离在低维嵌入流形上不可达。

低维嵌入流形上两点间的本真距离是「测地线」(geodesic) 距离。

测地线距离的计算:利用流形在局部上与欧氏空间同胚这个性质,对每个点基于欧氏距离找出其近邻点,然后就能建立一个近邻连接图,图种近邻点之间存在连接,而非近邻点之间不存在连接,于是,计算两点之间测地线距离的问题,就转变为计算近邻连接图上两点之间的最短路径问题。

最短路径的计算可通过 Dijkstra 算法或 Floyd 算法来实现。得到距离后可通过多维缩放方法(MDS)获得样本点在低维空间中的坐标。

Isomap 算法描述如下:

Isomap 仅是得到了训练样本在低维空间的坐标,但对于新样本,如何将其映射到低维空间呢?

这个问题的常用解决方案,是将训练样本的高维空间坐标作为输入,低维空间坐标作为输出,训练一个回归学习器对新样本的低维空间坐标进行预测。

这仅是一个权宜之计,目前似乎没有更好的办法。

对近邻图的构建通常有两种做法:

  1. 指定近邻点个数:如欧式距离最近的 kk 个点为近邻点,这样得到的近邻图称为 kk 近邻图;
  2. 指定距离阈值:距离小于阈值 ϵ\epsilon 的点被认为是近邻点,这样得到的近邻图称为 ϵ\epsilon 近邻图。

不足:

  • 若近邻范围指定得较大,则距离很远的点可能被误认为近邻,这样就出现「短路」问题;
  • 若近邻范围指定得较小,则近邻图可能不连通,这样就出现「断路」问题。

局部线性嵌入

局部线性嵌入(Locally Linear Embedding, LLE)试图保持邻域内样本之间的线性关系。

假定样本点 xi\bm{x}_i 能通过它的邻域样本 xj,xk,xl\bm{x}_{j}, \bm{x}_{k}, \bm{x}_l 的坐标通过线性组合 xi=wijxj+wikxk+wilxl\bm{x}_i = w_{ij}\bm{x}_{j} + w_{ik}\bm{x}_{k} + w_{il}\bm{x}_{l} 而重构出来,LLE 希望这样的关系在低维空间中得以保持,如下图所示:

LLE 先为每个样本 xi\bm{x}_i 找到其近邻下标集合 QiQ_i,然后计算出基于 QiQ_i 中的样本点对 xi\bm{x}_i 进行线性重构的系数 wi\bm{w}_i

minw1,,wmi=1mxijQiwijxj22s.t.jQiwij=1\min_{\bm{w}_1, \dots, \bm{w}_m} \sum_{i=1}^{m} \left\lVert \bm{x}_i - \sum_{j \in Q_i}w_{ij}\bm{x}_j \right\rVert_2^2\quad \text{s.t.} \quad \sum_{j \in Q_i}w_{ij} = 1

其中 xi,xj\bm{x}_i, \bm{x}_{j} 已知,令 Cjk=(xixj)(xixk)C_{jk} = (\bm{x}_i - \bm{x}_j)^\intercal(\bm{x}_i - \bm{x}_{k}),则 wijw_{ij} 有闭式解

wij=kQiCjk1l,sQiCls1w_{ij} = \dfrac{\sum_{k \in Q_i}C_{jk}^{-1}}{\sum_{l, s \in Q_i}C_{ls}^{-1}}

LLE 在低维空间中保持 wi\bm{w}_i 不变,于是 xi\bm{x}_i 对应的低维空间坐标 zi\bm{z}_i 可通过下式求解:

minz1,,zmi=1mzijQiwijzj22\min_{\bm{z}_1, \dots, \bm{z}_m} \sum_{i=1}^{m} \left\lVert \bm{z}_i - \sum_{j \in Q_i}w_{ij}\bm{z}_j \right\rVert_2^2

这与上面的优化目标同形,区别是优化目标需确定的是 wi\bm{w}_i,而这里则是 xi\bm{x}_i 对应的低维空间坐标 zi\bm{z}_i

Z=(z1,,zm)Rd×m,W=(wij)Rm×m\mathbf{Z} = (\bm{z}_1, \dots, \bm{z}_m) \in \R^{d' \times m},\, \mathbf{W} = (w_{ij}) \in \R^{m \times m},则有

M=(IW)(IW)\mathbf{M} = (\mathbf{I} - \mathbf{W})^\intercal(\mathbf{I} - \mathbf{W})

可将求解式子重写为

minZtr(ZMZ)s.t.ZZ=I\min_{\mathbf{Z}} \trace(\mathbf{Z} \mathbf{M} \mathbf{Z}^\intercal)\quad \text{s.t.} \quad \mathbf{Z}\mathbf{Z}^\intercal = \mathbf{I}

上式可通过特征值分解求解:M\mathbf{M} 最小的 dd' 个特征值对应的特征向量组成的矩阵即为 Z\mathbf{Z}^\intercal

LLE 算法描述如下:

算法第 4 行显示出,对于不在样本 xi\bm{x}_i 邻域区域的样本 xj\bm{x}_{j},无论其如何变化都对 xi,zi\bm{x}_i, \bm{z}_i 没有任何影响,即「将变动限制在局部」的思想。

度量学习

在机器学习中,对高维数据进行降维的主要目的是希望找到一个合适的低维空间,在此空间中进行学习能比原始空间性能更好。事实上,每个空间对应了在样本属性上定义的一个距离度量,而寻找合适的空间,实质上就是在寻找一个合适的距离度量。那么,为何不直接尝试「学习」出一个合适的距离度量呢?

欲对距离度量进行学习,必须有一个便于学习的距离度量表达形式。

对两个 dd 维样本 xi,xj\bm{x}_i, \bm{x}_{j},它们之间的平方欧氏距离可写为

disted2(xi,xj)=xixj22=dij,12++dij,d2\operatorname{dist}_{\text{ed}}^2(\bm{x}_i, \bm{x}_{j}) = \left\lVert \bm{x}_i - \bm{x}_{j} \right\rVert_2^2 = d_{ij, 1}^2 + \dots + d_{ij, d}^2

其中 dij,k=xikxjk2d_{ij, k} = \left\lVert \bm{x}_{ik} - \bm{x}_{jk} \right\rVert_2xi,xj\bm{x}_i, \bm{x}_{j} 在第 kk 维上的距离。

假定不同属性的重要性不同,则可引入属性权重 w\bm{w} 得到

distwed2(xi,xj)=w1dij,12++wddij,d2=(xixj)W(xixj)\begin{aligned} \operatorname{dist}_{\text{wed}}^2(\bm{x}_i, \bm{x}_{j}) &= w_1 \cdot d_{ij, 1}^2 + \dots + w_d \cdot d_{ij, d}^2\\ &= (\bm{x}_i - \bm{x}_{j})^\intercal \mathbf{W} (\bm{x}_i - \bm{x}_{j}) \end{aligned}

其中 wi0w_i \ge 0W=diag(w)\mathbf{W} = \operatorname{diag}(\bm{w}) 是一个对角矩阵,(W)ii=wi(\mathbf{W})_{ii} = w_i,可通过学习确定。

由于 W\mathbf{W} 非对角元素均为零,这意味着坐标轴是正交的,即属性之间无关。但现实问题往往不是这样的。

为此,将 W\mathbf{W} 替换为一个普通的半正定对称矩阵 M\mathbf{M},就得到了马氏距离(Mahalanobis distance):

distmah2(xi,xj)=(xixj)M(xixj)=xixjM2\begin{aligned} \operatorname{dist}_{\text{mah}}^2(\bm{x}_i, \bm{x}_{j}) &= (\bm{x}_i - \bm{x}_{j})^\intercal \mathbf{M} (\bm{x}_i - \bm{x}_{j})\\ &= \left\lVert \bm{x}_i - \bm{x}_{j} \right\rVert_{\mathbf{M}}^2 \end{aligned}

其中 M\mathbf{M} 亦称为「度量矩阵」。

度量学习则是对 M\mathbf{M} 进行学习。

为了保持距离非负且对称,M\mathbf{M} 必须是半正定对称矩阵,即必有正交基 P\mathbf{P} 使得 M=PP\mathbf{M} = \mathbf{P} \mathbf{P}^\intercal,这部分可参见《线性代数》的笔记「实二次型」

M\mathbf{M} 的学习要设置一个目标,假定我们是希望提高近邻分类器的性能,则可将 M\mathbf{M} 直接嵌入到近邻分类器的评价指标中去,通过优化该性能指标相应地求得 M\mathbf{M}


  1. 实践中常通过对 X\mathbf{X} 进行奇异值分解代替对协方差矩阵的特征值分解。 ↩︎