904数据结构与机器学习考试复习[机器学习部分]——降维与度量学习

904数据结构与机器学习考试复习[机器学习部分]——降维与度量学习

降维与度量学习:
(一)低维嵌入
(二)主成分分析和核化线性降维
(三)流形学习
(四)度量学习

(零)前置知识

标准正交基的应用

  在一个坐标系中,任意向量等于其在各个坐标轴的坐标值乘以相应坐标轴单位向量之和。
  例如,在二维直接坐标系中,\(x\)轴和\(y\)轴的单位向量分别为\(v_1 = (1;0)\)\(v_2 = (0;1)\),向量\(r = (2;3)\)可以表示为\(r = 2v_1 + 3v_2\); 从本质上说,\(v_1=(1;0)\)\(v_2=(0;1)\)只是二维平面的一组标准正交基,但二维平面实际有无数的标准正交基,如\(v_1' = (\frac{1}{\sqrt{2}}; \frac{1}{\sqrt{2}})\)\(v_2' = (-\frac{1}{\sqrt{2}}; \frac{1}{\sqrt{2}})\),此时向量\(r = \frac{5}{\sqrt{2}}v_1' + \frac{1}{\sqrt{2}} v_2'\),其中\(\frac{5}{\sqrt{2}} = (v_1')^Tr\),\(\frac{1}{\sqrt{2}} = (v_2')^Tr\),即新坐标系里的坐标。

方差、协方差、协方差矩阵

对于包含\(n\)个样本的一组数据\(X = \left\{x_1,x_2,\cdots,x_n\right\}\)来说,均值\(M\)

\[M = \frac{x_1 + x_2 + \cdots + x_n}{n} = \sum \limits_{i=1}^n x_i \]

方差\(\sigma_{X}^2\)公式

\[\sigma^2 = \frac{(x_1 -M)^2 + (x_2 - M)^2 + \cdots + (x_n-M)^2}{n} = \frac{1}{n} \sum \limits_{i=1}^n (x_i - M)^2 \]

方差衡量了该组数据偏离均值的程度:样本越分散,其方差越大。

若还有包含\(n\)个样本的另一组数据\(X' = \left\{x_1', x_2',...,x_n' \right\}\),均值为\(M'\),则

两组数据的协方差\(\sigma_{XX'}^2\)公式为

\[\begin{align} & \sigma_{XX'}^2 = \frac{(x_1 - M)(x_1' - M) + (x_2 - M)(x_2' - M) + ... + (x_m - M)(x_n' - M')}{n} \\ & = \frac{1}{n} \sum \limits_{i=1}^n (x_i - M)(x_i' - M') \end{align} \]

\(\sigma_{XX'}^2\)能说明第一组数据\(x_1,x_2,...,x_n\)和第二组数据\(x_1',x_2',...,x_n'\)的变化情况。
具体来说,如果两组数据总是同时大于或小于自己的均值M,则\((x_i-M)(x_i'-M')>0\),此时\(\sigma_{XX'}^2 > 0\)
如果两组数据总是一个大于(或小于自己的均值)M而另一个小于(或大于)自己的均值,则\((x_i-M)(x_i' -M')< 0\),此时\(\sigma_{XX'}^2 < 0\); 如果两组数据与自己的均值的大小关系无规律,则\((x_i-M)(x_i' -M')\)的正负号随机变化,其平均数\(\sigma_{XX'}^2\)则会趋近于0。
引用百度百科协方差词条帮助理解:“从直观上来看,协方差表示的是两个变量总体误差的期望。如果两个变量的变化趋势一致,也就是说如果其中一个大于自身的期望值时另外一个也大于自身的期望值,那么两个变量之间的协方差就是正值;如果两个变量的变化趋势相反,即其中一个变量大于自身的期望值时另外一个却小于自身的期望值,那么两个变量之间的协方差就是负值。如果两个变量是统计独立的,那么两者之间的协方差就是零,但反之不成立。协方差为0的两个随机变量称为是不相关的”

协方差矩阵形式如下

\[X = (x_1, x_2, ... , x_m) = \begin{bmatrix} x_{11} & x_{21} & \cdots & x_{m1} \\ x_{12} & x_{22} & \cdots & x_{m1}\\ \vdots & \vdots & \ddots & \vdots \\ x_{1d} & x_{2d} & \cdots & x_{md} \end{bmatrix}_{d×m} \]

其中,上面的协方差矩阵\(X\)每一行表示一维特征,每一列表示该数据集的一个样本;
对于包含\(d\)个特征的特征空间(或称\(d\)维特征空间)来说,每一维特征可以看成是一个随机变量;
需要注意的是,协方差矩阵对角线元素为各行的方差。

矩阵与单位阵、向量的乘法

(1) 矩阵左乘对角阵相当于矩阵每行乘以对角阵的对角线元素,如:

\[\begin{bmatrix} \lambda_1 & & \\ & \lambda_2 & \\ & & \lambda_3 \end{bmatrix} \begin{bmatrix} x_{11} & x_{12} & x_{13} \\ x_{21} & x_{22} & x_{23} \\ x_{31} & x_{32} & x_{33} \end{bmatrix} = \begin{bmatrix} \lambda_1x_{11} & \lambda_1x_{12} & \lambda_1x_{13} \\ \lambda_2x_{21} & \lambda_2x_{22} & \lambda_2x_{23} \\ \lambda_3x_{31} & \lambda_3x_{32} & \lambda_3x_{33} \end{bmatrix} \]

(2) 矩阵右乘对角阵相当于矩阵每行乘以对角阵的对角线元素,如:

\[\begin{bmatrix} x_{11} & x_{12} & x_{13} \\ x_{21} & x_{22} & x_{23} \\ x_{31} & x_{32} & x_{33} \end{bmatrix} \begin{bmatrix} \lambda_1 & & \\ & \lambda_2 & \\ & & \lambda_3 \end{bmatrix} = \begin{bmatrix} \lambda_1x_{11} & \lambda_2x_{12} & \lambda_3x_{13} \\ \lambda_1x_{21} & \lambda_2x_{22} & \lambda_3x_{23} \\ \lambda_1x_{31} & \lambda_2x_{32} & \lambda_3x_{33} \end{bmatrix} \]

(3) 矩阵左乘行向量相当于矩阵每行乘以对应行向量的元素之和,如:

\[\begin{bmatrix} \lambda_1 & \lambda_2 & \lambda_3 \end{bmatrix} \begin{bmatrix} x_{11} & x_{12} & x_{13} \\ x_{21} & x_{22} & x_{23} \\ x_{31} & x_{32} & x_{33} \end{bmatrix} \\ = \lambda_1\begin{bmatrix} \lambda_1 & \lambda_2 & \lambda_3 \end{bmatrix} + \lambda_2 \begin{bmatrix} \lambda_1 & \lambda_2 & \lambda_3 \end{bmatrix} + \lambda_3 \begin{bmatrix} \lambda_1 & \lambda_2 & \lambda_3 \end{bmatrix} \\ = (\lambda_1 x_{11} + \lambda_2 x_{21} + \lambda_3x_{31}, \lambda_1 x_{12} + \lambda_2 x_{22} + \lambda_{32}, \lambda_{1}x_{13} + \lambda_{2}x_{23} + \lambda_3 x_{33}) \]

(4)矩阵右乘列向量相当于矩阵每列乘以对应列向量的元素之和,如:

\[\begin{bmatrix} x_{11} & x_{12} & x_{13} \\ x_{21} & x_{22} & x_{23} \\ x_{31} & x_{32} & x_{33} \end{bmatrix} \begin{bmatrix} \lambda_1 \\ \lambda_2 \\ \lambda_3 \end{bmatrix} = \lambda_1 \begin{bmatrix} \lambda_{11} \\ \lambda_{21} \\ \lambda_{31} \end{bmatrix} + \lambda_2 \begin{bmatrix} \lambda_{12} \\ \lambda_{22} \\ \lambda_{32} \end{bmatrix} + \lambda_3 \begin{bmatrix} \lambda_{13} \\ \lambda_{23} \\ \lambda_{33} \end{bmatrix} = \sum_{i=1}^3 \left(\lambda_i \begin{bmatrix} \lambda_{1i} \\ \lambda_{2i} \\ \lambda_{3i} \end{bmatrix} \right) \\ = (\lambda_1 x_{11} + \lambda_{2}x_{12} + \lambda_3 x_{13}; \lambda_{1}x_{21} + \lambda_{2}x_{22} + \lambda_{3}x_{23}; \lambda_{1}x_{31} + \lambda_2 x_{32} + \lambda_{3}x_{33}) \]

综上,左乘是对矩阵的行操作,右乘则是对矩阵的列操作。

矩阵的\(F\)范数与迹

(1)对于矩阵\(A \in \mathbb{R}^{m×n}\),其\(Frobenius\)范数(简称\(F\)范数)\(||A||_F\)定义为

\[||A||_F = \left(\sum_{i=1}^m \sum_{j=1}^n |a_{ij}|^2\right)^{\frac{1}{2}} \]

其中\(a_{ij}\)为矩阵\(A\)\(i\)行第\(j\)列的元素,即

\[A = \begin{bmatrix} a_{11}& a_{12}& \cdots& a_{1j}& \cdots & a_{1n}\\ a_{21}& a_{22}& \cdots& a_{2j}& \cdots & a_{2n}\\ \vdots & \vdots & \ddots & \vdots& \ddots& \vdots\\  a_{i1}& a_{i2}& \cdots & a_{ij}& \cdots & a_{in}\\ \vdots & \vdots & \ddots & \vdots& \ddots& \vdots\\ a_{m1}& a_{m2}& \cdots & a_{mj}& \cdots & a_{mn}\\ \end{bmatrix} \]

(2)若\(A = (\alpha_1, \alpha_2,..., \alpha_j, ..., \alpha_n)\),其中\(\alpha_j = (\alpha_{1j}; \alpha_{2j}; ...; \alpha_{ij}; ...; \alpha_{mj})\)为其列向量,\(A \in \mathbb{R}^{m×n}\)\(\alpha_j \in \mathbb{R}^{m×1}\),则\(||A||_F^2 = \sum_{j=1}^n ||\alpha_j||_2^2\)
同理,若\(A = (\beta_1; \beta_2; ... ;\beta_m)\),其中\(\beta_i = (\alpha_{i1}, \alpha_{i2},...,a_{ij}; ...;a_{mj})\)为其行向量,\(A \in \mathbb{R}^{m×n}, \alpha_{j} \in \mathbb{R}^{m×1}\),则\(||A||_{F}^2 = \sum_{i=1}^m ||\beta_i||_2^2\)
证明:该结论是显而易见的,因为\(||\alpha_j||_2^2 = \sum_{i=1}^m |a_{ij}|^2\),而\(||A||_{F} = \sum_{i=1}^m \sum_{j=1}^n |\alpha_{ij|}^2\)
(3)若\(\lambda_{j}(A^TA)\)表示\(n\)阶方阵\(A^TA\)的第\(j\)个特征值,\(tr(A^TA)\)\(A^TA\)的迹(对角线元素之和);
\(\lambda_i(AA^T)\)表示m阶方阵\(AA^T\)的第\(i\)个特征值,\(tr(AA^T)\)\(AA^T\)的迹,则

\[||A||_{F}^2 = tr(A^TA) = \sum \limits_{j=1}^n \lambda_{j}(A^TA) \\ = tr(A^TA) = \sum \limits_{i=1}^m \lambda_{i}(AA^T) \]

(一)低维嵌入

  对于测试样本而言,我们假定一个理想化情况:任意测试样本\(x\)附近任意小的\(\delta\)距离范围内总能找到一个训练样本,即训练样本的采样密度足够大,或称为“密采样”(dense sample)。

这里引出以“密采样”为前提条件的\(k\)近邻学习方法。

1.1 k近邻(kNN)学习

  \(k\)近邻(k-Nearest Neighbor,简称kNN)学习是一种常用的监督学习方法,其工作机制非常简单:
  给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个训练样本,然后基于这\(k\)个“邻居”的信息来进行预测。通常,针对不同的任务有以下不同的方法和策略:

  • 分类任务中可使用“投票法”,即选择这\(k\)个样本中出现最多的类别标记作为预测结果;
  • 回归任务中可使用“平均法”,即将这\(k\)个样本的实值输出标记的平均值作为预测结果;
  • 还可以基于距离远近进行加权平均或加权投票,距离越近的样本越大。   

  与其他学习方法相比,k近邻学习有一个很明显的不足之处:它似乎没有显式的训练过程,事实上,它是“懒惰学习”(lazy learning)的著名代表,此类学习技术在训练结果仅仅是把样本保存起来,训练时间开销为零,待受到测试样本后再进行处理;相应的,那些在训练阶段就对样本进行学习处理的方法,称为“急切学习”(eager learning)。
  下图给出了\(k\)近邻分类器的一个示意图。

  直观地看,显然对于\(k\)近邻而言,\(k\)是一个重要参数,当\(k\)取不同值时,分类结果会有显著不同。
另一方面,若采用不同的距离计算方式,则找出的“近邻”可能会有显著的差别,从而也会导致分类结果有显著的不同。

  若我们忽略其他干扰因素,不妨假设这里的距离计算方式是“恰当”的,即能够恰当地找出\(k\)个近邻,我们来对“最近邻分类器”(1NN,即\(k=1\))在二分类问题上的性能做一个简单的讨论

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

\[P(err) = 1 - \sum \limits_{c \in \mathcal{Y}}P(c|x)P(c|z) \quad (10.1) \]

式(10.1)的解释

首先,\(P(c|x)\)表示样本\(x\)为类别\(c\)的后验概率,\(P(c|z)\)表示样本\(z\)为类别\(c\)的后验概率;
其次,\(P(c|x)P(c|z)\)表示样本\(x\)和样本\(z\)同时为类别\(c\)的概率;
再次,\(\sum_{c \in \mathcal{Y}}P(c|x)P(c|z)\)表示样本\(x\)和样本\(z\)类别相同的概率;这一点可以进一步解释,设\(\mathcal{Y} = \left\{c_1, c_2, \cdots, c_N \right\}\),则该求和式子变为:\(P(c_1|x)P(c_z|z) + P(c_2|x)P(c_2|x) + \cdots + P(c_N|x)P(c_N|z)\)
即样本\(x\)与样本\(z\)同时为\(c_1\)的概率,加上同时为\(c_2\)的概率,……,加上同时为\(c_N\)的概率,即样本\(x\)和样本\(z\)类别相同的概率;最后,\(P(err)\)表示样本\(x\)和样本\(z\)类别不相同的概率,即1减去两者类别相同的概率。

  假设样本独立同分布,且对任意\(x\)和任意小正数\(\delta\),在\(x\)附近\(\delta\)距离范围内总能找到一个训练样本;换言之,对任意测试样本,总能在任意近的范围内找到上式(10.1)中的训练样本\(z\)
\(c^* =\mathop{\arg\min}_{c \in \mathcal{Y}}P(c|x)\)表示贝叶斯最优分类器的结果,有

\[P(err) = 1 - \sum \limits_{c \in \mathcal{Y}}P(c|x)P(c|z) \quad ①\\ \begin{align} & \approx 1 - \sum \limits_{c \in \mathcal{Y}}P^2(c|x) \quad ②\\ & \leq 1 - P^2(C^*|x) \quad ③\\ & = (1+P(c^*|x)(1-P(c^*|x))) \quad ④\\ & \leq 2×(1-P(c^*|x)). \quad ⑤ \quad (10.2) \end{align} \]

由此,我们得到了一个有点出于意料的结论:最近邻分类器虽简单,但它的泛化错误率不超过贝叶斯最优分类器的错误率的两倍。

式(10.2)的推导

\(\to\)②来源于前提假设“假设样本独立同分布,且对任意\(x\)和任意小正数\(\delta\),在\(x\)附近\(\delta\)距离范围内总能找到一个训练样本”,假设所有\(\delta\)中最小的\(\delta\)组成和\(x\)维数相同的向量\(\delta\),则\(P(c|z) = P(c|x\pm\delta) \simeq P(c|x)\)
\(\to\)③是因为\(c^* \in \mathcal{Y}\),则\(P^2(c^*|x)\)\(\sum_{c \in \mathcal{Y}}P^2(c|x)\)的一个分量,所以\(\sum_{c \in \mathcal{Y}}P^2(c|x) \geq P^2(c^*|x)\)
\(\to\)④是平方式展开.
\(\to\)⑤是因为\(1 + P^2(c^*|x) \leq 2\).

1.2 关于低维嵌入的一些讨论

1.2.1 为什么要做低维嵌入?

  我们知道,训练样本的采样密度足够大这个前提假设过于理想,在现实任务中通常很难满足,
例如若\(\delta=0.001\),仅考虑单个属性,则仅需1000个样本点平均分布在归一化后的属性取值范围内,即可使得任意测试样本在其附近0.001距离范围内找到一个训练样本,此时最近邻分类器的错误率不超过贝叶斯最优分类器的错误率的两倍。然而这仅仅是属性维度为1的情形,若随着\(k\)值的增加,有更多的属性,则情况会发生显著变化。

  例如假定属性维数为20,若要求样本满足密采样经常成千上万,要满足密采样条件所需的样本数目是无法达到的天文数字。此外,许多学习方法都设计距离计算,而高维空间会给距离计算带来很大的麻烦,例如当维数很高时甚至连计算内积都不再容易。

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

缓解维数灾难的途径主要有两种:

  • 降维
  • 特征选择    
1.2.2 降维

  降维(dimension reduction),亦称“维数约简”,即通过某种数学变换将原始高维属性空间转变为低维“子空间”(subspace),在这个子空间中样本密度大幅提高,距离计算也变得更为容易。降维的实质是将高维数据看成高维的特征空间,再将其映射到低维度的特征空间。

  为什么这种映射能够实现降维的目的呢?
这是因为在很多时候,从数据形式上看,人们观测或收集到的数据样本虽是高维的,但与学习任务密切相关的也许仅是某个低维分布,即高维空间中的一个低维“嵌入”(embedding)。

  举例来说,原始数据集有10000个特征,经过降维之后,这10000个特征的高维特征空间被映射到了500个特征的低维空间,但是在这种情况下,这500个特征是根据映射关系得到的新的500个特征,只是保留了原始数据中10000个特征的某些性质,却不是原始特征集的子集,并没有抛弃掉任何特征。

  直观地来看,这里有一个实际的例子,如下图:

注意到上图(a)三维空间中(若x,y,z分别为长宽高),红色线是弯曲的,但去掉高度这一维(竖着的z轴)后,红色先变为直线,而直线更容易学习。
  

1.2.2.1 多维缩放(MDS)

  若要求原始空间中样本之间的距离在低维空间中得以保持,即得到“多维缩放”(Multiple Dimensional Scaling,简称MDS)这样一种经典的降维方法。
  假定m个样本在原始空间的距离矩阵为\(D \in \mathbb{R}^{m×m}\),其中第\(i\)\(j\)列的元素\(dist_{ij}\)为样本\(x_i\)\(x_j\)的距离。
我们的目标是获得样本在\(d'\)维空间的表示\(z\in \mathbb{R}^{d'×m},d' \leq d\),且任意两个样本在\(d'\)维空间中的欧式距离等于原始空间中的距离,即\(||z_i - z_j|| = dist_{ij}\)
  令\(B= Z^T Z \in \mathbb{R}^{m×m}\),其中\(B\)为降维后样本的内积矩阵,\(b_{ij} = z_i^Tz_j\),有

\[dist_{ij}^2 = ||z_i||^2 + ||z_j||^2 - 2z_i^Tz_j \\ = b_{ii} + b_{jj} - 2b_{ij}. \quad (10.3) \]

式(10.3)的推导

已知\(Z = \left\{z_1, z_2, ..., z_i, ...,z_m \right\}\in \mathbb{R}^{d'×m}\),其中\(z_i = (z_{i1}; z_{i2};...; z_{id'}) \in \mathbb{R}^{d'×1}\),降维后的内积矩阵\(B = Z^TZ \in \mathbb{R}^{m×m}\),其中第\(i\)行第\(j\)列元素\(b_{ij}\),特别的

      \(b_{ii} = z_{i}^{T}z_{i} = ||z_i||^2, \quad b_{jj} = z_j^Tz_j = ||z_j||^2, \quad b_{ij} = z_{i}^Tz_j\)

MDS算法的目标是\(||z_i - z_j|| = dist_{ij} = ||x_i - x_j||\),即保持样本的欧氏距离在\(d'\)维空间和原始\(d\)维空间相同\((d' \leq d)\)

          \(\begin{align} &dist_{ij}^2 = ||z_i - z_j||^2 = (z_{i1} - z_{j1})^2 + (z_{i2}-z_{j2})^2 + ...+(z_{id'} - z_{jd'})^2 \\ &= (z_{i1}^2 - 2z_{i1}z_{j1} + z_{j1}^2) + (z_{i2}^2 - 2z_{i2}z_{j2} + z_{j2}^2) + ... + (z_{id'}^2 - 2z_{jd'} + z_{jd'}^2) \\ &= (z_{i1}^2 + z_{i2}^2 + \cdots + z_{id'}^2) + (z_{j1}^2 + z_{j2}^2 + \cdots + z_{jd'}^2) - 2(z_{i1}z_{j1} + z_{i2}z_{j2} + ... + z_{id'}z_{jd'}) \\ &= ||z_i||^2 + ||z_j||^2 - 2z_i^Tz_j \\ &= b_{ii} + b_{jj} - 2b_{ij} \end{align}\)

我们实际可以发现,上式运算结果基本与标量运算规则相同。具体来说,上式可等价于
         \(\begin{align} & dist_{ij}^2 = ||z_i - z_j||^2 = (z_i - z_j)^T(z_i - z_j) \\ & = z_i^Tz_i - z_i^Tz_j - z_j^Tz_i + z_j^Tz_j \\ & = z_i^Tz_i + z_j^Tz_j - 2z_i^Tz_j \\ & = ||z_i||^2 + ||z_j||^2 - 2z_i^Tz_j \\ & = b_{ii} + b_{jj} - 2b_{ij} \end{align}\)
其中,上式第三个等号是由于内积\(z_i^Tz_j\)\(z_j^Tz_i\)均为标量,因此转置等于本身。

为了便于讨论,令降维后的样本\(Z\)被中心化,即\(\sum_{i=1}^m z_i=0\)。显然,矩阵B的行与列之和均为零,即\(\sum_{i=1}^m b_{ij} = \sum_{j=1}^m b_{ij} = 0\)。易知

\[\begin{align} & \sum \limits_{i=1}^m dist_{ij}^2 = tr(B) + m b_{jj}, \quad (10.4) \\ & \sum \limits_{j=1}^m dist_{ij}^2 = tr(B) + m b_{ii}, \quad (10.5) \\ & \sum \limits_{i=1}^m \sum \limits_{j=1}^m dist_{ij}^2 = 2m tr(B). \quad (10.6) \end{align} \]

其中,\(tr(\cdot)\)表示矩阵的迹(trace),\(tr(B) = \sum_{i=1}^m ||z_i||^2\)

式(10.4)的推导

首先解释两个条件:
(1)令降维后的样本\(Z\)被中心化,即\(\sum_{i-1}^m z_i = 0\).
注意\(Z \in \mathbb{R}^{d'×m}\)\(d'\)是样本维度(属性个数),\(m\)是样本个数,易知\(Z\)的每一行有\(m\)个元素(每行表示样本集的一维属性),\(Z\)的每一列有\(d'\)个元素(每列表示一个样本)。
\(\sum_{i=1}^m z_i = 0\)中的\(z_i\)明显表示的是第\(i\)列,\(m\)列相加得到一个零向量\(0_{d'×1}\),意思是样本集合中所有样本的每一维属性之和均等于0,因此被中心化的意思是将样本集合\(Z\)的每一行(属性)减去该行的均值。
(2)显然,矩阵\(B\)的行与列的和均为零,即\(\sum_{i=1}^m b_{ij} = \sum_{j=1}^m b_{ij} = 0\)
注意\(b_{ij} = z_{i}^Tz_j\)(也可以写为\(b_{ij} = z_j^Tz_i\),其实就是对应元素相乘,再求和)

    \(\sum_{i=1}^m b_{ij} = \sum_{i=1}^m z_j^Tz_i = z_j^T \sum_{i=1}^m z_i = z_j^T \cdot 0_{d×1} = 0\)
    \(\sum_{j=1}^m b_{ij} = \sum_{j=1}^m z_i^Tz_j = z_i^T\sum_{j=1}^m z_j = z_i^T \cdot 0_{d'×1} = 0\)

接下来我们正式开始推导(10.4),将式(10.3)的\(dist_{ij}^2\)表达式代入:
    \(\sum \limits_{i=1}^m dist_{ij}^2 = \sum \limits_{i=1}(||z_i||^2 + ||z_j||^2 - 2z_i^Tz_j) \\ = \sum \limits_{i=1}^m ||z_i||^2 + \sum \limits_{i=1}^m ||z_j||^2 - 2\sum \limits_{i=1}^m z_i^Tz_J\)

根据定义:

   \(\sum_{i=1}^m ||z_i||^2 = \sum_{i=1}^m z_i^Tz_i = \sum_{i=1}^m b_{ii} = tr(B)\)
   \(\sum_{i=1}^m ||z_j||^2 = ||z_j||^2\sum_{i=1}^m 1 = m||z_j||^2 = mz_j^Tz_j = mb_{jj}\)

根据前面结果: \(\sum_{i=1}^m z_i^Tz_j = (\sum_{i=1}^m z_i^T)z_j = 0_{1×d'}\cdot z_j = 0\)

代入上式即得:

    \(\sum \limits_{i=1}^m dist_{ij}^2 = \sum_{i=1}^m ||z_i||^2 + \sum \limits_{i=1}^m ||z_j||^2 - 2\sum \limits_{i=1}^m z_i^Tz_j \\ = tr(B) + mb_{jj}\)

式(10.5)的推导

与式(10.4)类似:

      \(\sum \limits_{j=1}^m dist_{ij}^2 = \sum \limits_{j=1}(||z_i||^2 + ||z_j||^2 - 2z_i^Tz_j) \\ = \sum \limits_{j=1}^m ||z_i||^2 + \sum \limits_{j=1}^m ||z_j||^2 - 2\sum \limits_{j=1}^m z_i^Tz_j \\ = mb_{ii} + tr(B)\)

式(10.6)的推导

     \(\sum \limits_{i=1}^m \sum \limits_{j=1}^m dist_{ij}^2 = \sum \limits_{i=1}^m \sum \limits_{j=1}^m (||z_i||^2 + ||z_j||^2 - 2z_i^Tz_j) \\ = \sum \limits_{i=1}^m \sum \limits_{j=1}^m ||z_i||^2 + \sum \limits_{i=1}^m \sum \limits_{j=1}^m ||z_j||^2 - 2\sum \limits_{i=1}^m \sum \limits_{j=1}^m z_i^Tz_j \\ = 2m tr(B)\)

其中各子项推导如下:

    \(\begin{align} &\sum_{i=1}^m \sum_{j=1}^m ||z_i||^2 = \sum_{i=1}^m (||z_i||^2 \sum_{j=1}^m1) = m \sum_{i=1}^m ||z_i||^2 = mtr(B)\\ &\sum_{i=1}^m \sum_{j=1}^m ||z_j||^2 = \sum_{i=1}^m tr(B) = mtr(B) \\ &\sum_{i=1}^m \sum_{j=1}^m z_i^Tz_j = 0\\ \end{align}\)

这里用到一个准则:与求和(积分)变量无关的项可以提到求和号(积分号)外面。

\[\begin{align} & dist_{i\cdot}^2 = \frac{1}{m} \sum \limits_{j=1}^m dist_{ij}^2 \quad (10.7)\\ & dist_{\cdot j}^2 = \frac{1}{m} \sum \limits_{i=1}^m dist_{ij}^2 \quad (10.8)\\ & dist_{\cdot \cdot}^2 = \frac{1}{m^2} \sum \limits_{i=1}^m \sum \limits_{j=1}^m dist_{ij}^2.\quad (10.9) \end{align} \]

由式(10.3)和(10.4)~(10.9)可得

\[b_{ij} = -\frac{1}{2}(dist_{ij}^2 - dist_{i\cdot}^2 - dist_{\cdot j}^2 + dist_{\cdot \cdot}^2) \quad (10.10) \]

由此即可通过降维前后保持不变的距离矩阵\(D\)求取内积矩阵B。

式(10.10)的推导

将式(10.5)代入式(10.7):\(dist_{i \cdot}^2 = \frac{1}{m}(tr(B) + mb_{ii}) = \frac{1}{m}tr(B) + b_{ii}\)
将式(10.4)代入式(10.8):\(dist_{\cdot j}^2 = \frac{1}{m}(tr(B) + mb_{jj}) = \frac{1}{m}rt(B) + b_{jj}\)
将式(10.6)代入式(10.9):\(dist_{\cdot \cdot}^2 = \frac{1}{m^2} 2m tr(B) = \frac{2}{m}tr(B)\)
将式(10.3)和以上结果代入:

    \(-\frac{1}{2}\left(dist_{ij}^2 - dist_{i \cdot}^2 - dist_{\cdot j}^2 + dist_{\cdot \cdot}^2 \right) \\ = -\frac{1}{2}\left((b_{ii} + b_{jj} - 2b_{ij}) - (\frac{1}{m}tr(B) + b_{ii}) - (\frac{1}{m}tr(B)+b_{jj}) + \frac{2}{m}tr(B) \right) \\ = b_{jj}\)

解释下面一句话“由此即可通过降维前后保持不变的距离矩阵D求取内积矩阵B”:
首先解释式(10.10)等号右侧的变量含义:\(dist_{ij} = ||z_i - z_j||\)表示降维后\(z_i\)\(z_j\)的欧氏距离,注意这同时也应该是原始空间\(x_i\)\(x_j\)的距离,因为降维的目标(也是约束条件)是“任意两个样本在\(d'\)维空间中的欧氏距离等于原始空间中的距离”,也就是\(dist_{ij}^2\)是降维前后的距离矩阵\(D\)的元素\(dist_{ij}\)的平方;其次,式(10.10)等号左侧\(b_{ij}\)是降维后内积矩阵\(B\)的元素,即\(B\)的元素\(b_{ij}\)可以由距离矩阵\(D\)来表达求取。

  对矩阵B做特征值分解(eigenvalue decomposition),\(B=V \and V^T\),其中\(\and = diag(\lambda_1, \lambda_2, ...,\lambda_d)\)为特征值构成的对角矩阵,\(\lambda_1 \geq \lambda_2 \geq ... \geq \lambda_d\)\(V\)为特征向量矩阵。
  假定其中有\(d^*\)个非零特征值,它们构成对角矩阵\(\and_* = diag(\lambda_1, \lambda_2,...,\lambda_{d^*})\),令\(V_*\)表示相应的特征向量矩阵,则\(Z\)可表达为

\[Z = \and_*^{1/2} V_*^T \in \mathbb{R}^{d^*×m} \quad \quad (10.11) \]

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

\[Z = \tilde{\and}^{1/2} \tilde{V}^T \in \mathbb{R}^{d'×m} \quad \quad (10.12) \]

下面给出MDS算法的描述

输入: 距离矩阵\(D \in \mathbb{R}^{m×m}\),其元素\(dist_{ij}\)为样本\(x_i\)\(x_j\)的距离;低维空间维数\(d'\).
过程:

  1. 根据式(10.7)~(10.9)计算\(dist_{i\cdot}^2\), \(dist_{\cdot j}^2\),\(dist_{\cdot \cdot}^2\);
  2. 根据式(10.10)计算矩阵\(B\)
  3. 对矩阵\(B\)做特征值分解;
  4. \(\tilde{\and}\)\(d'\)个最大特征值所构成的对角矩阵,\(\tilde{V}\)为相应的特征向量矩阵。

输出:矩阵\(\tilde{V}\tilde{\and}^{1/2} \in \mathbb{R}^{m×d'}\),每行是一个样本的低维坐标。

  一般来说,欲获得低维子空间,最简单的是对原始高维空间进行线性变换。给定\(d\)维空间中的样本\(X=(x_1, x_2, \cdots, x_m) \in \mathbb{R}^{d×m}\),变换之后得到\(d' \leq d\)维空间中的样本

\[Z = W^T X \quad (10.13) \]

其中,\(W \in \mathbb{R}^{d×d'}\)是变换矩阵,\(Z \in R^{d'×m}\)是样本在新空间中的表达。

  变换矩阵\(W\)可视为\(d'\)\(d\)维基向量,\(z_i = W^T x_i\)是第\(i\)个样本与这\(d'\)个基向量分别做内积而得到的\(d'\)维属性向量。换言之,\(z_i\)是原属性向量\(x_i\)在新坐标系\(\left\{w_1,w_2,...,w_{d'}\right\}\)中的坐标向量。若\(w_i\)\(w_j(i \neq j)\)正交,则新坐标系是一个正交坐标系,此时\(W\)为正交变换。显然,新空间中的属性是原空间中属性的线性组合。
  
  基于线性变换来进行降维的方法称为线性降维方法,它们都符号式(10.13)\(Z = W^T X\)的基本形式,不同之处是对低维子空间的性质有不同的要求,相当于对\(W\)施加了不同的约束。若我们要求低维子空间对样本具有最大可分性,则将得到一种极为常用的线性降维方法。
  
  对降维效果的评估,通常是比较降维前后学习器的性能,若性能有所提高则认为降维起到了作用。若维数降至二维或三维,则可通过可视化技术来直观地判断降维效果。

(二)主成分分析和核化线性降维

2.1 主成分分析PCA

2.1.1 主成分分析PCA介绍

主成分分析(Principal Component Analysis,简称PCA)是最常用的一种降维方法,也是常用的无监督学习方法,这一方法利用正交变换把由线性相关变量表示的观测数据转换为少数几个由线性无关变量表示的数据,线性无关的变量称为主成分。主成分的个数通常小于原始变量的个数,所以主成分分析属于降维方法。
主成分分析主要用于发现数据中的基本结构,即数据中变量之间的关系,是数据分析的有力工具,也用于其他机器学习的前处理。

2.1.1.1 主成分分析的基本想法

  统计分析中,数据的变量之间可能存在相关性,以至增加了分析的难度。于是,考虑由少数不相关的变量来代替相关的变量,用来表示数据,并且要求能够保留数据中的大部分信息。
  主成分分析中,首先对给定数据进行规范化,使得数据每一变量的平均值为0,方差为1。之后对数据进行正交变换,原来由线性相关变量表示的数据,通过正交变换变成由若干个线性无关的新变量表示的数据。新变量是可能的正交变换中变量的方差的和(信息保存)最大的,方差表示在新变量上信息的大小。将新变量依次称为第一主成分、第二主成分等。这就是主成分分析的基本思想。通过主成分分析,可以利用主成分近似地表示原始数据,这可理解为发现数据的“基本结构”;也可以把数据由少数主成分表示,这可理解为对数据降维。
  

下面给出主成分分析的直观解释。
数据集合中的样本由实数空间(正交坐标系)中的点表示,空间的一个坐标轴表示一个变量,规范化处理后得到的数据分布在原点附近。对原坐标系中的数据进行主成分分析等价于进行坐标系旋转变换,将数据投影到新坐标系的坐标轴上;新坐标系的第一坐标轴、第二坐标轴等分别表示第一主成分、第二主成分等,数据在每一轴上的坐标值的平方表示相应变量的方差;并且,这个坐标系是在所有可能的新的坐标系中,坐标轴上的方差的和最大的。
  例如,数据由两个变量\(x_1\)\(x_2\)表示,存在于二维空间中,每个点表示一个样本,如下图所示(a)。对数据已做规范化处理,可以看出,这些数据分布在以原点为中心的左下至右上倾斜的椭圆之内。很明显在这个数据中的变量\(x_1\)\(x_2\)是线性相关的,具体地,当知道其中一个变量\(x_1\)的取值时,对另一个变量\(x_2\)的预测不是完全随机的;反之亦然。
  主成分分析对数据进行正交变换,具体地,对原坐标系进行旋转变换,并将数据在新坐标系表示,如下图(b)s所示。数据在原坐标系由\(x_1\)\(x_2\)表示,通过正交变换后,在新坐标系里,由变量\(y_1\)\(y_2\)表示。主成分分析选择方差最大的方向(第一主成分)作为新坐标系的第一个坐标轴,即\(y_1\)轴,在这里意味着选择椭圆的长轴作为新坐标系的第一坐标轴;之后选择与第一坐标轴正交,且方差次之的方向(第二主成分)作为新坐标系的第二坐标轴,
\(y_2\)轴,在这里意味着选择椭圆的短轴作为新坐标系的第二坐标轴。在新坐标系里,数据中的变量\(y_1\)\(y_2\)是线性无关的,当知道其中一个变量\(y_1\)的取值时,对另外一个变量\(y_2\)的预测是完全随机的;反之亦然。如果主成分分析只取第一主成分,即新坐标系的\(y_1\)轴,那么等价于将数据投影在椭圆长轴上,用这个主轴表示数据,将二维空间的数据压缩到一维空间中。

下面再来看方差最大的解释。
假设有两个变量\(x_1\)\(x_2\),三个样本点\(A、B、C\),样本分布在由\(x_1\)\(x_2\)轴组成的坐标系中,如图16.2所示。对坐标系进行旋转变换,得到新坐标轴\(y_1\),表示新的变量\(y_1\)。样本点\(A、B、C\)\(y_1\)轴上投影,得到\(y_1\)轴的坐标值\(A'、B'、C'\)。坐标值的平方和\(OA'^2 + OB'^2 + OC'^2\)表示样本在变量\(y_1\)上的方差和。主成分分析旨在选取正交变换中方差最大的变量,作为第一主成分,也就是旋转变换中坐标值的平方和最大的轴,注意到旋转变换中样本点到原点的距离的平方和\(OA^2 + OB^2 + OC^2\)保持不变,根据勾股定理,坐标轴的平方和\(OA'^2 + OB'^2 + OC'^2\)最大等价于样本点到\(y_1\)轴的距离的平方和\(AA'^2 + BB'^2 + CC'^2\)最小。所以,等价地,主成分分析在旋转变换中选取离样本点的距离平方和最小的轴,作为第一主成分。第二主成分等的选取,在保证与已选坐标轴正交的条件下,类似地进行。

在数据总体(population)上进行的主成分分析称为总体主成分分析,在有限样本上进行的主成分分析称为样本主成分分析,前者是后者的基础。

2.1.2 PCA推导过程

为推导PCA过程,我们先考虑这样一个问题:
对于正交属性空间中的样本点,如何用一个超平面(直线的高维推广)对所有样本进行恰当的表达?
结合之前的经验与讨论,我们设想,若存在一个这样的超平面,那么它大概应具有或满足于下列这些性质:

  • 最近重构性:样本点到这个超平面的距离都足够近;

  • 最大可分性:样本点到这个超平面上的投影能尽可能分开。

基于最近重构性和最大可分性,能分别得到主成分分析的两种等价推导。
我们先从最近重构性来推导:
 
  假定数据样本进行了中心化,即\(\sum_i x_i = 0\);再假定投影变换后得到的新坐标系为\(\left\{w_1, w_2. ...,w_d\right\}\),其中\(w_i\)是标准正交基向量,\(||w_i||_2 = 1, w_i^T w_j = 0(i \neq j)\)。若丢弃新坐标系中的部分坐标,即将维度降低到\(d' < d\),则样本点在\(x_i\)在低维坐标系中的投影是\(z_i = (z_{i1};z_{i2}; ...;z_{id'})\),其中\(z_{ij} = w_j^Tx_i\)是低维坐标系下第\(j\)维的坐标。若基于\(z_i\)来重构\(x_i\),则会得到\(\hat x_i = \sum_{j=1}^{d'}z_{ij}w_j\)
  
  考虑整个训练集,原样本点\(x_i\)与基于投影重构的样本点\(\hat x_i\)之间的距离为

\[\begin{align} & \sum \limits_{i=1}^m \bigg|\bigg| \sum \limits_{j=1}^{d'} z_{ij}w_{j} - x_i \bigg|\bigg|_2^2 = \sum \limits_{i=1}^m z_i^T z_i - 2 \sum \limits_{i=1}^m z_i^T W^Tx_i + const \\ & \propto - tr \left(W^T \left(\sum \limits_{i=1}^m x_i x_i^T \right)W \right). \quad \quad (10.14) \\ & 符号说明:\propto为约等于的表示符号,tr为矩阵的迹,即矩阵对角元素之和 \end{align} \]

根据最近重构性,式(10.14)应被最小化才能实现样本点到超平面的距离足够近的要求。
考虑到\(w_{j}\)标准正交基\(\sum_i x_i x_i^T\)协方差矩阵,有

\[\begin{align} & \min \limits_{W} - tr(W^TXX^TW) \\ & s.t. W^TW = I. \quad (10.15) \end{align} \]

这就是主成分分析的优化目标。

  从最大可分性出发,能得到主成分分析的另一种解释。我们知道,样本点\(x_i\)在新空间中超平面上的投影是\(W^T x_i\),若所有样本点的投影能尽可能分开,则应该使投影后样本点的方差最大化。
样本点的投影方差最大化如下图所示

投影后样本点的方差是\(\sum_i W^T x_i x_i^T\),既然我们期望样本点的方差最大化,于是优化目标可写为

\[\begin{align} & \max \limits_{W} tr(W^TXX^TW) \\ & s.t. W^TW = 1 \quad (10.16) \end{align} \]

显然,式(10.16)与(10.15)等价。

  对(10.15)或(10.16)使用拉格朗日乘子法,可得

\[XX^TW = \lambda W \]

于是,只需对协方差矩阵\(XX^T\)进行特征值分解,将求得的特征值排序:
\(\lambda_1 \geq \lambda_2 \geq ... \geq \lambda_d\),再取前\(d'\)个特征值对应的特征向量构成\(W=(w_1,w_2,...,w_{d'})\)
求出来的投影矩阵\(W\)即为主成分分析的解。

主成分分析PCA算法描述

输入:样本集\(D={x_1,x_2,...,x_m}\); 低维空间维数\(d'\).
过程:

  1. 对所有样本进行中心化:\(x_i \gets x_i - \frac{1}{m} \sum_{i=1}^m x_i\);2
  2. 计算样本的协方差矩阵\(XX^T\);
  3. 对协方差矩阵\(XX^T\)做特征值分解;
  4. 取最大的\(d'\)个特征值所对应的特征向量\(w_1,w_2,...,w_{d'}\).

输出:投影矩阵\(W=(w_1,w_2,...,w_{d'})\).

  降维后低维空间的维数\(d'\)通常是由用户事先制定,或通过在\(d'\)值不同的低维空间中对\(k\)近邻分类器(或其他开销较小的学习器)进行交叉验证来选取较好的\(d'\)值。
  对PCA主成分分析,还可从重构的角度设置一个重构阈值,例如\(t=86\%\),然后选取使下式成立的最小\(d'\)值:

\[\frac{\sum_{i=1}^{d'} \lambda_i}{\sum_{i=1}^d \lambda_i} \geq t.  \quad \quad (10.18) \]

  PCA仅需保留投影矩阵\(W\)与样本的均值向量,即可通过简单的向量减法和矩阵-向量乘法将新样本投影至低维空间中。显然,低维空间与原始高维空间必有不同,因为对应于最小的\(d-d'\)个特征值的特征向量被舍弃了,这是降维导致的结果。

但舍弃这部分信息往往是必要的:

  • 一方面,被舍弃这部分信息之后能使样本的采样密度增大,这正是降维的重要动机;
  • 另一方面,当数据受到噪声影响时,最小的特征值所对应的特征向量往往与噪声相关,将它们舍弃能在一定程度上起到去噪的效果。

2.2 核化线性降维

  线性降维方法假设从高维空间到低维空间的函数映射是线性的,然而,在不少现实任务中,可能需要非线性映射才能找到恰当的低维嵌入。
  
  以下图为例,样本点从二维空间中的矩阵区域采样后以\(S\)形曲面嵌入到三维空间,若直接使用线性降维方法对三维空间观察到的样本点进行降维,则将丢失原本的低维结构。

  为了对”原本采样的“低维空间(采样前)与降维后的低维空间加以区分,我们称前者(采样前)的低维空间称为"本真"(intrinsic)低维空间。

  

2.2.1 核主成分分析KPCA

非线性降维的一种常用方法,是基于核技巧对线性降维方法进行”核化“(kernelized)。
下面以核主成分分析(Kernelized PCA,简称为KPCA)为例来进行演示非线性降维的过程。

  假定我们将在高维特征空间中把数据投影到由\(W\)确定的超平面上,即PCA欲求解

\[\left(\sum \limits_{i=1}^m z_i z_i^T\right)W = \lambda W \quad (10.19) \]

其中\(z_i\)是样本点\(x_i\)在高维特征空间中的像。
易知

\[W = \frac{1}{\lambda} \left(\sum \limits_{i=1}^m z_i z_i^T\right)W = \sum \limits_{i=1}^m z_i \frac{z_i^T W}{\lambda} = \sum \limits_{i=1}^m z_i \alpha_i (10.20) \]

其中\(\alpha_i = \frac{1}{\lambda}z_i^TW\)

假设\(z_i\)是由原始属性空间中的样本点\(x_i\)通过映射函数\(\phi\)产生,即\(z_i=\phi(x_i), i=1,2,...,m\)
若映射函数\(\phi\)能够显式表达出来,则可通过它将样本映射至高维特征空间,再从特征空间中实施主成分分析PCA即可。
由此,\(\left(\sum \limits_{i=1}^m z_i z_i^T\right)W = \lambda W \quad(10.19)\)变换为

\[\left(\sum \limits_{i=1}^m \phi(x_i) \phi(x_i)^T\right)W = \lambda W \quad(10.21) \]

\(W = \sum \limits_{i=1}^m z_i \alpha_i (10.20)\)变换为

\[W = \sum \limits_{i=1}^m \phi(x_i) \alpha_i. \quad (10.22) \]

在一般情形下,我们不清楚\(\phi\)的具体形式,于是引入核函数

\[\kappa(x_i, x_j) = \phi(x_i)^T \phi(x_j) \quad (10.23) \]

\(W = \sum \limits_{i=1}^m \phi(x_i) \alpha_i.\)\(\kappa(x_i, x_j) = \phi(x_i)^T \phi(x_j).\)代入\(\left(\sum \limits_{i=1}^m \phi(x_i) \phi(x_i)^T\right)W = \lambda W \quad(10.21)\)化简可得

\[KA = \lambda A \quad (10.24) \]

其中\(K\)为核函数\(\kappa\)对应的核矩阵,\((K)_{ij} = \kappa(x_i,x_j)\),\(A=(\alpha_1; \alpha_2; ...;\alpha_m)\)

显然,式(10.24)是特征值分解问题,取\(K\)最大的\(d'\)个特征值对应的特征向量即可。

  对新样本\(x\),其投影后的第\(j(j=1,2,...,d')\)维坐标为

\[z_j = w_j^T\phi(x) = \sum \limits_{i=1}^m \alpha_i^j \phi(x_i)^T \phi(x) = \sum \limits_{i=1}^m \alpha_i^j \kappa(x_i,x) \quad (10.25) \]

其中\(\alpha_i\)已经过规范化,\(\alpha_i^j\)\(\alpha_i\)的第\(j\)个分量。

上式(10.25)显示出,为获得投影后的坐标,KPCA需对所有样本求和,因此它的计算开销较大。

(三)流形学习

3.1 流形学习概述

  流形学习(manifold learning)是一类借鉴了拓补流形概念的降维方法。”流形“是在局部与欧式空间同胚的空间,换言之,它在局部具有欧式空间的性质,能用欧式空间来进行距离计算。
这给降维方法带来了很大的启发:
  若低维流形嵌入到高维空间中,则数据样本在高维空间的分布虽然看上去非常复杂,但将其细分来看,在局部上仍具有欧式空间的性质,因此可以容易地在局部建立降维映射关系,然后再设法将局部映射关系推广到全局。当维数被降至二维或三维时,能对数据进行可视化展示,因此流形学习也可被用于可视化。

这里简单介绍其中两种著名的流形学习方法。

  • 等度量映射
  • 局部线性嵌入

3.1 等度量映射

  等度量映射(Isometric Mapping,简称Isomap)的基本出发点,是认为低维流形嵌入到高维空间之后,直接在高维空间中计算直线距离具有误导性,因为高维空间中的直线距离在低维嵌入流形上是不可达的。
  如下图(10.7)所示,低维嵌入流形上两点的距离是”测地线“(geodesic)距离:
想象一只虫子从一点爬到另一点,如果它不能脱离曲面行走,那么图10.7(a)中的红色曲面是距离最短的路径,即S曲面上的测地线,测地线距离是两点之间的本真距离。显然,直接在高维空间中计算直线距离是不恰当的。

  此时的问题需要解决的问题为,如何计算测地线距离?
考虑流形学习中”流形“的概念,我们可以利用”流形“在局部上与欧式距离同胚这个性质,对每个点基于欧式距离找出其近邻点,然后就能建立一个近邻连接图,图中近邻点之间存在连接,而非近邻点之间不存在连接。
  于是,计算高维空间中两点之间测地线距离的问题,就转变为近邻连接图上两点之间的最短路径问题。
从图10.7(b)可看出,基于近邻距离逼近能获得低维流形上测地线距离很好的近似。
  
  在近邻连接图上计算两点间的最短路径,可借鉴了拓补数据结构的方式,采用Dijkstra(迪杰斯特拉)算法或Floyd(佛洛依德)算法,在得到任意两点的距离之后,就可通过多维缩放MDS方法来获得样本点在低维空间中的坐标。

下面给出Isomap算法描述

Isomap算法描述

输入:
过程:

  1. for i = 1,2,...,m do

  2. 确定\(x_i\)的k近邻;

  3. \(x_i\)\(k\)近邻点之间的距离设置为欧式距离,与其他点的距离设置为无穷大;

  4. end for

  5. 调用最短路径算法计算任意两样本点之间的距离\(dist(x_i,x_j)\);

  6. \(dist(x_i,x_j)\)作为MDS算法的输入;

  7. return MDS算法的输出

输出:样本集\(D\)在低维空间的投影\(Z= \left\{z_1,z_2,...,z_m\right\}\).

  需注意的是,Isomap仅是得到了训练样本在低维空间的坐标,对新样本,如何将其映射到低维空间呢?
这个问题的常用解决方案,是将训练样本的高维空间坐标作为输入、低维空间坐标作为输出,训练一个回归学习器来对新样本的低维空间坐标进行预测。这显然仅是一个权宜之计,但目前似乎并没有更好的办法。

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

  • 一种是指定近邻点个数,例如欧式距离最近的\(k\)个点为近邻点,这样得到的近邻图称为\(k\)近邻图;
  • 另一种是指定距离阈值\(\epsilon\),距离小于\(\epsilon\)的被认为是近邻点,这样得到的近邻图称为\(\epsilon\)近邻图。

两种方式均有不足,例如若近邻范围指定得较大,则距离很远的点可能被误认为近邻,这样就出现”短路“问题;
近邻范围指定得较小,则图中有些区域可能与其他区域不存在连接,这样就出现”断路“问题。
短路与断路都会给后续的最短路径计算造成误导。

3.2 局部线性嵌入

  与Isomap试图保持近邻样本之间的距离不同,局部线性嵌入(Locally Linear Embedding,简称LLE)试图保持邻域内样本之间的线性关系。

如下图10.9所示,假定样本点\(x_i\)的坐标能通过它的邻域样本\(x_j\),\(x_k,x_l\)的坐标通过线性组合而重构出来,即

\[x_i = w_{ij}x_{j} + w_{ik}x_{k} + w_{il}x_{l}. \]

LLE希望式(10.26)的关系在低维空间中得以保持。

  LLE先为每个样本\(x_i\)找到其近邻下标集合\(Q_i\),然后计算出基于\(Q_i\)中的样本点对\(x_i\)进行线性重构的系数\(w_i\):

\[\min \limits_{z_1,z_2,...,z_m} \sum \limits_{i=1}^m \bigg|\bigg|x_i - \sum \limits_{j \in Q_i} w_{ij}x_{j} \bigg|\bigg|_2^2 \\ s.t. \sum \limits_{j \in Q_i}w_{ij} = 1. \quad \quad \quad (10.27) \]

  其中\(x_i\)\(x_j\)均为已知,令\(C_{jk} = (x_i - x_j)^T(x_i - x_k)\)\(w_{ij}\)有闭式解

\[w_{ij} = \frac{\sum \limits_{k \in Q_i} C_{jk}^{-1}}{\sum \limits_{l,s \in Q_i}C_{ls}^{-1}} . \quad \quad (10.28) \]

  LLE在低维空间中保持\(w_i\)保持不变,于是\(x_i\)对应的低维空间坐标\(z_i\)可通过下式求解:

\[\min \limits_{z_1,z_2,...,z_m} \sum \limits_{i=1}^m \bigg| \bigg|z_i - \sum \limits_{j \in Q_i} w_{ij}z_{j} \bigg|\bigg|_2^2 . \]

  式(10.27)和(10.29)的优化目标同形,唯一的区别是式(10.27)中需确定的是\(w_i\),而式(10.29)中需确定的是\(x_i\)对应的低维空间坐标\(z_i\).

  令\(Z=(z_1,z_2,...,z_m) \in \mathbb{R}^{d'×m},(W)_{ij} = w_{ij}\)

\[M = (I-W)^T(I-W) \quad \quad (10.30) \]

则式(10.29)可重写为

\[\begin{align} & \min \limits_{Z} tr(ZMZ^T), \\ & s.t \quad ZZ^T = I \quad \quad (10.31) \end{align}  \]

式(10.31)可通过特征值分解求解: M最小的\(d'\)个特征值对应的特征向量组成的矩阵即为\(Z^T\).

LLE的算法描述

输入: 样本集\(D = \left\{x_1, x_2,...,x_m\right\}\);
近邻参数\(k\);
低维空间维数\(d'\).
过程:

  1. for i =1,2,...,m do

  2. 确定\(x_i\)\(k\)近邻;

  3. ​ 从\(\min \limits_{z_1,z_2,...,z_m} \sum \limits_{i=1}^m \bigg|\bigg|x_i - \sum \limits_{j \in Q_i} w_{ij}x_{j} \bigg|\bigg|_2^2\)\(s.t. \sum \limits_{j \in Q_i}w_{ij} = 1 \quad(10.27).\)求得\(w_{ij},j \in Q_{i}\);

  4. 对于\(j \notin Q_i\),令\(w_{ij} = 0\);

  5. end for

  6. \(M = (I-W)^T(I-W)\quad (10.30)\)得到\(M\)

  7. 对M进行特征值分解;

  8. return M的最小\(d'\)个特征值对应的特征向量

输出:样本集\(D\)在低维空间的投影\(Z = \left\{z_1,z_2,...,z_m\right\}\).

(四)度量学习

  在机器学习中,对高维数据进行降维的主要目的是希望找到一个合适低维空间,在此空间中进行学习能比原始空间性能更高,事实上,每个空间对应了在样本属性上定义的一个距离度量,而寻找合适的空间,实质上就是在寻找一个合适的距离度量。
  那么,为何不直接尝试”学习“出一个合适的距离度量呢?这就是度量学习(metric learning)的基本动机。
  欲对距离度量进行学习,必须有一个便于学习的距离度量表达形式。我们在聚类的距离计算中有给出了很多种距离度量的表达式,例如,但它们都是”固定的“、没有可调节的参数,因此不能通过对数据样本的学习加以改善。
为此,我们先来做一个推广。
推广过程如下:
  对两个\(d\)维样本\(x_i\)\(x_j\),它们之间的平方欧式距离可写为

\[dist_{ed}^2(x_i,x_j) = ||x_i-x_j||_2^2 = dist_{ij,1}^2 + dist_{ij,2}^2 + \cdots + dist_{ij,d}^2, \quad (10.32) \]

其中\(dist_{ij,k}\)表示\(x_i\)\(x_j\)在第\(k\)维上的距离。
  若假定不同属性的重要性不同,则可引入属性权重\(w\),得到

\[dist_{wed}^2(x_i,x_j) = ||x_i - x_j||_2^2 = w_1 \cdot dist_{ij,1}^2 + w_2 \cdot dist_{ij,2}^2 + \cdots + w_d \cdot dist_{ij,d}^2 \\ = (x_i - x_j)^TW(x_i-x_j), \quad (10.33) \]

其中\(w_i \geq 0\),\(W = diag(w)\)是一个对角矩阵,\((W)_{ii} = w_i\)
  式(10.33)中的\(W\)可通过学习确定,但我们还能再往前走一步:\(W\)的非对角元素均为零,这意味着坐标轴是正交的,即属性之间无关;但现实问题总往往不是这样,例如考虑西瓜的”重量“和”体积“这两个属性,它们显然是正相关的,其对应的坐标轴不再正交。
  为此,将式(10.33)中的\(W\)替换为一个普通的半正定对称矩阵\(M\),于是就得到了马氏距离(Mahalanobis distance)

\[dist_{mah}^2(x_i,x_j) = (x_i-x_j)^TM(x_i-x_j) = ||x_i - x_j||_M^2 \quad (10.34) \]

其中\(M\)亦称"度量矩阵",而度量学习则是对M进行学习。
注意到为了保持距离非负且对称,M必然是(半)正定对称矩阵,即必有正交基P使得M能写为\(M=PP^T\)

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

  下面我们以近邻成分分析(Neighbourhood Component Analysis,简称NCA)为例进行讨论。
近邻分类器在进行判别时通常使用多数投票法,邻域中的每个样本投1票,邻域外的样本投0票。
不妨将其替换为概率投票法。对于任意样本\(x_j\),它对\(x_i\)分类结果影响的概率为

\[p_{ij} = \frac{exp \left(-||x_i - x_j||_M^2\right)}{\sum_l exp(-||x_i - x_l||_M^2)} \quad (10.35) \]

观察上式可知,当\(i=j\)时,\(p_{ij}\)最大。
显然,\(x_j\)\(x_i\)的影响随着它们之间距离的增大而减小。若以留一法(LOO)正确率的最大化为目标,则可计算\(x_i\)的留一法正确率,即它被自身之外的所有样本正确分类的概率为

\[p_i = \sum \limits_{j \in \Omega_i} p_{ij} \quad (10.36) \]

其中,\(\Omega_i\)表示与\(x_i\)属于相同类别的样本的下标集合。
于是,整个样本集上的留一法正确率为

\[\sum \limits_{i=1}^m p_i = \sum \limits_{i=1}^m \sum \limits_{j \in \Omega_i}p_{ij} .\quad (10.37) \]

将式(10.35)代入(10.37),再考虑到\(M=PP^T\),则NCA的优化目标为

\[\min \limits_{P} 1 - \sum \limits_{i=1}^m \sum \limits_{j \in \Omega_i} \frac{exp \left( -||P^Tx_i - P^Tx_j||_2^2\right)}{\sum_{l} exp \left(-||P^Tx_i - P^Tx_l||_2^2\right)}. \quad (10.38) \]

求解上式(10.38),即可得到最大化近邻分类器LOO正确率的距离度量矩阵M.

  实际上,我们不仅能把错误率这样的监督学习目标作为度量学习的优化目标,还能在度量学习中引入领域知识。例如,若已知某些样本相似、某些样本不相似,则可定义“必连”(must-link)约束集合\(\mathcal{M}\)与“勿连”(cannot-link)约束集合\(\mathcal{C}\)\((x_i,x_j) \in \mathcal{M}\)表示\(x_i\)\(x_j\)相似,\((x_i,x_k) \in \mathcal{C}\)表示\(x_i\)\(x_k\)不相似。
  
  显然,我们希望相似的样本之间的距离较小,不相似的样本之间距离越大,于是可以通过求解下面这个凸优化问题获得适当的度量矩阵\(M\)

\[\min \limits_{M} \sum \limits_{(x_i,x_j) \in \mathcal{M}}||x_i - x_j||_M^2 \quad (10.39) \\ s.t. \sum \limits_{(x_i,x_k) \in \mathcal{C}} ||x_i - x_k||_M^2 \geq 1 \\ M \preceq 0 \]

其中约束\(M \preceq 0\)表明\(M\)必须是半正定的。
式(10.39)要求在不相似样本间的距离不小于1的前提下,使相似样本间的距离尽可能小。

  不同的度量学习方法针对不同目标获得“好”的半正定对称距离度量矩阵\(M\),若\(M\)是一个低秩矩阵,则通过对\(M\)进行特征值分解,总能找到一组正交基,其正交基数目为矩阵M的秩\(rank(M)\),小于原属性数\(d\)
于是,度量学习学得的结果可衍生出一个降维矩阵\(P\in \mathbb{R}^{d×rank(M)}\),能用于降维之目的。

  

posted @ 2021-05-13 18:14  Xu_Lin  阅读(152)  评论(0编辑  收藏  举报