阅读笔记 | 《机器学习》周志华 第十章 降维与度量学习

文章目录

    • 10.1 k近邻学习
    • 10.2 低维嵌入
        • 10.2.1 维数灾难与降维
        • 10.2.2 多维缩放
        • 10.2.3 线性变换
    • 10.3 主成分分析
        • 10.3.1 两种等价推导
        • 10.3.2 其他说明
    • 10.4 核化线性降维
    • 10.5 流形学习
        • 10.5.1 等度量映射
        • 10.5.2 局部线性嵌入
    • 10.6 度量学习
        • 10.6.1 从加权欧氏距离引入度量学习
        • 10.6.2 近邻成分分析
        • 10.6.3 引入领域知识

10.1 k近邻学习

k近邻(k-Nearest Neighbor, kNN)学习是一种常用的监督学习方法,给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个样本,然后基于这k个邻居的信息进行预测,分类任务中可使用投票法,回归任务中可使用平均法,还可基于距离远近进行加权平均或加权投票,距离越近权重越大;k取不同值时,分类结果会有显著不同

  • 懒惰学习(lazy learning):在训练阶段仅仅是把样本保存起来,训练时间开销为零,待收到测试样本后在再进行处理
    • kNN没有显式的训练过程,属于懒惰学习
  • 急切学习(eager learning):在训练阶段就对样本进行学习处理

下面对最近邻分类器(1NN)在二分类问题上的性能做一个简单的讨论

给定测试样本 x \boldsymbol x x,若其最近邻样本为 z \boldsymbol z z,则最近邻分类器出错的概率就是二者类别标记不同的概率 P ( e r r ) = 1 − ∑ c ∈ Y P ( c ∣ x ) P ( c ∣ z ) P(e r r)=1-\sum_{c \in \mathcal{Y}} P(c | \boldsymbol{x}) P(c | \boldsymbol{z}) P(err)=1cYP(cx)P(cz)假设样本独立同分布,且对任意小正数 δ \delta δ,在 x \boldsymbol x x附近 δ \delta δ距离范围内总能找到一个训练样本,令 c ∗ = arg ⁡ max ⁡ c ∈ Y P ( c ∣ x ) c^{*}=\arg \max _{c \in \mathcal{Y}} P(c | \boldsymbol{x}) c=argmaxcYP(cx)表示贝叶斯最优分类器的结果,有 P ( e r r ) = 1 − ∑ c ∈ Y P ( c ∣ x ) P ( c ∣ z ) ≃ 1 − ∑ c ∈ Y P 2 ( c ∣ x ) ⩽ 1 − P 2 ( c ∗ ∣ x ) = ( 1 + P ( c ∗ ∣ x ) ) ( 1 − P ( c ∗ ∣ x ) ) ⩽ 2 × ( 1 − P ( c ∗ ∣ x ) ) \begin{aligned} P(e r r) &=1-\sum_{c \in \mathcal{Y}} P(c | \boldsymbol{x}) P(c | \boldsymbol{z}) \\ & \simeq 1-\sum_{c \in \mathcal{Y}} P^{2}(c | \boldsymbol{x}) \\ & \leqslant 1-P^{2}\left(c^{*} | \boldsymbol{x}\right) \\ &=\left(1+P\left(c^{*} | \boldsymbol{x}\right)\right)\left(1-P\left(c^{*} | \boldsymbol{x}\right)\right) \\ & \leqslant 2 \times\left(1-P\left(c^{*} | \boldsymbol{x}\right)\right) \end{aligned} P(err)=1cYP(cx)P(cz)1cYP2(cx)1P2(cx)=(1+P(cx))(1P(cx))2×(1P(cx))即最近邻分类器虽然简单,但它的泛化错误率不超过贝叶斯最优分类器错误率的两倍

10.2 低维嵌入

10.2.1 维数灾难与降维

密采样

上节讨论基于一个重要的假设,在任意测试样本 x \boldsymbol x x附近任意小的 δ \delta δ距离范围内总能找到一个训练样本,即训练样本的采样密度足够大,或称为密采样(dense sample),然而这个假设在现实任务中很难满足

维数灾难

  • 现实应用中属性维数经常成千上万,要满足密采样条件所需的样本数目是无法达到的天文数字
  • 许多学习方法涉及距离计算,高维空间会给距离计算带来很大的麻烦

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

降维

缓解维数灾难的一个重要途径就是降维(dimension reduction),也称为维数约简,即通过某种数学变换将原始高维属性空间转变为一个低维子空间(subspace),在这个子空间样本密度大幅提高,距离计算也更为容易

为什么能进行降维?很多时候人们观测或收集到的数据样本虽然是高维的,但与学习任务密切相关的也许仅是某个地位分布,即高维空间中的一个低维嵌入
阅读笔记 | 《机器学习》周志华 第十章 降维与度量学习_第1张图片

10.2.2 多维缩放

若降维时要求原始样本空间中样本之间的距离在低维空间中得以保持,则为多维缩放(Multiple Dimensional Scaling, MDS)

假定m个样本在原始空间的距离矩阵为 D ∈ R m × m \mathbf{D} \in \mathbb{R}^{m \times m} DRm×m,元素 d i s t i j dist_{ij} distij表示样本 x i \boldsymbol x_i xi x j \boldsymbol x_j xj的距离,目标是获得样本在 d ′ d' d维空间的表示 Z ∈ R d ′ × m , d ′ ≤ d \mathbf{Z} \in \mathbb{R}^{d' \times m},d'\leq d ZRd×m,dd,且任意两个样本在 d ′ d' d维空间中的欧氏距离等于原始空间中的距离,即 ∥ z i − z j ∥ = d i s t i j \left\|z_{i}-z_{j}\right\|=d i s t_{i j} zizj=distij

B = Z T Z ∈ R m × m \mathbf{B}=\mathbf{Z}^{\mathrm{T}} \mathbf{Z} \in \mathbb{R}^{m \times m} B=ZTZRm×m,其中 B \mathbf{B} B为降维后样本的内积矩阵, b i j = z i T z j b_{i j}=z_{i}^{\mathrm{T}} z_{j} bij=ziTzj,因此有 d i s t i j 2 = ∥ z i ∥ 2 + ∥ z j ∥ 2 − 2 z i T z j = b i i + b j j − 2 b i j \begin{aligned} d i s t_{i j}^{2} &=\left\|z_{i}\right\|^{2}+\left\|z_{j}\right\|^{2}-2 z_{i}^{\mathrm{T}} z_{j} \\ &=b_{i i}+b_{j j}-2 b_{i j} \end{aligned} distij2=zi2+zj22ziTzj=bii+bjj2bij

为便与讨论,令降维后的样本 Z \mathbf{Z} Z被中心化,即 ∑ i = 1 m z i = 0 \sum_{i=1}^{m} \boldsymbol{z}_{i}=\mathbf{0} i=1mzi=0,则有矩阵 B \mathbf{B} B的行和、列和均为零,即 ∑ i = 1 m b i j = ∑ j = 1 m b i j = 0 \sum_{i=1}^{m} b_{i j}=\sum_{j=1}^{m} b_{i j}=0 i=1mbij=j=1mbij=0,因此有 ∑ i = 1 m d i s t i j 2 = tr ⁡ ( B ) + m b j j \sum_{i=1}^{m} d i s t_{i j}^{2}=\operatorname{tr}(\mathbf{B})+m b_{j j} i=1mdistij2=tr(B)+mbjj ∑ i = 1 m d i s t i j 2 = tr ⁡ ( B ) + m b j j \sum_{i=1}^{m} d i s t_{i j}^{2}=\operatorname{tr}(\mathbf{B})+m b_{j j} i=1mdistij2=tr(B)+mbjj ∑ i = 1 m ∑ j = 1 m d i s t i j 2 = 2 m tr ⁡ ( B ) \sum_{i=1}^{m} \sum_{j=1}^{m} d i s t_{i j}^{2}=2 m \operatorname{tr}(\mathbf{B}) i=1mj=1mdistij2=2mtr(B)其中, tr ⁡ ( B ) = ∑ i = 1 m ∥ z i ∥ 2 \operatorname{tr}(\mathbf{B})=\sum_{i=1}^{m}\left\|\boldsymbol{z}_{i}\right\|^{2} tr(B)=i=1mzi2,因此有 dist ⁡ i . 2 = 1 m ∑ j = 1 m d i s t i j 2 \operatorname{dist}_{i .}^{2}=\frac{1}{m} \sum_{j=1}^{m} d i s t_{i j}^{2} disti.2=m1j=1mdistij2 d i s t ⋅ j 2 = 1 m ∑ i = 1 m d i s t i j 2 d i s t_{\cdot j}^{2}=\frac{1}{m} \sum_{i=1}^{m} d i s t_{i j}^{2} distj2=m1i=1mdistij2 dist. = 1 m 2 ∑ i = 1 m ∑ j = 1 m d i s t i j 2 \text {dist.}=\frac{1}{m^{2}} \sum_{i=1}^{m} \sum_{j=1}^{m} d i s t_{i j}^{2} dist.=m21i=1mj=1mdistij2综上,可得 b i j = − 1 2 ( d i s t i j 2 − d i s t i 2 − d i s t ⋅ j 2 + d i s t . . 2 ) b_{i j}=-\frac{1}{2}\left(d i s t_{i j}^{2}-d i s t_{i}^{2}-d i s t_{\cdot j}^{2}+d i s t_{. .}^{2}\right) bij=21(distij2disti2distj2+dist..2)
由此即可通过降维前后保持不变的距离矩阵 D \mathbf{D} D求取内积矩阵 B \mathbf{B} B

对矩阵B做特征值分解(eigenvalue decomposition), B = V Λ V T \mathbf{B}=\mathbf{V} \mathbf{\Lambda} \mathbf{V}^{\mathrm{T}} B=VΛVT,其中 Λ = diag ⁡ ( λ 1 , λ 2 , … , λ d ) \boldsymbol{\Lambda}=\operatorname{diag}\left(\lambda_{1}, \lambda_{2}, \dots, \lambda_{d}\right) Λ=diag(λ1,λ2,,λd)为特征值构成的对角矩阵, λ 1 ⩾ λ 2 ⩾ … ⩾ λ d \lambda_{1} \geqslant \lambda_{2} \geqslant \ldots \geqslant \lambda_{d} λ1λ2λd V \mathbf{V} V为特征向量矩阵,假定其中有 d ∗ d^* d个非零特征值,它们构成对角矩阵 Λ ∗ = diag ⁡ ( λ 1 , λ 2 , … , λ d ∗ ) \boldsymbol{\Lambda}_*=\operatorname{diag}\left(\lambda_{1}, \lambda_{2}, \dots, \lambda_{d^*}\right) Λ=diag(λ1,λ2,,λd),令 V ∗ \mathbf{V}_* V表示相应的特征向量矩阵,则 Z = Λ ∗ 1 / 2 V ∗ T ∈ R d ∗ × m \mathbf{Z}=\mathbf{\Lambda}_{*}^{1 / 2} \mathbf{V}_{*}^{\mathrm{T}} \in \mathbb{R}^{d^{*} \times m} Z=Λ1/2VTRd×m

现实应用中为了有效降维,往往仅需降维后的距离与原始空间中的距离尽可能接近,而不必严格相等,此时可取 d ′ ≪ d d^{\prime} \ll d dd个最大特征值构成对角矩阵, Λ ~ = diag ⁡ ( λ 1 , λ 2 , … , λ d ′ ) \tilde{\mathbf{\Lambda}}=\operatorname{diag}\left(\lambda_{1}, \lambda_{2}, \ldots, \lambda_{d^{\prime}}\right) Λ~=diag(λ1,λ2,,λd),令 V ~ \tilde{\mathbf{V}} V~表示相应的特征向量矩阵,则 Z = Λ ~ 1 / 2 V ~ T ∈ R d ′ × m \mathbf{Z}=\tilde{\mathbf{\Lambda}}^{1 / 2} \tilde{\mathbf{V}}^{\mathrm{T}} \in \mathbb{R}^{d^{\prime} \times m} Z=Λ~1/2V~TRd×m

算法描述如下:
阅读笔记 | 《机器学习》周志华 第十章 降维与度量学习_第2张图片

10.2.3 线性变换

欲获得低维子空间,最简单的是对原始高维空间进行线性变换,给定d维空间中的样本 X = ( x 1 , x 2 , … , x m ) ∈ R d × m \mathbf{X}=\left(\boldsymbol{x}_{1}, \boldsymbol{x}_{2}, \ldots, \boldsymbol{x}_{m}\right) \in \mathbb{R}^{d \times m} X=(x1,x2,,xm)Rd×m,变换后得到 d ′ ≤ d d^{\prime} \leq d dd维空间中的样本 Z = W T X \mathbf{Z}=\mathbf{W}^{\mathrm{T}} \mathbf{X} Z=WTX其中 W ∈ R d × d ′ \mathbf{W} \in \mathbb{R}^{d \times d^{\prime}} WRd×d是变换矩阵, Z ∈ R d ′ × m \mathbf{Z} \in \mathbb{R}^{d^{\prime} \times m} ZRd×m是样本在新空间中的表达

变换矩阵 W \mathbf{W} W可视为 d ′ d' d d d d维基向量, z i = W T x i \boldsymbol{z}_{i}=\mathbf{W}^{\mathrm{T}} \boldsymbol{x}_{i} zi=WTxi是第 i i i个样本与这 d ′ d' d个基向量分别做内积得到的 d ′ d' d个属性向量,换言之, z i \boldsymbol{z}_{i} zi是原属性向量 x i \boldsymbol{x}_{i} xi在新坐标系 { w 1 , w 2 , ⋯   , w d ′ } \left\{\boldsymbol{w}_{1}, \boldsymbol{w}_{2}, \cdots, \boldsymbol{w}_{d^{\prime}}\right\} {w1,w2,,wd}中的坐标向量,若 w i \boldsymbol{w}_{i} wi w j ( i ≠ j ) \boldsymbol{w}_{j}(i\neq j) wj(i=j)正交,则新坐标系是一个正交坐标系,此时 W \boldsymbol{W} W为正交变换,新空间中的属性是原空间中属性的线性组合

基于线性变换来进行降维的方法称为线性降维方法,不同之处是对低维子空间的性质有不同的要求,相当于对 W \boldsymbol{W} W施加了不同的约束

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

10.3 主成分分析

10.3.1 两种等价推导

如何用一个超平面(直线的高维推广)对所有样本进行恰当的表达?

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

基于重构性和最大可分性,能分别得到主成分分析(Principal Component Analysis, PCA)这一常用的降维方法的两种等价推导

基于重构性的推导

假设数据样本进行了中心化,即 ∑ i x i = 0 \sum_{i} \boldsymbol x_{i}=0 ixi=0,再假定投影变换后得到的新坐标系为 { w 1 , w 2 , … , w d } \left\{\boldsymbol{w}_{1}, \boldsymbol{w}_{2}, \ldots, \boldsymbol{w}_{d}\right\} {w1,w2,,wd},其中 w i \boldsymbol{w}_{i} wi是标准正交基向量, ∥ w i ∥ 2 = 1 , w i T w j = 0 ( i ≠ j ) \left\|\boldsymbol{w}_{i}\right\|_{2}=1, \boldsymbol{w}_{i}^{\mathrm{T}} \boldsymbol{w}_{j}=0(i\neq j) wi2=1,wiTwj=0(i=j),若丢弃新坐标系中的部分坐标,即将维度降低到 d ′ < d d^{\prime}d<d,则样本点 x i \boldsymbol x_i xi在低维坐标系中的投影是 z i = ( z i 1 ; z i 2 ; … ; z i d ′ ) \boldsymbol{z}_{i}=\left(z_{i 1} ; z_{i 2} ; \ldots ; z_{i d^{\prime}}\right) zi=(zi1;zi2;;zid),其中 z i j = w j T x i z_{i j}=\boldsymbol{w}_{j}^{\mathrm{T}} \boldsymbol{x}_{i} zij=wjTxi x i \boldsymbol{x}_{i} xi在低维坐标系下第 j j j维的坐标,若基于 z i \boldsymbol{z}_{i} zi来重构 x i \boldsymbol{x}_{i} xi,则 x ^ i = ∑ j = 1 d ′ z i j w j \hat{\boldsymbol{x}}_{i}=\sum_{j=1}^{d^{\prime}} z_{i j} \boldsymbol{w}_{j} x^i=j=1dzijwj

若考虑整个训练集,原样本点 x i \boldsymbol{x}_{i} xi与基于投影重构的样本点 x ^ i \hat{\boldsymbol{x}}_{i} x^i之间的距离为 ∑ i = 1 m ∥ ∑ j = 1 d ′ z i j w j − x i ∥ 2 = ∑ i = 1 m z i T z i − 2 ∑ i = 1 m z i T W T x i + c o n s t ∝ − tr ⁡ ( W T ( ∑ i = 1 m x i x i T ) W ) \begin{aligned} \sum_{i=1}^{m}\left\|\sum_{j=1}^{d^{\prime}} z_{i j} \boldsymbol{w}_{j}-\boldsymbol{x}_{i}\right\|^{2} &=\sum_{i=1}^{m} \boldsymbol{z}_{i}^{\mathrm{T}} \boldsymbol{z}_{i}-2 \sum_{i=1}^{m} \boldsymbol{z}_{i}^{\mathrm{T}} \mathbf{W}^{\mathrm{T}} \boldsymbol{x}_{i}+\mathrm{const} \\ & \propto-\operatorname{tr}\left(\mathbf{W}^{\mathrm{T}}\left(\sum_{i=1}^{m} \boldsymbol{x}_{i} \boldsymbol{x}_{i}^{\mathrm{T}}\right) \mathbf{W}\right) \end{aligned} i=1mj=1dzijwjxi2=i=1mziTzi2i=1mziTWTxi+consttr(WT(i=1mxixiT)W)其中, W = { w 1 , w j , … , w d } \mathbf{W}=\{\boldsymbol w_1,\boldsymbol w_j,\dots ,\boldsymbol w_d\} W={w1,wj,,wd},根据重构性,上式应被最小化,考虑到 w j \boldsymbol w_j wj是标准正交基, ∑ i x i x i T \sum_i \boldsymbol{x}_{i} \boldsymbol{x}_{i}^{\mathrm{T}} ixixiT是协方差矩阵,有 min ⁡ W − tr ⁡ ( W T X X T W )  s.t.  W T W = I \begin{array}{cl}\underset{\mathbf{W}}{\min } & {-\operatorname{tr}\left(\mathbf{W}^{\mathrm{T}} \mathbf{X} \mathbf{X}^{\mathrm{T}} \mathbf{W}\right)} \\ {\text { s.t. }} & {\mathbf{W}^{\mathrm{T}} \mathbf{W}=\mathbf{I}}\end{array} Wmin s.t. tr(WTXXTW)WTW=I

基于最大可分性的推导

样本点 x i \boldsymbol x_i xi在新空间中超平面上的投影是 W T x i \mathbf{W}^{\mathrm{T}} \boldsymbol{x}_{i} WTxi,若所有样本点的投影能尽可能分开,则应该使投影后样本点的方差最大化,投影后样本点的协方差矩阵是 ∑ i W T x i x i T W \sum_{i} \mathbf{W}^{\mathrm{T}} \boldsymbol{x}_{i} \boldsymbol{x}_{i}^{\mathrm{T}} \mathbf{W} iWTxixiTW,于是优化目标可写为 max ⁡ W tr ⁡ ( W T X X T W )  s.t.  W T W = I \begin{array}{cl}\underset{{\mathbf{W}}}{\max } & {\operatorname{tr}\left(\mathbf{W}^{\mathrm{T}} \mathbf{X} \mathbf{X}^{\mathrm{T}} \mathbf{W}\right)} \\ {\text { s.t. }} & {\mathbf{W}^{\mathrm{T}} \mathbf{W}=\mathbf{I}}\end{array} Wmax s.t. tr(WTXXTW)WTW=I

对优化目标使用拉格朗日乘子法,可得 X X T w i = λ w i \mathbf{X} \mathbf{X}^{\mathrm{T}} \mathbf{w}_i=\lambda \mathbf{w}_i XXTwi=λwi只需对协方差矩阵 X X T \mathbf{X} \mathbf{X}^{\mathrm{T}} XXT进行特征值分解,将求得的特征值排序: λ 1 ⩾ λ 2 ⩾ … ⩾ λ d \lambda_{1} \geqslant \lambda_{2} \geqslant \ldots \geqslant \lambda_{d} λ1λ2λd,再取前 d ′ d' d个特征值对应的特征向量构成 W = ( w 1 , w 2 , … , w d ′ ) \mathbf{W}=\left(\boldsymbol{w}_{1}\right.,\left.\boldsymbol{w}_{2}, \ldots, \boldsymbol{w}_{d^{\prime}}\right) W=(w1,w2,,wd),即为主成分分析的解

算法如下:
阅读笔记 | 《机器学习》周志华 第十章 降维与度量学习_第3张图片

10.3.2 其他说明

降维后的维数 d ′ d' d

  • 通常由用户事先指定
  • 通过在 d ′ d' d值不同的低维空间中对k近邻分类器(或其他开销较小的学习器)进行交叉验证来选取
  • 对PCA还可从重构的角度设置一个重构阈值,例如 t = 95 % t=95\% t=95%,然后选取使下式成立的最小 d ′ d' d ∑ i = 1 d ′ λ i ∑ i = 1 d λ i ⩾ t \frac{\sum_{i=1}^{d^{\prime}} \lambda_{i}}{\sum_{i=1}^{d} \lambda_{i}} \geqslant t i=1dλii=1dλit

PCA仅需保留 W ∗ \mathbf{W}^* W与样本的均值向量即可通过简单的向量减法和矩阵-向量乘法将新样本投影至低维空间中,降维导致最小的 d ′ − d d'-d dd个特征值的特征向量被舍弃了,但舍弃这部分信息往往是必要的:

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

10.4 核化线性降维

在不少现实任务中,可能需要非线性映射才能找到合适的低维嵌入,例如下图,样本点从二维空间中的矩形区域采样后以S形曲面嵌入到三维空间,若直接使用线性降维方法,则将丢失原本的低维结构。为了区分原本采样的低维空间与降维后的低维空间加以区分,称前者为本真(intrinsic)低维空间
阅读笔记 | 《机器学习》周志华 第十章 降维与度量学习_第4张图片
非线性降维的一种常用方法,是基于核技巧对线性降维方法进行核化(kernelized)

核主成分分析(Kernelized PCA, KPCA)

假定我们将在高维特征空间中把数据投影到由 W = ( w 1 , w 2 , … , w d ) \mathbf{W}=(\boldsymbol w_1,\boldsymbol w_2,\dots ,\boldsymbol w_d) W=(w1,w2,,wd)确定的超平面上,则对于 w j \boldsymbol w_j wj,有 ( ∑ i = 1 m z i z i T ) w j = λ w j \left(\sum_{i=1}^{m} z_{i} z_{i}^{\mathrm{T}}\right) \boldsymbol w_j=\lambda \boldsymbol w_j (i=1mziziT)wj=λwj其中, z i \boldsymbol z_i zi是样本点 x i \boldsymbol x_i xi在高维特征空间中的像,进一步有 w j = 1 λ ( ∑ i = 1 m z i z i T ) w j = ∑ i = 1 m z i z i T w j λ j = ∑ i = 1 m z i α i j \begin{aligned} \boldsymbol w_j &=\frac{1}{\lambda}\left(\sum_{i=1}^{m} z_{i} \boldsymbol{z}_{i}^{\mathrm{T}}\right) \boldsymbol w_j=\sum_{i=1}^{m} \boldsymbol{z}_{i} \frac{\boldsymbol{z}_{i}^{\mathrm{T}} \boldsymbol w_j}{\lambda_j} \\ &=\sum_{i=1}^{m} \boldsymbol{z}_{i} \alpha_{i}^j \end{aligned} wj=λ1(i=1mziziT)wj=i=1mziλjziTwj=i=1mziαij其中 α i j = z i T w j λ j \alpha_{i}^j=\frac{\boldsymbol{z}_{i}^{\mathrm{T}} \boldsymbol w_j}{\lambda_j} αij=λjziTwj α i \boldsymbol \alpha_i αi的第 j j j个分量,假定 z i \boldsymbol z_i zi是样本点 x i \boldsymbol x_i xi通过映射 ϕ \phi ϕ产生的,即 z i = ϕ ( x i ) , i = 1 , 2 , … , m \boldsymbol{z}_{i}=\phi\left(\boldsymbol{x}_{i}\right), i=1,2, \ldots, m zi=ϕ(xi),i=1,2,,m,若 ϕ \phi ϕ能被显式表达出来,则通过它将样本映射到高维特征空间,再在特征空间中实施PCA即可 ( ∑ i = 1 m ϕ ( x i ) ϕ ( x i ) T ) w j = λ w j \left(\sum_{i=1}^{m} \phi\left(\boldsymbol{x}_{i}\right) \phi\left(\boldsymbol{x}_{i}\right)^{\mathrm{T}}\right) \boldsymbol w_j=\lambda \boldsymbol w_j (i=1mϕ(xi)ϕ(xi)T)wj=λwj w j = ∑ i = 1 m ϕ ( x i ) α i j \boldsymbol w_j=\sum_{i=1}^{m} \phi\left(\boldsymbol{x}_{i}\right) {\alpha}_{i}^j wj=i=1mϕ(xi)αij

一般情形下,我们不清楚 ϕ \phi ϕ的具体形式,于是引入核函数 κ ( x i , x j ) = ϕ ( x i ) T ϕ ( x j ) \kappa\left(\boldsymbol{x}_{i}, \boldsymbol{x}_{j}\right)=\phi\left(\boldsymbol{x}_{i}\right)^{\mathrm{T}} \phi\left(\boldsymbol{x}_{j}\right) κ(xi,xj)=ϕ(xi)Tϕ(xj)
将上两式代入 ( ∑ i = 1 m ϕ ( x i ) ϕ ( x i ) T ) w j = λ w j \left(\sum_{i=1}^{m} \phi\left(\boldsymbol{x}_{i}\right) \phi\left(\boldsymbol{x}_{i}\right)^{\mathrm{T}}\right) \boldsymbol w_j=\lambda \boldsymbol w_j (i=1mϕ(xi)ϕ(xi)T)wj=λwj,化简可得 K α j = λ j α j \mathbf{K}\boldsymbol \alpha_j=\lambda_j\boldsymbol \alpha_j Kαj=λjαj其中 K \mathbf{K} K κ \kappa κ对应的核矩阵, K i j = κ ( x i , x j ) , α j = ( α 1 j ; α 2 j ; …   ; α m j ) \mathbf{K}_{ij}=\kappa (\boldsymbol x_i,\boldsymbol x_j),\boldsymbol \alpha_j=(\alpha_1^j;\alpha_2^j;\dots ;\alpha_m^j) Kij=κ(xi,xj),αj=(α1j;α2j;;αmj)(分号代表是列向量),显然,上式是特征值分解问题,取 K \mathbf{K} K最大的 d ′ d' d个特征值对应的特征向量即可

对新样本 x \boldsymbol x x,其投影后的第 j ( j = 1 , 2 , … , d ′ ) j(j=1,2,\dots ,d') j(j=1,2,,d)维坐标为 z j = w j T ϕ ( x ) = ∑ i = 1 m α i j ϕ ( x i ) T ϕ ( x ) = ∑ i = 1 m α i j κ ( x i , x ) \begin{aligned} z_{j} &=\boldsymbol{w}_{j}^{\mathrm{T}} \phi(\boldsymbol{x})=\sum_{i=1}^{m} \alpha_{i}^{j} \phi\left(\boldsymbol{x}_{i}\right)^{\mathrm{T}} \phi(\boldsymbol{x}) \\ &=\sum_{i=1}^{m} \alpha_{i}^{j} \kappa\left(\boldsymbol{x}_{i}, \boldsymbol{x}\right) \end{aligned} zj=wjTϕ(x)=i=1mαijϕ(xi)Tϕ(x)=i=1mαijκ(xi,x)其中, α i \boldsymbol \alpha_i αi已经过规范化,上式表明,为获得投影后的坐标,KPCA需对所有样本求和,因此计算开销较大

10.5 流形学习

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

10.5.1 等度量映射

等度量映射(Isometric Mapping, Isomap)认为低维流形嵌入到高维空间之后,直接在高维空间中计算直线距离有误导性,因为高维空间中的直线距离在低维嵌入流形上不可达的,低维嵌入流形上两点间的距离是测地线(geodesic)距离(红色线),测地线距离是两点间的本真距离

阅读笔记 | 《机器学习》周志华 第十章 降维与度量学习_第5张图片
计算测地线距离时,我们可利用流形在局部上与欧式空间同胚的性质,对每个点基于欧氏距离找出其近邻点,建立近邻连接图,图上近邻点之间有连接,非近邻点没有连接,将问题转化为计算近邻连接图上两点之间的最短路径问题,可采用著名的Dijkstra算法或Floyd算法,得到两点间的距离后,就可通过MDS方法(10.2节)来获得样本点在低维空间中的坐标。Isomap算法如下:

阅读笔记 | 《机器学习》周志华 第十章 降维与度量学习_第6张图片
Isomap仅得到了训练样本在低维空间的坐标,对于新样本如何将其映射到低维空间呢?常用方法是将训练样本的高维空间坐标作为输入,低维空间坐标作为输出,训练一个回归学习器来对新样本的低维空间坐标进行预测

对近邻图的构建通常有两种做法,一种是指定近邻点个数,例如欧氏距离最近的k个点为近邻点,称为k近邻图,另一种是指定距离阈值 ϵ \epsilon ϵ,距离小于 ϵ \epsilon ϵ的点为近邻点,称为 ϵ \epsilon ϵ近邻图。两种方法均有不足,若近邻范围指定得较大,则距离较远的点可能被误认为近邻,会出现短路问题,近邻范围指定得较小,则图中有些区域可能与其他区域不存在连接,会出现断路问题,二者都会给后续的最短路径计算造成误导

10.5.2 局部线性嵌入

与Isomap试图保持近邻样本之间的距离不同,局部线性嵌入(Locally Linear Embedding)试图保持邻域内样本之间的线性关系,假定样本点 x i \boldsymbol x_i xi能通过邻域样本 x j , x k , x l \boldsymbol x_j,\boldsymbol x_k,\boldsymbol x_l xj,xk,xl的坐标通过线性组合重构出来,即 x i = w i j x j + w i k x k + w i l x l \boldsymbol{x}_{i}=w_{i j} \boldsymbol{x}_{j}+w_{i k} \boldsymbol{x}_{k}+w_{i l} \boldsymbol{x}_{l} xi=wijxj+wikxk+wilxlLLE希望上述关系能在低维空间中得以保持

阅读笔记 | 《机器学习》周志华 第十章 降维与度量学习_第7张图片
LLE先为每个样本 x i \boldsymbol x_i xi找到其近邻下标集合 Q i Q_i Qi,然后计算出线性重构的系数 w i \boldsymbol w_i wi min ⁡ w 1 , w 2 , … , w m ∑ i = 1 m ∥ x i − ∑ j ∈ Q i w i j x j ∥ 2 2  s.t.  ∑ j ∈ Q i w i j = 1 \begin{aligned} \underset{\boldsymbol{w}_{1}, \boldsymbol{w}_{2}, \ldots, \boldsymbol{w}_{m}}{\min} & \sum_{i=1}^{m}\left\|\boldsymbol{x}_{i}-\sum_{j \in Q_{i}} w_{i j} \boldsymbol{x}_{j}\right\|_{2}^{2} \\ \text { s.t. } & \sum_{j \in Q_{i}} w_{i j}=1\end{aligned} w1,w2,,wmmin s.t. i=1mxijQiwijxj22jQiwij=1

其中 x i , x j \boldsymbol x_i,\boldsymbol x_j xi,xj均为已知,令 C j k = ( x i − x j ) T ( x i − x k ) C_{j k}=\left(\boldsymbol{x}_{i}-\boldsymbol{x}_{j}\right)^{\mathrm{T}}\left(\boldsymbol{x}_{i}-\boldsymbol{x}_{k}\right) Cjk=(xixj)T(xixk) w i j w_{ij} wij有闭式解 w i j = ∑ k ∈ Q i C j k − 1 ∑ l , s ∈ Q i C l s − 1 w_{i j}=\frac{\sum_{k \in Q_{i}} C_{j k}^{-1}}{\sum_{l, s \in Q_{i}} C_{l s}^{-1}} wij=l,sQiCls1kQiCjk1

LLE在低维空间中保持 w i \boldsymbol w_i wi不变,于是 x i \boldsymbol x_i xi在对应的低维空间坐标 z i \boldsymbol z_i zi可通过下式求解 min ⁡ z 1 , z 2 , … , z m ∑ i = 1 m ∥ z i − ∑ j ∈ Q i w i j z j ∥ 2 2 \min _{\boldsymbol{z}_{1}, \boldsymbol{z}_{2}, \ldots, \boldsymbol{z}_{m}} \sum_{i=1}^{m}\left\|\boldsymbol{z}_{i}-\sum_{j \in Q_{i}} w_{i j} \boldsymbol{z}_{j}\right\|_{2}^{2} z1,z2,,zmmini=1mzijQiwijzj22 Z = ( z 1 , z 2 , … , z m ) ∈ R d ′ × m , ( W ) i j = w i j , M = ( I − W ) T ( I − W ) \mathbf{Z}=\left(\boldsymbol{z}_{1}, \boldsymbol{z}_{2}, \ldots, \boldsymbol{z}_{m}\right) \in \mathbb{R}^{d^{\prime} \times m},(\mathbf{W})_{i j}=w_{i j},\mathbf{M}=(\mathbf{I}-\mathbf{W})^{\mathrm{T}}(\mathbf{I}-\mathbf{W}) Z=(z1,z2,,zm)Rd×m,(W)ij=wij,M=(IW)T(IW),则上式可重写为 min ⁡ z tr ⁡ ( Z M Z T )  s.t.  Z Z T = I \begin{array}{l}\underset{{\mathbf{z}} }{\min} & \operatorname{tr}\left(\mathbf{Z} \mathbf{M} \mathbf{Z}^{\mathrm{T}}\right) \\ \text { s.t. } & \mathbf{Z} \mathbf{Z}^{\mathrm{T}}=\mathbf{I}\end{array} zmin s.t. tr(ZMZT)ZZT=I理解: Z ( 1 − W ) T \mathbf{Z}(1-\mathbf{W})^\mathrm{T} Z(1W)T d × m d\times m d×m维的,其第一行乘以其转秩的第一列是上上式里面的每个 z i − ∑ j ∈ Q i w i j z j \boldsymbol{z}_{i}-\sum_{j \in Q_{i}} w_{i j} \boldsymbol{z}_{j} zijQiwijzj的第一个分量求平方和

上式可通过特征值分解求解: M \mathbf{M} M最小的 d ′ d' d个特征值对应的特征向量组成的矩阵即为 Z T \mathbf{Z}^\mathrm{T} ZT,算法如下所示,对于不在样本 x i \boldsymbol x_i xi邻域区域的样本 x j \boldsymbol x_j xj,无论其如何变化都对 x i \boldsymbol x_i xi z i \boldsymbol z_i zi没有任何影响,这种将变动限制在局部的思想在很多地方都有用

阅读笔记 | 《机器学习》周志华 第十章 降维与度量学习_第8张图片

10.6 度量学习

对高维数据进行降维的主要目的是希望找到一个合适的低维空间,在此空间中进行学习能比原始空间性能更好,事实上每个空间对应了样本属性上定义的一个距离度量,而寻找合适的空间实质上就是在寻找一个合适的距离度量,度量学习(metric learning)的基本动机即为直接学习出一个合适的距离度量

10.6.1 从加权欧氏距离引入度量学习

对两个d维样本 x i , x j \boldsymbol x_i,\boldsymbol x_j xi,xj,假定不同属性的重要性不同,则可引入属性权重,其平方加权欧氏距离为 dist ⁡ w e d 2 ( x i , x j ) = ∥ x i − x j ∥ 2 2 = w 1 ⋅ d i s t i j , 1 2 + w 2 ⋅ d i s t i j , 2 2 + … + w d ⋅ d i s t i j , d 2 = ( x i − x j ) T W ( x i − x j ) \begin{aligned} \operatorname{dist}_{\mathrm{wed}}^{2}\left(\boldsymbol{x}_{i}, \boldsymbol{x}_{j}\right) &=\left\|\boldsymbol{x}_{i}-\boldsymbol{x}_{j}\right\|_{2}^{2}=w_{1} \cdot d i s t_{i j, 1}^{2}+w_{2} \cdot d i s t_{i j, 2}^{2}+\ldots+w_{d} \cdot d i s t_{i j, d}^{2} \\ &=\left(\boldsymbol{x}_{i}-\boldsymbol{x}_{j}\right)^{\mathrm{T}} \mathbf{W}\left(\boldsymbol{x}_{i}-\boldsymbol{x}_{j}\right) \end{aligned} distwed2(xi,xj)=xixj22=w1distij,12+w2distij,22++wddistij,d2=(xixj)TW(xixj)

其中, w i ⩾ 0 , W = diag ⁡ ( w ) w_{i} \geqslant 0, \mathbf{W}=\operatorname{diag}(\boldsymbol{w}) wi0,W=diag(w)是一个对角阵,可通过学习确定

进一步, W \mathbf{W} W的非对角元素均为零,这意味着坐标轴是正交的,即属性之间无关,但现实任务中往往不是这样,如西瓜的重量和体积正相关,为此,将 W \mathbf{W} W替换为一个普通的半正定矩阵 M \mathbf{M} M(保持距离非负且对称,即必有正交基 P \mathbf{P} P使得 M = P P T \mathbf{M}=\mathbf{P} \mathbf{P}^{\mathrm{T}} M=PPT),可得到马氏距离(Mahalanobis distance): dist ⁡ mah ⁡ 2 ( x i , x j ) = ( x i − x j ) T M ( x i − x j ) = ∥ x i − x j ∥ M 2 \operatorname{dist}_{\operatorname{mah}}^{2}\left(\boldsymbol{x}_{i}, \boldsymbol{x}_{j}\right)=\left(\boldsymbol{x}_{i}-\boldsymbol{x}_{j}\right)^{\mathrm{T}} \mathbf{M}\left(\boldsymbol{x}_{i}-\boldsymbol{x}_{j}\right)=\left\|\boldsymbol{x}_{i}-\boldsymbol{x}_{j}\right\|_{\mathrm{M}}^{2} distmah2(xi,xj)=(xixj)TM(xixj)=xixjM2其中, M \mathbf{M} M称为度量矩阵,度量学习则是对 M \mathbf{M} M进行学习

10.6.2 近邻成分分析

M \mathbf{M} M学习要设置一个目标,假定我们希望提高近邻分类器的性能,则可将 M \mathbf{M} M嵌入到其评价指标中去,通过优化该性能指标求得,下面以近邻成分分析为例进行讨论

近邻成分分析在进行判别时通常采用多数投票法,不妨将其替换为概率投票法,对任意样本 x j \boldsymbol x_j xj,它对 x i \boldsymbol x_i xi分类结果影响的概率为 p i j = exp ⁡ ( − ∥ x i − x j ∥ M 2 ) ∑ l exp ⁡ ( − ∥ x i − x l ∥ M 2 ) p_{i j}=\frac{\exp \left(-\left\|\boldsymbol{x}_{i}-\boldsymbol{x}_{j}\right\|_{\mathrm{M}}^{2}\right)}{\sum_{l} \exp \left(-\left\|\boldsymbol{x}_{i}-\boldsymbol{x}_{l}\right\|_{\mathrm{M}}^{2}\right)} pij=lexp(xixlM2)exp(xixjM2)显然,距离越大影响越小,自身的影响最大,若以留一法(LOO)正确率的最大化为目标,则可计算 x i \boldsymbol x_i xi的留一法正确率,即它被自身之外的所有样本正确分类的概率为 p i = ∑ j ∈ Ω i p i j p_{i}=\sum_{j \in \Omega_{i}} p_{i j} pi=jΩipij其中 Ω i \Omega_i Ωi表示与 x i \boldsymbol x_i xi属于相同类别的样本的下标集合,于是整个样本集上的留一法正确率为 ∑ i = 1 m p i = ∑ i = 1 m ∑ j ∈ Ω i p i j \sum_{i=1}^{m} p_{i}=\sum_{i=1}^{m} \sum_{j \in \Omega_{i}} p_{i j} i=1mpi=i=1mjΩipij,即NCA的优化目标为 min ⁡ P 1 − ∑ i = 1 m ∑ j ∈ Ω i exp ⁡ ( − ∥ P T x i − P T x j ∥ 2 2 ) ∑ l exp ⁡ ( − ∥ P T x i − P T x l ∥ 2 2 ) \min _{\mathbf{P}} 1-\sum_{i=1}^{m} \sum_{j \in \Omega_{i}} \frac{\exp \left(-\left\|\mathbf{P}^{\mathrm{T}} \boldsymbol{x}_{i}-\mathbf{P}^{\mathrm{T}} \boldsymbol{x}_{j}\right\|_{2}^{2}\right)}{\sum_{l} \exp \left(-\left\|\mathbf{P}^{\mathrm{T}} \boldsymbol{x}_{i}-\mathbf{P}^{\mathrm{T}} \boldsymbol{x}_{l}\right\|_{2}^{2}\right)} Pmin1i=1mjΩilexp(PTxiPTxl22)exp(PTxiPTxj22)从而可得到最大化近邻分类器LOO正确率的距离度量矩阵 M \mathbf{M} M

10.6.3 引入领域知识

若已知某些样本相似,某些样本不相似,则可定义必连(must-link)约束集合 M \mathcal{M} M和勿连(cannot-link)约束集合 C \mathcal{C} C ( x i , x j ) ∈ M \left(\boldsymbol{x}_{i}, \boldsymbol{x}_{j}\right) \in \mathcal{M} (xi,xj)M表示二者相似, ( x i , x j ) ∈ C \left(\boldsymbol{x}_{i}, \boldsymbol{x}_{j}\right) \in \mathcal{C} (xi,xj)C表示二者不相似,显然我们希望相似的样本之间距离小,不相似的样本之间距离大,因此优化目标为 min ⁡ M ∑ ( x i , x j ) ∈ M ∥ x i − x j ∥ M 2  s.t.  ∑ ( x i , x k ) ∈ C ∥ x i − x k ∥ M 2 ⩾ 1 M ⪰ 0 \begin{array}{cl}\underset{{\mathbf{M}}}{\min} & {\sum_{\left(\boldsymbol{x}_{i}, \boldsymbol{x}_{j}\right) \in \mathcal{M}}\left\|\boldsymbol{x}_{i}-\boldsymbol{x}_{j}\right\|_{\mathrm{M}}^{2}} \\ {\text { s.t. }} & {\sum_{\left(\boldsymbol{x}_{i}, \boldsymbol{x}_{k}\right) \in \mathcal{C}}\left\|\boldsymbol{x}_{i}-\boldsymbol{x}_{k}\right\|_{\mathrm{M}}^{2} \geqslant 1} \\ & {\mathbf{M} \succeq 0}\end{array} Mmin s.t. (xi,xj)MxixjM2(xi,xk)CxixkM21M0其中, M ⪰ 0 {\mathbf{M} \succeq 0} M0表明 M \mathbf{M} M必须是半正定的,上式要求在不相似样本间的距离不小于1的前提下相似样本间的距离尽可能小

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

你可能感兴趣的:(机器学习)