(《机器学习》完整版系列)第10章 降维与度量学习——10.7 核化线性降维(线性降维+“核技巧”)

文章介绍了如何通过核主成分分析(KPCA)实现非线性降维,利用核函数将原始数据从d维升至d+d维,然后应用PCA算法降维至d维。关键步骤包括特征向量的计算和数据的非线性变换,最终达到曲线救国的效果,将高维数据转换为低维表示。
摘要由CSDN通过智能技术生成

前面的主成分分析(PCA)是线性降维(变换式为线性的),若加上“核技巧”,则为“核主成分分析(KPCA)”。
“核技巧”,它是采用“曲线救国”的道路, 本应该将 d d d维的 x \boldsymbol{x} x直接降成 d ′ d' d维的 y \boldsymbol{y} y,改为: 先用非线性变换(核函数)将 d d d维的 x \boldsymbol{x} x升维成 d + d^+ d+维的 z \boldsymbol{z} z,再对 d + d^+ d+维的 z \boldsymbol{z} z使用PCA算法降成 d ′ d' d维的 y \boldsymbol{y} y

核化线性降维

在【西瓜书第6章】讨论了“核技巧”,它是采用“曲线救国”的道路,这里仍采用此策略。 本应该将 d d d维的 x \boldsymbol{x} x直接降成 d ′ d' d维的 y \boldsymbol{y} y,改为: 先用非线性变换(核函数)将 d d d维的 x \boldsymbol{x} x升维成 d + d^+ d+维的 z \boldsymbol{z} z,再对 d + d^+ d+维的 z \boldsymbol{z} z使用PCA算法降成 d ′ d' d维的 y \boldsymbol{y} y,如图10.1所示。
图10.1 KPCA路径

图10.1 KPCA路径

显然,这里的 z \boldsymbol{z} z y \boldsymbol{y} y分别充当了上节的 x \boldsymbol{x} x z \boldsymbol{z} z,对照上节的【西瓜书式(10.17)】即有【西瓜书式(10.19)】(注:这里 i i i为样本编号( i = 1 , 2 , ⋯   , m i=1,2,\cdots,m i=1,2,,m), j j j为样本的维度编号( j = 1 , 2 , ⋯   , d j=1,2,\cdots,d j=1,2,,d)),或由式(10.60)对应有
Z Z T = W Λ W T , W T W = I \begin{align} \mathbf{Z}\mathbf{Z}^{\mathrm{T}}=\mathbf{W}\boldsymbol{\Lambda }\mathbf{W}^{\mathrm{T}},\quad \mathbf{W}^{\mathrm{T}}\mathbf{W}=\mathbf{I} \tag{10.65} \end{align} ZZT=WΛWT,WTW=I(10.65)

W T Z Z T W = Λ , W T W = I \begin{align} \mathbf{W}^{\mathrm{T}}\mathbf{Z}\mathbf{Z}^{\mathrm{T}}\mathbf{W}=\boldsymbol{\Lambda },\quad \mathbf{W}^{\mathrm{T}}\mathbf{W}=\mathbf{I} \tag{10.66} \end{align} WTZZTW=Λ,WTW=I(10.66)

从式(10.66)知,以 W T Z \mathbf{W}^{\mathrm{T}}\mathbf{Z} WTZ为整体变量即可消去 W \mathbf{W} W,从而启发我们引入如下变换式:
{ α i j = 1 λ j z i T w j z i = ϕ ( x i ) \begin{align} \begin{cases} {\alpha }_i^j=\frac{1}{{\lambda }_j}\boldsymbol{z}_i^{\mathrm{T}}\boldsymbol{w}_j \\ \boldsymbol{z}_i=\phi (\boldsymbol{x}_i) \\ \end{cases} \tag{10.67} \end{align} {αij=λj1ziTwjzi=ϕ(xi)(10.67)

(i)式(10.67)代入【西瓜书式(10.19)】消去 w \boldsymbol{w} w,有

∑ i = 1 m ϕ ( x i ) ϕ ( x i ) T ∑ i = 1 m ϕ ( x i ) α i j = λ j ∑ i = 1 m ϕ ( x i ) α i j \begin{align} \sum_{i=1}^m\phi(\boldsymbol{x}_i)\phi(\boldsymbol{x}_i)^{\mathrm{T}}\sum_{i=1}^m\phi (\boldsymbol{x}_i){\alpha }_i^j={\lambda }_j\sum_{i=1}^m\phi (\boldsymbol{x}_i){\alpha }_i^j \tag{10.68} \end{align} i=1mϕ(xi)ϕ(xi)Ti=1mϕ(xi)αij=λji=1mϕ(xi)αij(10.68)
注意:易错误地化为
[ ∑ i = 1 m ϕ ( x i ) ϕ ( x i ) T − λ j ] ∑ i = 1 m ϕ ( x i ) α i j = 0 [\sum_{i=1}^m\phi(\boldsymbol{x}_i)\phi(\boldsymbol{x}_i)^{\mathrm{T}}-{\lambda }_j]\sum_{i=1}^m\phi (\boldsymbol{x}_i){\alpha }_i^j=0\notag [i=1mϕ(xi)ϕ(xi)Tλj]i=1mϕ(xi)αij=0
更正: λ j {\lambda }_j λj应为 λ j I {\lambda }_j\mathbf{I} λjI

引入记号
{ K = 以 ( K ) i j 为元素的矩阵 = 以 K i 为行的矩阵 ( K ) i j = κ ( x i , x j ) = ϕ ( x i ) T ϕ ( x j ) α j = ( α 1 j ; α 2 j ; ⋯   ; α m j ) ϕ = ( ϕ ( x 1 ) ; ϕ ( x 2 ) ; ⋯   ; ϕ ( x m ) ) \begin{align} \begin{cases} \mathbf{K} =\text{以$(\mathbf{K})_{ij}$为元素的矩阵}=\text{以$\mathbf{K}_{i}$为行的矩阵} \\ (\mathbf{K})_{ij}=\kappa (\boldsymbol{x}_i,\boldsymbol{x}_j)={\phi (\boldsymbol{x}_i)}^{\mathrm{T}}\phi (\boldsymbol{x}_j) \\ \boldsymbol{\alpha }^j=({\alpha }_1^j;{\alpha }_2^j;\cdots;{\alpha }_m^j) \\ \boldsymbol{\phi} =(\phi (\boldsymbol{x}_1);\phi (\boldsymbol{x}_2);\cdots;\phi (\boldsymbol{x}_m)) \\ \end{cases} \tag{10.69} \end{align} K=(K)ij为元素的矩阵=Ki为行的矩阵(K)ij=κ(xi,xj)=ϕ(xi)Tϕ(xj)αj=(α1j;α2j;;αmj)ϕ=(ϕ(x1);ϕ(x2);;ϕ(xm))(10.69)

式(10.68)右边 = λ j ϕ T α j 式(10.68)左边 = ∑ i = 1 m ϕ ( x i ) ϕ ( x i ) T ∑ k = 1 m ϕ ( x k ) α k j = ∑ i = 1 m ∑ k = 1 m ϕ ( x i ) ϕ ( x i ) T ϕ ( x k ) α k j = ∑ i = 1 m ∑ k = 1 m ϕ ( x i ) κ ( x i , x k ) α k j = ∑ i = 1 m ϕ ( x i ) ( ∑ k = 1 m κ ( x i , x k ) α k j ) = ∑ i = 1 m ϕ ( x i ) ( ∑ k = 1 m ( K ) i k α k j ) = ∑ i = 1 m ϕ ( x i ) K i α j = ( ∑ i = 1 m ϕ ( x i ) K i ) α j = ϕ T K α j \begin{align} \text{式(10.68)右边} & ={\lambda }_j\boldsymbol{\phi}^{\mathrm{T}}\boldsymbol{\alpha }^j\tag{10.70} \\ \text{式(10.68)左边} & =\sum_{i=1}^m\phi(\boldsymbol{x}_i)\phi(\boldsymbol{x}_i)^{\mathrm{T}}\sum_{k=1}^m\phi (\boldsymbol{x}_k){\alpha }_k^j\notag \\ & =\sum_{i=1}^m\sum_{k=1}^m\phi(\boldsymbol{x}_i)\phi(\boldsymbol{x}_i)^{\mathrm{T}}\phi (\boldsymbol{x}_k){\alpha }_k^j\notag \\ & =\sum_{i=1}^m\sum_{k=1}^m\phi(\boldsymbol{x}_i)\kappa (\boldsymbol{x}_i,\boldsymbol{x}_k){\alpha }_k^j\notag \\ & =\sum_{i=1}^m\phi(\boldsymbol{x}_i)\left(\sum_{k=1}^m\kappa (\boldsymbol{x}_i,\boldsymbol{x}_k){\alpha }_k^j\right)\notag \\ & =\sum_{i=1}^m\phi(\boldsymbol{x}_i)\left(\sum_{k=1}^m(\mathbf{K})_{ik}{\alpha }_k^j\right)\notag \\ & =\sum_{i=1}^m\phi(\boldsymbol{x}_i)\mathbf{K}_{i}\boldsymbol{\alpha }^j\notag \\ & =\left(\sum_{i=1}^m\phi(\boldsymbol{x}_i)\mathbf{K}_{i}\right)\boldsymbol{\alpha }^j\notag \\ & =\boldsymbol{\phi}^{\mathrm{T}}\mathbf{K}\boldsymbol{\alpha }^j \tag{10.71} \end{align} (10.68)右边(10.68)左边=λjϕTαj=i=1mϕ(xi)ϕ(xi)Tk=1mϕ(xk)αkj=i=1mk=1mϕ(xi)ϕ(xi)Tϕ(xk)αkj=i=1mk=1mϕ(xi)κ(xi,xk)αkj=i=1mϕ(xi)(k=1mκ(xi,xk)αkj)=i=1mϕ(xi)(k=1m(K)ikαkj)=i=1mϕ(xi)Kiαj=(i=1mϕ(xi)Ki)αj=ϕTKαj(10.70)(10.71)
则由式(10.70)、式(10.71)有
ϕ T ( K α j − λ j α j ) = 0 \begin{align} \boldsymbol{\phi}^{\mathrm{T}}(\mathbf{K}\boldsymbol{\alpha }^j-{\lambda }_j\boldsymbol{\alpha }^j)=\mathbf{0} \tag{10.72} \end{align} ϕT(Kαjλjαj)=0(10.72)
由于 ϕ \boldsymbol{\phi} ϕ已由数据集 D D D确定,即它为常向量。 故式(10.72)转化为
K α j = λ j α j \begin{align} \mathbf{K}\boldsymbol{\alpha }^j={\lambda }_j\boldsymbol{\alpha }^j \tag{10.73} \end{align} Kαj=λjαj(10.73)
即为【西瓜书式(10.24)】,比较【西瓜书式(10.24)】与【西瓜书式(10.17)】,形式一样,故向量 α j \boldsymbol{\alpha }^j αj解法一样。 即: 对矩阵 K \mathbf{K} K进行特征分解,取最大的 d ′ d' d个特征值对应的特征向量即为所求(参考式(10.17)): α 1 , α 2 , ⋯   , α d ′ \boldsymbol{\alpha }^1,\boldsymbol{\alpha }^2,\cdots,\boldsymbol{\alpha }^{d'} α1,α2,,αd

(ii)式(10.67)代入【西瓜书式(10.19)】消去 z \boldsymbol{z} z,则有
w j = ∑ i = 1 m ϕ ( x i ) α i j \begin{align} \boldsymbol{w}_j=\sum_{i=1}^m\phi(\boldsymbol{x}_i){\alpha }_i^j \tag{10.74} \end{align} wj=i=1mϕ(xi)αij(10.74)
即是由【西瓜书式(10.20)】得到的【西瓜书式(10.22)】。

回到图10.1, z \boldsymbol{z } z y \boldsymbol{y } y为PCA,由式(10.34)有
y = W ^ T z = ( w 1 , w 2 , ⋯   , w d ′ ) T z = ( w 1 T   z ; w 2 T   z ; ⋯   ; w d ′ T   z ) \begin{align} \boldsymbol{y } & ={\hat{\mathbf{W }}}^{\mathrm{T}}\boldsymbol{z }\notag \\ & =(\boldsymbol{w}_1,\boldsymbol{w}_2,\cdots,\boldsymbol{w}_{d'})^{\mathrm{T}}\boldsymbol{z }\notag \\ & =(\boldsymbol{w}_1^{\mathrm{T}}\,\boldsymbol{z };\boldsymbol{w}_2^{\mathrm{T}}\,\boldsymbol{z };\cdots;\boldsymbol{w}_{d'}^{\mathrm{T}}\,\boldsymbol{z }) \tag{10.75} \end{align} y=W^Tz=(w1,w2,,wd)Tz=(w1Tz;w2Tz;;wdTz)(10.75)
由式(10.75)得分量表达
y j = w j T z ( y j 为向量 y 的第 j 个分量) = ( ∑ i = 1 m ϕ ( x i ) α i j ) T ϕ ( x ) (由式(10.74)) = ∑ i = 1 m ( α i j ) T ϕ ( x i ) T ϕ ( x ) = ∑ i = 1 m α i j κ ( x i , x ) \begin{align} y_j & =\boldsymbol{w}_j^{\mathrm{T}}\boldsymbol{z }\qquad\text{($y_j$为向量$\boldsymbol{y }$的第$j$个分量)}\notag \\ & =\left(\sum_{i=1}^m\phi(\boldsymbol{x}_i){\alpha }_i^j\right)^{\mathrm{T}}\phi(\boldsymbol{x})\quad \text{(由式(10.74))}\notag \\ & =\sum_{i=1}^m({\alpha }_i^j)^{\mathrm{T}}\phi(\boldsymbol{x}_i)^{\mathrm{T}}\phi(\boldsymbol{x})\notag \\ & =\sum_{i=1}^m{{\alpha }_i^j}\kappa (\boldsymbol{x}_i,\boldsymbol{x}) \tag{10.76} \end{align} yj=wjTzyj为向量y的第j个分量)=(i=1mϕ(xi)αij)Tϕ(x)(由式(10.74)=i=1m(αij)Tϕ(xi)Tϕ(x)=i=1mαijκ(xi,x)(10.76)
其中, α i j {\alpha }_i^j αij已通过上述特征向量求出了,这即为【西瓜书式(10.25)】,取 j = 1 , 2 , ⋯   , d ′ j=1,2,\cdots,d' j=1,2,,d,则实现了将 d d d维的 x \boldsymbol{x } x降为 d ′ d' d维的 y \boldsymbol{y } y

本文为原创,您可以:

  • 点赞(支持博主)
  • 收藏(待以后看)
  • 转发(他考研或学习,正需要)
  • 评论(或讨论)
  • 引用(支持原创)
  • 不侵权

上一篇:10.6 图像压缩(图像坐标x压缩成了坐标z么?错!)
下一篇:10.8 流形学习(等度量映射Isomap算法、局部线性嵌入LLE算法)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值