5 降维 Dimention Reduction


在机器学习中,我们最关心的是 泛化误差,在降低泛化误差的过程中,我们需要克服的最大困难便是 过拟合(overfitting)

我们知道,解决过拟合的问题除了正则化添加数据之外,降维就是最好的方法。

高维度的disadvantages(维度灾难)
高维度有更大的特征空间,需要更多的数据才可以进行较准确的估计。若特征是二值的,则每增加一个特征,所需数据量都在以2的指数级进行增长,更何况很多特征不只是二值的。

几何角度:
图1-1. 内切圆

①如图1-1所示,设正方形边长为1,则其内切圆半径为0.5,则正方形面积为 1 ,内切圆面积为 π ( 0.5 ) 2 \pi(0.5)^2 π(0.5)2 。若将此变为三维情况下,正方体体积为 1 ,内切球体积为 4 3 π ( 0.5 ) 3 \frac 4 3 \pi(0.5)^3 34π(0.5)3 。因此球体的体积可以表示为 k π ( 0.5 ) 3 k\pi(0.5)^3 kπ(0.5)3 (D为维度),则 lim ⁡ D ↦ ∞ 4 3 π ( 0.5 ) 3 \lim_{D \mapsto \infty} \frac 4 3 \pi(0.5)^3 limD34π(0.5)3 ,其内切超球体的体积为0。由此可知,高维情况下,数据大都分布在四角(正方形内,内切圆外),稀疏性太大,不好分类。

图1-2. 圆环

②如图1-2所示,设外圆半径 r = 1 r=1 r=1 ,内圆半径为 r − e r-e re

同样在高维情况下,外圆体积为 V 外 圆 = k 1 D = k V_{外圆}=k1^D=k V=k1D=k ,中间的圆环体积为 V 圆 环 = k − k ( 1 − e ) D V_{圆环}=k-k(1-e)^D V=kk(1e)D

lim ⁡ D ↦ ∞ V 圆 环 V 外 圆 = lim ⁡ D ↦ ∞ k − k ( 1 − e ) D k = lim ⁡ D ↦ ∞ 1 − ( 1 − e ) D = 1 \lim_{D \mapsto \infty} \frac {V_{圆环}} {V_{外圆}}=\lim_{D \mapsto \infty} \frac {k-k(1-e)^D} {k}=\lim_{D \mapsto \infty} 1-(1-e)^D=1 DlimVV=Dlimkkk(1e)D=Dlim1(1e)D=1

因此,高维情况下,圆环几乎占据了整个外圆,内圆体积趋向于0,导致数据稀疏。此结论从我们三维的角度来看,是非常震惊的这类似于人的大脑,几乎所有的智慧都集中在大脑皮层由此可以看出,二维或三维上的一些理解,在高维是不work的.

-此结论从我们三维的角度来看,是非常震惊的
-这类似于人的大脑,几乎所有的智慧都集中在大脑皮层
-由此可以看出,二维或三维上的一些理解,在高维是不work的

降维的思路来源于维度灾难的问题,从几何角度来看,我们知道 n n n 维球的体积为: C R n CR^n CRn 那么在球体积与边长为 2 R 2R 2R 的超立方体比值为: lim ⁡ n → 0 C R n 2 n R n = 0 \lim\limits_{n\rightarrow0}\frac{CR^n}{2^nR^n}=0 n0lim2nRnCRn=0

n n n 比较小的时候,数据分布还比较均匀,但是随着 n n n 增大,也就是维度增加的时候,数据的分布会及其不均匀,因为球的体积占比会非常小,在高维数据中,主要样本都分布在立方体的边缘,这就是所谓的维度灾难,所以数据集更加稀疏。

疑:用球来比喻维度灾难没看懂

降维的算法分为:

  1. 直接降维,特征选择
  2. 线性降维,PCA,MDS等
  3. 分线性,流形包括 Isomap,LLE 等

假设数据集为: X = ( x 1 , x 2 , ⋯   , x N ) T = ( x 1 T x 2 T ⋮ x p T ) = ( x 11 x 21 … x 1 p x 21 x 22 … x 2 p ⋮ ⋮ ⋮ ⋮ x p 1 x p 2 … x p p ) N ∗ p X=(x_1,x_2,\cdots,x_N)^T=\left(\begin{array}{c}x_{1}^T \\ x_{2}^T\\ \vdots \\ x_{p}^T\end{array}\right)=\left(\begin{array}{c}x_{11} x_{21} \dots x_{1p}\\ x_{21} x_{22} \dots x_{2p}\\ \vdots \quad \vdots \quad \vdots \quad \vdots \\ x_{p1} x_{p2} \dots x_{pp} \end{array}\right)_{N*p} X=(x1,x2,,xN)T=x1Tx2TxpT=x11x21x1px21x22x2pxp1xp2xppNp 1 N = ( 1 1 ⋮ 1 ) N ∗ 1 1_N=\left(\begin{array}{c}1 \\ 1\\ \vdots \\1\end{array}\right)_{N*1} 1N=111N1 x i ∈ R p , i = 1 , 2 ⋯ N x_{i} \in \mathbb{R}^{p},i = 1,2 \cdots N xiRp,i=1,2N
样本均值: x ‾ p ∗ 1 = 1 N ∑ i = 1 N x i \overline{x}_{p*1}=\frac{1}{N}\sum\limits_{i=1}^Nx_i xp1=N1i=1Nxi
样本方差: S p ∗ p = 1 N ∑ i = 1 N ( x i − X ‾ ) ( x i − X ‾ ) T S_{p*p}=\frac{1}{N}\sum\limits_{i=1}^N(x_i-\overline{X})(x_i-\overline{X})^T Spp=N1i=1N(xiX)(xiX)T
为了方便,我们首先将协方差矩阵(数据集)写成中心化的形式:
x ‾ p ∗ 1 = 1 N ∑ i = 1 N x i = 1 N ( x 1 , x 2 , ⋯   , x N ) ( 1 1 ⋮ 1 ) N ∗ 1 = 1 N X T 1 N x p ∗ 1 ​ = N 1 ​ i = 1 ∑ N ​ x i ​ = N 1 ​ ( x 1 ​ , x 2 ​ , ⋯ , x N ​ ) \overline{x}_{p*1}=\frac{1}{N}\sum\limits_{i=1}^Nx_i=\frac{1}{N}(x_1,x_2,\cdots,x_N)\left(\begin{array}{c}1 \\ 1\\ \vdots \\1\end{array}\right)_{N*1}=\frac{1}{N}X^T1_N xp∗1​=N1​i=1∑N​xi​=N1​(x1​,x2​,⋯,xN​) xp1=N1i=1Nxi=N1(x1,x2,,xN)111N1=N1XT1Nxp1=N1i=1Nxi=N1(x1,x2,,xN)
S = 1 N ∑ i = 1 N ( x i − X ‾ ) ( x i − X ‾ ) T = 1 N ( x 1 − X ‾ , x 2 − X ‾ , ⋯   , x N − X ‾ ) ( x 1 − X ‾ , x 2 − X ‾ , ⋯   , x N − X ‾ ) T   = 1 N ( X T − X ‾ 1 N T ) ( X T − X ‾ 1 N T ) T   = 1 N ( X T − 1 N X T 1 N 1 N T ) ( X T − 1 N X T 1 N 1 N T ) T   = 1 N X T ( I N − 1 N 1 N 1 N T ) ( I N − 1 N 1 N 1 N T ) T X = 1 N X T H N H N T X = 1 N X T H N H N X   = 1 N X T H X \begin{aligned} S &=\frac{1}{N}\sum\limits_{i=1}^N(x_i-\overline{X})(x_i-\overline{X})^T\\ \\ &=\frac{1}{N}(x_1-\overline{X},x_2-\overline{X},\cdots,x_N-\overline{X})(x_1-\overline{X},x_2-\overline{X},\cdots,x_N-\overline{X})^T\\\ &=\frac{1}{N}(X^T-\overline{X}1_N^T)(X^T-\overline{X}1_N^T)^T\\\ &=\frac{1}{N}(X^T-\frac{1}{N}X^T1_N1_N^T)(X^T-\frac{1}{N}X^T1_N1_N^T)^T\\\ &=\frac{1}{N}X^T(I_N-\frac{1}{N}1_N1_N^T)(I_N-\frac{1}{N}1_N1_N^T)^TX\\ \\ &=\frac{1}{N}X^TH_NH_N^TX\\ \\ &=\frac{1}{N}X^TH_NH_NX\\\ &=\frac{1}{N}X^THX \end{aligned} S    =N1i=1N(xiX)(xiX)T=N1(x1X,x2X,,xNX)(x1X,x2X,,xNX)T=N1(XTX1NT)(XTX1NT)T=N1(XTN1XT1N1NT)(XTN1XT1N1NT)T=N1XT(INN11N1NT)(INN11N1NT)TX=N1XTHNHNTX=N1XTHNHNX=N1XTHX
这个式子利用了中心矩阵 H H H对称性,这也是一个投影矩阵。

定义;中心矩阵centeringmatrix H N = I N − 1 N 1 N 1 N T H_N=I_N-\frac{1}{N}1_N1_N^T HN=INN11N1NT
H N H_N HN 每个样本减去均值,会使图像向中心移动
S = 1 N X T H H T X S = \frac { 1 } { N } X ^ { T } H H ^ { T } X S=N1XTHHTX中心矩阵 H N H_N HN 具有以下性质
H N = I N − 1 N 1 N 1 N T H_N=I_N-\frac{1}{N}1_N1_N^T HN=INN11N1NT H N T = I N − 1 N 1 N 1 N T = H N H_N^T=I_N-\frac{1}{N}1_N1_N^T=H_N HNT=INN11N1NT=HN H 2 = H ⋅ H = ( I N − 1 N 1 N 1 N T ) ( I N − 1 N 1 N 1 N T ) = I N − 2 N 1 N 1 N T + 1 N 2 1 N 1 N T 1 N 1 N T = I N − 1 N 1 N 1 N T = H N H ^ { 2 } = H \cdot H = ( I _ { N } - \frac { 1 } { N } 1 _ { N } 1 _ { N } ^ { T } ) ( I _ { N } - \frac { 1 } { N } 1 _ { N } 1 _ { N } ^ { T } ) \\ \\ = I _ { N } - \frac { 2 } { N } 1 _ { N } 1 _ { N } ^ { T } + \frac { 1 } { N ^ { 2 } } 1 _ { N } 1 _ { N } ^ { T } 1 _ { N } 1 _ { N } ^ { T } = I _ { N } - \frac { 1 } { N } 1 _ { N } 1 _ { N } ^ { T } = H _ { N } H2=HH=(INN11N1NT)(INN11N1NT)=INN21N1NT+N211N1NT1N1NT=INN11N1NT=HN

所以: S = 1 N X T H H T X = 1 N X T H X S = \frac { 1 } { N } X ^ { T } H H ^ { T } X = \frac { 1 } { N } X ^ { T } H X S=N1XTHHTX=N1XTHX

1 线性降维-主成分分析 PCA

主成分分析中,我们的基本想法是将所有数据投影到一个字空间中,从而达到降维的目标,为了寻找这个子空间,我们基本想法是:

  • 所有数据在子空间中更为分散
  • 损失的信息最小,即:在补空间的分量少

总结一下就是,一个中心,两个基本点
一个中心
将一组可能线性相关的变量,通过正交变换变换成一组线性无关的变量(主成分),原始特征空间的重构:相关 → \rightarrow 无关
两个基本点

  • 最大投影方差:即数据足够分散
  • 最小重构距离:从投影返回到原始数据的代价

最大投影方差与最小重构距离是PCA中心思想的两种不同角度,实际上表述的是同一个意思,但方差比较大时,数据才会比较分散,那么重构回去时比较简单;若数据比较集中,甚至比较极端点,数据经过降维后都变成了一个点,基本上是重构不回去的。
在这里插入图片描述
在这里插入图片描述

原来的数据很有可能各个维度之间是相关的,于是我们希望找到一组 p p p 个新的线性无关的单位基 u i u_i ui​,降维就是取其中的 q q q 个基。于是对于一个样本 x i x_i xi​,经过这个坐标变换后: x i ^ = ∑ i = 1 p ( u i T x i ) u i = ∑ i = 1 q ( u i T x i ) u i + ∑ i = q + 1 p ( u i T x i ) u i \hat{x_i}=\sum\limits_{i=1}^p(u_i^Tx_i)u_i=\sum\limits_{i=1}^q(u_i^Tx_i)u_i+\sum\limits_{i=q+1}^p(u_i^Tx_i)u_i xi^=i=1p(uiTxi)ui=i=1q(uiTxi)ui+i=q+1p(uiTxi)ui

1.1 PCA——最大投影方差角度

方法
1、中心化,每个样本点减去均值 x i − X ‾ x_i- \overline{X} xiX
2、投影,求最大方差
假设投影到 μ 1 \mu_{1} μ1​ 上,投影过程为 ( x i − X ˉ ) T μ 1 s . t . μ 1 T μ 1 = 1 \left.\mathbf{(} x_{i}-\bar{X}\right)^{T} \mu_{1} \quad s.t. \quad \mu_{1}^{T} \mu_{1}=1 (xiXˉ)Tμ1s.t.μ1Tμ1=1,这里假设 μ 1 \mu_{1} μ1 ​的模是1
投影后方差为:(因为投影前已经减去了均值,所以这里可以直接平方)
J = 1 N ∑ i = 1 N ( ( x i − X ˉ ) T μ 1 ) 2 = 1 N ∑ i = 1 N μ 1 T ( x i − X ˉ ) ( x i − X ˉ ) T μ 1 = μ 1 T ( ∑ i = 1 N 1 N ( x i − X ˉ ) ( x i − X ˉ ) T ) μ 1 = μ 1 T S μ 1 \begin{aligned} J &=\frac{1}{N} \sum_{i=1}^{N}\left(\left(x_{i}-\bar{X}\right)^{T} \mu_{1}\right)^{2} \\ &=\frac{1}{N} \sum_{i=1}^{N} \mu_{1}^{T}\left(x_{i}-\bar{X}\right)\left(x_{i}-\bar{X}\right)^{T} \mu_{1} \\ &=\mu_{1}^{T}\left(\sum_{i=1}^{N} \frac{1}{N}\left(x_{i}-\bar{X}\right)\left(x_{i}-\bar{X}\right)^{T}\right) \mu_{1} \\ &=\mu_{1}^{T} S \mu_{1} \end{aligned} J=N1i=1N((xiXˉ)Tμ1)2=N1i=1Nμ1T(xiXˉ)(xiXˉ)Tμ1=μ1T(i=1NN1(xiXˉ)(xiXˉ)T)μ1=μ1TSμ1
上述问题就是以下的优化问题
μ = a r g m a x μ 1 T S μ 1 \mu=\mathop{argmax} \mu_{1}^{T} S \mu_{1} μ=argmaxμ1TSμ1 s . t . μ 1 T μ 1 = 1 s.t. \quad \mu_{1}^{T} \mu_{1}=1 s.t.μ1Tμ1=1
采用拉格朗日乘值法进行求解:
L ( μ 1 , λ ) = μ 1 T S μ 1 + λ ( 1 − μ 1 T μ 1 ) ∂ L ∂ μ 1 = 2 S μ 1 − 2 λ μ 1 = 0 S μ 1 = λ μ 1 \begin{array}{l} L\left(\mu_{1}, \lambda\right)=\mu_{1}^{T} S \mu_{1}+\lambda\left(1-\mu_{1}^{T} \mu_{1}\right) \\ \\ \frac{\partial L}{\partial \mu_{1}}=2 S \mu_{1}-2 \lambda \mu_{1}=0 \\ \\ S \mu_{1}=\lambda \mu_{1} \end{array} L(μ1,λ)=μ1TSμ1+λ(1μ1Tμ1)μ1L=2Sμ12λμ1=0Sμ1=λμ1
所以,要求的就是协方差矩阵 S S S 的特征向量

上面以一个 μ 1 \mu_{1} μ1 ​为例进行介绍的,下面介绍多个单位基的情况
原来的数据很有可能各个维度之间是相关的,于是我们希望找到一组 p p p 个新的线性无关的单位基 u i u_i ui降维就是取其中的 q q q 个基。于是对于一个样本 x i x_i xi​,经过这个坐标变换后: x i ^ = ∑ i = 1 p ( u i T x i ) u i = ∑ i = 1 q ( u i T x i ) u i + ∑ i = q + 1 p ( u i T x i ) u i \hat{x_i}=\sum\limits_{i=1}^p(u_i^Tx_i)u_i=\sum\limits_{i=1}^q(u_i^Tx_i)u_i+\sum\limits_{i=q+1}^p(u_i^Tx_i)u_i xi^=i=1p(uiTxi)ui=i=1q(uiTxi)ui+i=q+1p(uiTxi)ui 对于数据集来说,我们首先将其中心化然后再去上面的式子的第一项,并使用其系数的平方平均作为损失函数并最大化:
J = 1 N ∑ i = 1 N ∑ j = 1 q ( ( x i − X ˉ ) T μ j ) 2 = ∑ j = 1 q μ j T S μ j \begin{aligned} J &=\frac{1}{N}\sum\limits_{i=1}^N\sum\limits_{j=1}^q \left(\left(x_{i}-\bar{X}\right)^{T} \mu_{j}\right)^{2} \\ &=\sum\limits_{j=1}^q\mu_{j}^{T} S \mu_{j} \end{aligned} J=N1i=1Nj=1q((xiXˉ)Tμj)2=j=1qμjTSμj
由于每个基都是线性无关的,于是每一个 u j u_j uj​ 的求解可以分别进行,使用拉格朗日乘子法: argmax ⁡ u j L ( u j , λ ) = argmax ⁡ u j u j T S u j + λ ( 1 − u j T u j ) \underset{u_{j}}{\operatorname{argmax}}L(u_j,\lambda)=\underset{u_{j}}{\operatorname{argmax}} u_j^TSu_j+\lambda(1-u_j^Tu_j) ujargmaxL(uj,λ)=ujargmaxujTSuj+λ(1ujTuj) 于是: S u j = λ u j Su_j=\lambda u_j Suj=λuj​ 可见,我们需要的基就是协方差矩阵的特征向量损失函数最大取在本征值前 q q q 个最大值

1.2 PCA——最小重构代价角度

对于向量 x i x_{i} xi ​在 u k u_{k} uk 方向的投影值为 x i T u k x_{i}^Tu_{k} xiTuk​ ,投影值和单位向量的乘积为 ( x i T u k ) u k (x_{i}^Tu_{k})u_{k} (xiTuk)uk
所以完整的是 x i = ∑ k = 1 p ( x i T u k ) u k x_{i}=\sum\limits_{k=1}^p(x_{i}^Tu_{k})u_{k} xi=k=1p(xiTuk)uk
为什么使用求和就可以呢,以二维坐标系进行简单说明(见下图)怎么表示向量 x x x 呢,其实就是下图中 x , y x,y xy 轴上的两个向量的加和,其中在 x x x 轴上的向量的值实际上就是向量 x x x x x x 轴上的投影 x x x 轴的单位向量,这就是上面式子的原因。

在这里插入图片描述
用PCA进行降维,降维后的维度为 q q q ,并且 q < p q<p q<p
x ^ i = ∑ k = 1 q ( x i T u k ) u k \hat{x}_{i}=\sum\limits_{k=1}^q(x_{i}^Tu_{k})u_{k} x^i=k=1q(xiTuk)uk
重构代价是:
J = 1 N ∑ i = 1 N ∥ x i − x ^ i ∥ 2 = 1 N ∑ i = 1 N ∥ ∑ k = q + 1 p ( x i T u k ) u k ∥ 2 = 1 N ∑ i = 1 N ∑ k = q + 1 p ( x i T u k ) 2 \begin{aligned} J &=\frac{1}{N} \sum_{i=1}^{N}\left\|x_{i}-\hat{x}_{i}\right\|^{2} \\ &=\frac{1}{N} \sum_{i=1}^{N}\left\|\sum_{k=q+1}^{p}\left(x_{i}^{T} u_{k}\right) u_{k}\right\|^{2} \\ &=\frac{1}{N} \sum_{i=1}^{N} \sum_{k=q+1}^{p}\left(x_{i}^{T} u_{k}\right)^{2} \end{aligned} J=N1i=1Nxix^i2=N1i=1Nk=q+1p(xiTuk)uk2=N1i=1Nk=q+1p(xiTuk)2
x i x_{i} xi ​进行中心化(PCA需要中心化),重构代价如下:
J = 1 N ∑ i = 1 N ∑ k = q + 1 p ( ( x i − X ˉ ) T u k ) 2 = ∑ k = q + 1 p ∑ i = 1 N 1 N ( ( x i − X ˉ ) T u k ) 2 = ∑ k = q + 1 p u k T S u k ( 这 里 可 以 写 是 因 为 最 小 投 影 方 差 那 一 样 )  s.t.  u k T u k = 1 \begin{aligned} J &=\frac{1}{N} \sum_{i=1}^{N} \sum_{k=q+1}^{p}\left(\left(x_{i}-\bar{X}\right)^{T} u_{k}\right)^{2} \\ &=\sum_{k=q+1}^{p} \sum_{i=1}^{N} \frac{1}{N}\left(\left(x_{i}-\bar{X}\right)^{T} u_{k}\right)^{2} \\ &=\sum_{k=q+1}^{p} u_{k}^{T} S u_{k} (这里可以写是因为最小投影方差那一样)\\ \text { s.t. } & u_{k}^{T} u_{k}=1 \end{aligned} J s.t. =N1i=1Nk=q+1p((xiXˉ)Tuk)2=k=q+1pi=1NN1((xiXˉ)Tuk)2=k=q+1pukTSuk()ukTuk=1​ 最小重构代价
J = 1 N ∑ i = 1 N ∑ k = q + 1 p ( ( x i − X ˉ ) T u k ) 2 = ∑ k = q + 1 p u k T S u k  s.t.  u k T u k = 1 \begin{aligned} J &=\frac{1}{N} \sum_{i=1}^{N} \sum_{k=q+1}^{p}\left(\left(x_{i}-\bar{X}\right)^{T} u_{k}\right)^{2} \\ &=\sum_{k=q+1}^{p} u_{k}^{T} S u_{k} \\ \text { s.t. } & u_{k}^{T} u_{k}=1 \end{aligned} J s.t. =N1i=1Nk=q+1p((xiXˉ)Tuk)2=k=q+1pukTSukukTuk=1
优化问题
argmax ⁡ u j L ( u j , λ ) = argmax ⁡ u j u j T S u j + λ ( 1 − u j T u j ) \underset{u_{j}}{\operatorname{argmax}}L(u_j,\lambda)=\underset{u_{j}}{\operatorname{argmax}}u_j^TSu_j+\lambda(1-u_j^Tu_j) ujargmaxL(uj,λ)=ujargmaxujTSuj+λ(1ujTuj)
损失函数最小取在本征值剩下的个最小的几个值。

最大投影方差与最小重构代价的区别

  • 原先由 p p p 维取前 q q q
  • 最大投影方差目标前 q q q 最大
  • 最小重构代价目标后 p − q p−q pq 维方差最小

1.3 PCA与PCoA——SVD角度


特征值分解
S S S n n n对称阵,则必有正交矩阵G使得
S = G K G T = G K G − 1 G T G = I K = [ k 1 0 … 0 0 k 2 … 0 ⋮ ⋮ ⋱ ⋮ 0 0 … k p ] k 1 ≥ k 2 ≥ ⋯ ≥ k p S=G K G^{T}=GKG^{-1} \quad G^{T} G=I \quad K=\left[\begin{array}{cccc} k_{1} & 0 & \dots & 0 \\ 0 & k_{2} & \dots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \dots & k_{p} \end{array}\right] \quad k_{1} \geq k_{2} \geq \dots \geq k_{p} S=GKGT=GKG1GTG=IK=k1000k2000kpk1k2kp
其中S是方阵 G G G 是这个矩阵中的特征向量组成的矩阵, K K K 是一个对角阵,每一个对角线上的元素就是一个特征值。一个矩阵的一组特征向量是一组正交向量

SVD奇异值分解
在现实的世界中,遇到的大部分矩阵都不是方阵,怎样描述这样普通的矩阵的重要特征?答案是可以使用奇异值分解来解决。

A A A 是一个 N ∗ M N * M NM 的矩阵,那么得到的 U U U 是一个 N ∗ N N * N NN 的方阵(里面的向量是正交的,称为左奇异向量), Σ Σ Σ 是一个 N ∗ M N * M NM 的矩阵(除了对角线的元素都是0,对角线上的元素称为奇异值), V T V^T VT 是一个 m ∗ m m * m mm 的矩阵(里面的向量也是正交的,称为右奇异向量)
在这里插入图片描述
上面是对下面可能会用到的知识进行简单的介绍。

实际训练时常常使⽤的 SVD 直接求得这q个特征向量。

  • 原始数据为 X X X,中心化矩阵 H = I − 1 N 1 N 1 N T H=I-\frac{1}{N}1_{N}1_{N}^T H=IN11N1NT

  • 对数据进行中心化(中心化矩阵可以实现中心化的功能,可见本章节开始) H X HX HX

  • 对中心化后的数据集进行奇异值分解 H X = U Σ V T , U T U = I N , V T V = I p , Σ : N × p HX=U\Sigma V^T,U^TU=I_N,V^TV=I_p,\Sigma:N\times p HX=UΣVTUTU=INVTV=IpΣ:N×p

于是: S = 1 N X T H X = 1 N X T H T H X = 1 N V Σ T Σ V T S=\frac{1}{N}X^THX=\frac{1}{N}X^TH^THX=\frac{1}{N}V\Sigma^T\Sigma V^T S=N1XTHX=N1XTHTHX=N1VΣTΣVT
因为 S S S实对称阵,所以: S = G K G T S=G K G^{T} S=GKGT
G = V K = Σ 2 G=V \quad K=\Sigma^2 G=VK=Σ2

因此,我们直接对中心化后的数据集进行 SVD,就可以得到特征值和特征向量 V V V,在新坐标系中的坐标就是: H X ⋅ V HX\cdot V HXV 由上面的推导,我们也可以得到另一种方法 PCoA 主坐标分析,定义并进行特征值分解: T = H X X T H = U Σ Σ T U T T=HXX^TH=U\Sigma\Sigma^TU^T T=HXXTH=UΣΣTUT
T T T S S S 有相同的特征值

  • S S S : 特征分解,得到方向(主成分),然后 H X ⋅ V → HX⋅V \rightarrow HXV 坐标
  • T T T: 特征分解,直接得到坐标

T T T 主坐标分析(principle coordinate analysis)PCoA

由于: H X ⋅ V = U Σ V T V = U Σ HX⋅V=U\Sigma V^TV=U\Sigma HXV=UΣVTV=UΣ
T U Σ = U Σ Σ T U T ⋅ U Σ = U Σ ( Σ T Σ ) TU\Sigma=U\Sigma\Sigma^TU^T⋅U \Sigma=U\Sigma(\Sigma^T\Sigma) TUΣ=UΣΣTUTUΣ=UΣ(ΣTΣ)
U Σ U\Sigma UΣ 特征向量组成的矩阵, Σ T Σ \Sigma^T\Sigma ΣTΣ 为特征值矩阵。于是可以直接得到坐标。这两种方法都可以得到主成分,但是由于方差矩阵是 p × p p\times p p×p 的,而 T T T N × N N\times N N×N 的,所以对样本量较少的时候可以采用 PCoA 的方法

1.4 PCA:p-PCA——概率角度

下面从概率的角度对 PCA 进行分析,概率方法也叫 p-PCA。我们使用线性模型,类似之前 LDA,我们选定一个方向,对原数据 x ∈ R p x\in\mathbb{R}^p xRp ,降维后的数据为 z ∈ R q , q < p z\in\mathbb{R}^q,q<p zRq,q<p 。降维通过一个矩阵变换(投影)进行。设 z z z 的先验:
z ∼ N ( O q 1 , I q q ) x = W z + μ + ε ε ∼ N ( 0 , σ 2 I p p ) \begin{aligned} z & \sim \mathcal{N}\left(\mathbb{O}_{q 1}, \mathbb{I}_{q q}\right) \\ \\ x &=W z+\mu+\varepsilon \\ \\ \varepsilon & \sim \mathcal{N}\left(0, \sigma^{2} \mathbb{I}_{p p}\right) \end{aligned} zxεN(Oq1,Iqq)=Wz+μ+εN(0,σ2Ipp) σ 2 I p = [ σ 2 0 … 0 0 σ 2 … 0 ⋮ ⋮ ⋱ ⋮ 0 0 … σ 2 ] \sigma^{2} I_{p}=\left[\begin{array}{cccc} \sigma^{2} & 0 & \dots & 0 \\ 0 & \sigma^{2} & \dots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \dots & \sigma^{2} \end{array}\right] σ2Ip=σ2000σ2000σ2
基于上面的先验,可得 z , x ∣ z , x . z ∣ x z,x|z,x.z|x zxzx.zx
线性高斯模型: P − P C A = { Inference, p ( z ∣ x ) Learing, w , μ , σ 2 → E M P-P C A=\left\{\begin{array}{ll} \text {Inference,} & p(z | x) \\ \text {Learing,} & w, \mu, \sigma^{2} \rightarrow E M \end{array}\right. PPCA={Inference,Learing,p(zx)w,μ,σ2EM
在这里插入图片描述
对于 z z z 的分布如上,那么 x x x 的分布就如上图
那么可知 { z ∼ N ( 0 , I ) x = w z + μ + ϵ ϵ ∼ N ( 0 , σ 2 I ) ϵ ⊥ z E [ x ∣ z ] = E [ w z + μ + ϵ ] = w z + μ Var ⁡ [ x ∣ z ] = Var ⁡ [ w z + μ + ϵ ] = σ 2 I x ∣ z ∼ N ( w z + u , σ 2 I ) \left\{\begin{array}{l} z \sim N(0, I) \\ \\ x=w z+\mu+\epsilon \\ \\ \epsilon \sim N\left(0, \sigma^{2} I\right) \\ \\ \epsilon \perp z \\ \\ E[x | z]=E[w z+\mu+\epsilon]=w z+\mu \\ \\ \operatorname{Var}[x | z]=\operatorname{Var}[w z+\mu+\epsilon]=\sigma^{2} I \\ \\ x | z \sim N\left(w z+u, \sigma^{2} I\right) \end{array}\right. zN(0,I)x=wz+μ+ϵϵN(0,σ2I)ϵzE[xz]=E[wz+μ+ϵ]=wz+μVar[xz]=Var[wz+μ+ϵ]=σ2IxzN(wz+u,σ2I)
上面的前四个是已知条件,第 5,6,7 个是根据前面的逐步推出来的。其中第 5 个式子,因为 z z z 是先验条件,因此可以当作常数。
E [ x ] = E [ w z + μ + ϵ ] = E [ w z + μ ] + E [ ϵ ] = μ Var ⁡ [ x ] = Var ⁡ [ w z + μ + ϵ ] = Var ⁡ [ w z ] + Var ⁡ [ ϵ ] = w I w T + σ 2 I = w w T + σ 2 I x ∼ N ( μ , w w T + σ 2 ) \begin{array}{l} E[x]=E[w z+\mu+\epsilon]=E[w z+\mu]+E[\epsilon]=\mu \\ \\ \operatorname{Var}[x]=\operatorname{Var}[w z+\mu+\epsilon]=\operatorname{Var}[w z]+\operatorname{Var}[\epsilon]=w I w^{T}+\sigma^{2} I=w w^{T}+\sigma^{2} I \\ \\ x \sim N\left(\mu, w w^{T}+\sigma^{2}\right) \end{array} E[x]=E[wz+μ+ϵ]=E[wz+μ]+E[ϵ]=μVar[x]=Var[wz+μ+ϵ]=Var[wz]+Var[ϵ]=wIwT+σ2I=wwT+σ2IxN(μ,wwT+σ2)
之前的公式:
x = [ x a x b ] μ = [ μ 0 μ 1 ] Σ = [ Σ a a Σ a b Σ b a Σ b b ] x=\left[\begin{array}{l} x_{a} \\ x_{b} \end{array}\right] \quad \mu=\left[\begin{array}{l} \mu_{0} \\ \mu_{1} \end{array}\right] \quad \Sigma=\left[\begin{array}{ll} \Sigma_{a a} & \Sigma_{a b} \\ \Sigma_{b a} & \Sigma_{b b} \end{array}\right] x=[xaxb]μ=[μ0μ1]Σ=[ΣaaΣbaΣabΣbb]

 已知:  x ∼ N ( μ , Σ ) x b , a = x b − Σ b a Σ a a − 1 x a μ b . a = μ b − Σ b a Σ a a − 1 μ a Σ b b . a = Σ b b − Σ b a Σ a a − 1 Σ a b  schur complementary  x b = x b . a + Σ b a Σ a a − 1 x a E [ x b ∣ x a ] = μ b . a + Σ b a Σ a a − 1 x a V a r [ x b ∣ x a ] = V a r [ x b . a ] = Σ b b . a x b ∣ x a ∼ N ( μ b . a + Σ b a Σ a a − 1 x a , Σ b b . a ) \begin{array}{l} \text { 已知: } x \sim N(\mu, \Sigma) \\ \\ x_{b, a}=x_{b}-\Sigma_{b a} \Sigma_{a a}^{-1} x_{a} \\ \\ \mu_{b . a}=\mu_{b}-\Sigma_{b a} \Sigma_{a a}^{-1} \mu_{a} \\ \\ \Sigma_{b b . a}=\Sigma_{b b}-\Sigma_{b a} \Sigma_{a a}^{-1} \Sigma_{a b} \quad \text { schur complementary } \\ \\ x_{b}=x_{b . a}+\Sigma_{b a} \Sigma_{a a}^{-1} x_{a} \\ \\ E\left[x_{b} | x_{a}\right]=\mu_{b . a}+\Sigma_{b a} \Sigma_{a a}^{-1} x_{a} \\ \\ V a r\left[x_{b} | x_{a}\right]=V a r\left[x_{b . a}\right]=\Sigma_{b b . a} \\ \\ x_{b} | x_{a} \sim N\left(\mu_{b . a}+\Sigma_{b a} \Sigma_{a a}^{-1} x_{a}, \Sigma_{b b . a}\right) \end{array}  已知xN(μ,Σ)xb,a=xbΣbaΣaa1xaμb.a=μbΣbaΣaa1μaΣbb.a=ΣbbΣbaΣaa1Σab schur complementary xb=xb.a+ΣbaΣaa1xaE[xbxa]=μb.a+ΣbaΣaa1xaVar[xbxa]=Var[xb.a]=Σbb.axbxaN(μb.a+ΣbaΣaa1xa,Σbb.a)

推导:
[ x z ] ∼ ( [ μ 0 ] [ 0 Δ Δ T I ] ) \begin{array}{l}{\left[\begin{array}{l}x \\ z\end{array}\right] \sim\left(\left[\begin{array}{l}\mu \\ 0\end{array}\right]\left[\begin{array}{cc}0 & \Delta \\ \Delta^{T} & I\end{array}\right]\right)}\end{array} [xz]([μ0][0ΔTΔI])
Δ = Cov ⁡ ( x , z ) = E [ ( x − μ ) ( z − 0 ) T ] = E [ ( x − μ ) z T ] = E [ ( w z + ϵ ) z T ] = E [ w z z T + ϵ z T ] = w E [ z z T ] + E [ ϵ ] ⋅ E [ z T ] = w ⋅ I + 0 = w \begin{array}{l}\Delta=\operatorname{Cov}(x, z) \\ \\ =E[(x-\mu)(z-0)^T] \\ \\ =E\left[(x-\mu) z^{T}\right] \\ \\ =E\left[(w z+\epsilon)z^{T}\right] \\ \\=E\left[w z z^{T}+\epsilon z^{T}\right] \\ \\ =w E\left[z z^{T}\right]+E[\epsilon] \cdot E\left[z^{T}\right] \\ \\ =w \cdot I+0 \\ \\ =w\end{array} Δ=Cov(x,z)=E[(xμ)(z0)T]=E[(xμ)zT]=E[(wz+ϵ)zT]=E[wzzT+ϵzT]=wE[zzT]+E[ϵ]E[zT]=wI+0=w
上面的 E [ z z T ] E\left[z z^{T}\right] E[zzT] 可以看作求方差,因为 z z z 的均值是0
[ x z ] ∼ ( [ μ 0 ] [ O Δ Δ T I ] ) = ( [ μ 0 ] [ w w T + σ 2 I w w T I ] ) \begin{array}{l} {\left[\begin{array}{l} x \\ z \end{array}\right] \sim\left(\left[\begin{array}{l} \mu \\ 0 \end{array}\right]\left[\begin{array}{cc} O & \Delta \\ \Delta^{T} & I \end{array}\right]\right)=\left(\left[\begin{array}{l} \mu \\ 0 \end{array}\right]\left[\begin{array}{ll} w w^{T}+\sigma^{2} I & w \\ w^{T} & I \end{array}\right]\right)}\end{array} [xz]([μ0][OΔTΔI])=([μ0][wwT+σ2IwTwI])
联合概率
[ x z ] ∼ N ( μ ^ , Σ ^ ) \begin{array}{l}{\left[\begin{array}{l} x \\ z \end{array}\right] \sim N(\hat{\mu}, \hat{\Sigma})} \end{array} [xz]N(μ^,Σ^)
对于这个模型,我么可以使用期望-最大(EM)的算法进行学习,在进行推断的时候需要求得 p ( z ∣ x ) p(z|x) p(zx),推断的求解过程和线性高斯模型类似。
p ( z ∣ x ) = p ( x ∣ z ) p ( z ) p ( x ) E [ x ] = E [ W z + μ + ε ] = μ Var ⁡ [ x ] = W W T + σ 2 I p p ⟹ p ( z ∣ x ) = N ( W T ( W W T + σ 2 I ) − 1 ( x − μ ) , I − W T ( W W T + σ 2 I ) − 1 W ) \begin{array}{c} p(z | x)=\frac{p(x | z) p(z)}{p(x)} \\ \\ \mathbb{E}[x]=\mathbb{E}[W z+\mu+\varepsilon]=\mu \\ \\ \operatorname{Var}[x]=W W^{T}+\sigma^{2} \mathbb{I}_{p p} \\ \\ \Longrightarrow p(z | x)=\mathcal{N}\left(W^{T}\left(W W^{T}+\sigma^{2} \mathbb{I}\right)^{-1}(x-\mu), \mathbb{I}-W^{T}\left(W W^{T}+\sigma^{2} \mathbb{I}\right)^{-1} W\right) \end{array} p(zx)=p(x)p(xz)p(z)E[x]=E[Wz+μ+ε]=μVar[x]=WWT+σ2Ippp(zx)=N(WT(WWT+σ2I)1(xμ),IWT(WWT+σ2I)1W)

这小节没看懂。

小结

降维是解决维度灾难和过拟合的重要方法,除了直接的特征选择外,我们还可以采用算法的途径对特征进行筛选,线性的降维方法以 PCA 为代表,在 PCA 中,我们只要直接对数据矩阵进行中心化,然后求奇异值分解或者对数据的协方差矩阵进行分解就可以得到其主要维度。非线性学习的方法如流形学习将投影面从平面改为超曲面。

版权声明:本文为CSDN博主「AI路上的小白」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/cengjing12/article/details/106268447

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值