第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营

目录

一,降维

1.1 简介

1.2 应用

二,主成分分析法

2.1  基

2.2 PCA的直观描述

2.3 特点

三,原理推导

3.1 两个前提

3.2 优化目标

3.3 求解

3.4 再理解

四,应用细节

4.1 具体应用过程

4.2 解压缩

4.3 压缩维度的选择

4.4 应用建议

五,总结


一,降维

1.1 简介

任何满足一定规律的样本集都有其内在的一致性与差异性,给定m个n维的数据样本,利用数据的内在一致性将数据映射至维度更低的空间中,并尽量保留其差异性的方法即称之为降维。作为无监督学习的一种,其不需要任何数据标签,只根据数据特征的内在联系来进行降维。

1.2 应用

降维算法主要有两种应用形式:数据压缩以及数据可视化。

数据压缩是指:通过降维算法来减少实际存储的文件数据量,从而减少计算机内存和磁盘空间的使用;同时其也能加快学习算法。

数据可视化是指:面对超过3维的事物,人是无法直观的理解的。通过数据降维将高维数据降到3维或以下可使得人能直观的去观察。不过这样则要求人自己去理解降维后新特征的含义。

二,主成分分析法

2.1  基

在线性代数中有个很重要的概念就是基(也称基底),是值向量空间中的一组方向向量,而向量空间中其他向量都可以由基中的方向向量线性表达。具体方法为选定一组基,空间中任何一个点(或向量)都可向基中的各个方向向量方向进行投影,投影的长度即为该点在该方向向量上的坐标,这样的坐标集合即为该点在指定基中的新坐标表达。在N维空间中选定N个线性无关的向量便可作为一组基。

设原向量坐标为(x_1,x_2),选定基为(v_{11},v_{12}),(v_{21},v_{22}),则在该基的表示下,原向量的新坐标为(u_1,u_2),具体过程如下:

                                            \begin{pmatrix} x_1 \\ x_2 \end{pmatrix} = \begin{pmatrix} v_{11}& v_{21}\\ v_{12}&v_{22} \end{pmatrix}\begin{pmatrix} u_1 \\ u_2 \end{pmatrix}=\begin{pmatrix} u_1 * v_{11} +u_2 * v_{21}\\ u_1 * v_{12} +u_2 * v_{22} \end{pmatrix}           (公式 14.1)

                                            \begin{pmatrix} u_1 \\ u_2 \end{pmatrix}=\begin{pmatrix} v_{11} & v_{21} \\ v_{12} & v_{22} \end{pmatrix}^{-1}\begin{pmatrix} x_1\\ x_2 \end{pmatrix}                                                   (公式 14.2)

图14-1 基

如图14-1所示,同样是点x,在基为 (0,1)(1,0)时其坐标可表示为(1,1);而当基为(1,1)(-1,1)时其坐标可表示为(1,0)( \sqrt{2},0 )。其过程如下:

                                  \begin{pmatrix} 1 & -1\\ 1 & 1 \end{pmatrix} ^{-1} = \begin{pmatrix} \frac{1}{2}& \frac{1}{2} \\ -\frac{1}{2}& \frac{1}{2} \end{pmatrix}                            \begin{pmatrix} \frac{1}{2}& \frac{1}{2} \\ -\frac{1}{2}& \frac{1}{2} \end{pmatrix} \begin{pmatrix} 1 \\ 1 \end{pmatrix} = \begin{pmatrix} 1 \\ 0 \end{pmatrix} 

2.2 PCA的直观描述

在了解完基的概念后可知选用不同的基可得到不同的数据表达,但如果只是更换基,则数据量并没有得到减少。而主成分分析法(Principal Component Analysis PCA)的主要思想为:在n维空间中找到k个空间向量,用数据在k个空间向量上投影来表达原数据,并使得数据的投影与原数据之间的差异要尽量小,而不同数据之间的差异尽量不变。这样就达到了见n维数据压缩到k维的目标。

设原n维数据为X = (x_1,x_2,......,x_{n})^{T},现选定n维空间中的一组基,并求出其逆矩阵如下

                          (V_{1},V_{2},......,V_{n})^{-1} = \begin{pmatrix} v_{11}& v_{21} & ... & v_{n1} \\ v_{12}& v_{22} & ... & v_{n2} \\ ...&... & ... &... \\ v_{1n}& v_{2n} & ... & v_{nn} \end{pmatrix}^{-1} = \begin{pmatrix} v_{11}^{'}& v_{11}^{'} & ... & v_{1n}^{'} \\ v_{21}^{'}& v_{22}^{'} & ... & v_{2n}^{'} \\ ...&... & ... &... \\ v_{n1}^{'}& v_{n2}^{'} & ... & v_{nn}^{'} \end{pmatrix}  (公式 14.3)

从中选择除k个方向向量与其逆矩阵中对应的K个向量用于映射,可得:

                                                     \begin{pmatrix} v_{11}^{'}& v_{11}^{'} & ... & v_{1n}^{'} \\ v_{21}^{'}& v_{22}^{'} & ... & v_{2n}^{'} \\ ...&... & ... &... \\ v_{k1}^{'}& v_{k2}^{'} & ... & v_{kn}^{'} \end{pmatrix}\begin{pmatrix} x_{1}\\ x_{2}\\...\\x_{n}\end{pmatrix} = \begin{pmatrix} u_{1}\\ u_{2}\\...\\u_{k}\end{pmatrix}                 (公式 14.4)

可直观了将PCA理解为在一组基中选取部分方向向量来表达数据,要求在这部分方向向量的表达下对原数据信息保留最多。

图14-2 PCA实例

如图14-2中数据而言,如果不经过数据压缩,则需要存储\{(1,1),(2,2),(3,3),(4,4),(5,5)\} 共10个数。假设采用PCA算法并选择方向向量(1,1)为投影方向时,则需要存储方向向量(1,1)以及压缩后各个点的坐标\{ 1, 2, 3, 4, 5\}共计7个数,压缩了3个数,但信息完全没有减少。

虽然上述情况过于理想,但一般在具体工程中,可能会有多组人员使用不同的标准和检测方法对数据进行采集,采集到的数据之间会有冗余,通过PCA算法可以消除这种冗余。

2.3 特点

PCA算法的优点如下:

  • 在选择投影的方向向量时,可选定一组基,事先计算出所有数据在各个方向向量上投影的损失值。根据损失值进行方向向量排序,最终选择损失值最小的k个方向向量做为投影向量。

  • PCA算法没有任何超参数限制,学习过程完全根据数据求解。 

同时其缺点也很明显:

  • 由于PCA没有超参数控制,则任何有关数据的先验知识都不能人为的加入到算法中,这使得算法不可控。
  • 数据降维后新特征的具体含义不明确,需要人为发觉。

在运用具体的机器学习算法前,有人会使用PCA算法来进行数据降维。虽然能减少特征量加快计算,但由于PCA算法的不可控,有可能将一些有用的特征信息摒弃而留下一些不重要的特征,这将得不偿失。

三,原理推导

本节试图讲解PCA算法的内在原理,不感兴趣可以跳过。

3.1 两个前提

在具体进行PCA算法之前,有两个前提:

  1. 需要对数据进行均值归一化,使得各个数据特征的均值为0。

  2. 投影用的方向向量应该具有单位长度,即\left| \overrightarrow{v} \right| = 1

3.2 优化目标

图14-3 投影与距离

假设原数据为 x,在方向向量上投影后数据为x^',两者之间距离的平方可表示为:

                                                      \left \| \vec{e} \right \| ^{2}= \left \| x - x^{'} \right \|^{2}          (公式 14.5)

两者之间的距离\left \| \vec{e} \right \| ^{2}可表示为投影后信息的损失。要使得信息损失最少 就需要使得 \left \| \vec{e} \right \| ^{2}最小。设投影向量组成的投影矩阵为\large U,则投影后的数据样本的信息损失和表示为:

                     \large \frac {1}{m}\sum_{i=1}^{m} \left \| \vec{e^{i}} \right \| ^{2} = \frac {1}{m} \sum_{i=1}^{m} \left \| x^{i} - {x^{i}}^{'} \right \| ^{2}\\ = \frac {1}{m} \sum_{i=1}^{m} [ x^{i} - ({x^{i}}^{T}U)U ]^{T} [ x^{i} - ({x^{i}}^{T}U)U ]\\ = \frac {1}{m} \sum_{i=1}^{m} [ \left \| x^{i} \right \|^{2} - ((x^{i})^{T}U)^2 ]           (公式 14.6)

因为\frac {1}{m} \sum_{i=1}^{m} \left \| x^{i} \right \|^{2}由数据样本确定,要使得信息损失最小,则要使得:-\frac {1}{m} \sum_{i=1}^{m} [ ((x^{i})^{T}U)^2 ]最小。

设由数据样本集组成的样本矩阵X,可得损失函数如下:

           J(U) = -\frac {1}{m} \sum_{i=1}^{m} [ ((x^{i})^{T}U)^2 ] = -\frac {1}{m} (X^{T}U)^{T} (X^{T}U) = -\frac {1}{m} U^{T} (XX^{T})U   (公式 14.7)

即优化目标为找到一个投影矩阵\large U使得损失函数最小化。

3.3 求解

为求解损失函数(公式 14.7)的最优解,需要建立拉格朗日函数:

            L(U,\lambda) = U^{T}XU + \lambda(1 - U^{T}U)(公式 14.8)

为求极值,对(公式 14.8)求偏导并令偏导等于0,可得:

           \frac{\partial L }{\partial \lambda} = 0\Rightarrow U^{T}U = 1          (公式 14.9.1)

          \frac{\partial L }{\partial U} = 0\Rightarrow XU - \lambda U = 0\Rightarrow XU = \lambda U           (公式 14.9.2)

即可知投影矩阵U中的向量,即为样本矩阵X的特征向量,而λ为其特征值。特殊的是投影矩阵U是正交矩阵,其逆矩阵就是其本身。

求解特征向量和特征值的算法这里再不赘述,可查找相关资料,也可之间使用相关的库函数求解。

3.4 再理解

了解一个数据的内部差异性可以用方差来进行刻画: 

                                var(x) = \frac{1}{m}\sum _{i=1}^{m} ( x^{i} - \mu )^2        (公式 14.10.1)

而当数据的平均值 \mu为0时,方差可化简为

                                 var(x) = \frac{1}{m}\sum _{i=1}^{m} ( x^{i} )^2        (公式 14.10.2)

在概率论中协方差来刻画两个特征之间的相关性

Cov(X,Y) = E[(X - E(X))(Y-E(Y))] = E(XY) - E(X)E(Y)              (公式 14.11.1)

当数据X和Y的的平均值 \mu均为0时,协方差可化简为

                         Cov(X,Y) = E(XY) = \frac {1}{m} \sum _{i=1}^{m} x^{i}*y^{i}              (公式 14.11.2)

现在取出数据样本中的两个特征维度\begin{pmatrix} x_{11} & x_{21} & ... & x_{m1} \\ x_{12} & x_{22} & ... & x_{m2} \end{pmatrix}, 两者之间的协方差为:

                                             Cov(X_{1},X_{2}) = \frac {1}{m} \sum _{i=1}^{m} x_{i1}*y_{i2}

现在不妨再回顾一下损失函数(公式 14.7)

                                                            J(U) = -\frac {1}{m} U^{T} (XX^{T})U

展开其中的项可得:

                           \frac {1}{m}XX^{T} = \begin{pmatrix} \frac {1}{m}\sum _{i=1}^{m}x_{i1}^{2} &\frac {1}{m}\sum _{i=1}^{m}x_{i1} x_{i2} & ... & \frac {1}{m}\sum _{i=1}^{m}x_{i1} x_{in} \\ \frac {1}{m}\sum _{i=1}^{m}x_{i2} x_{i1} & \frac {1}{m}\sum _{i=1}^{m}x_{i2}^{2} &... & \frac {1}{m}\sum _{i=1}^{m}x_{i2} x_{in} \\ ...& ... & ... & ...\\ \frac {1}{m}\sum _{i=1}^{m}x_{in} x_{i1} &\frac {1}{m}\sum _{i=1}^{m}x_{i2} x_{in} &... & \frac {1}{m}\sum _{i=1}^{m}x_{in}^{2} \end{pmatrix}     (公式 14.12)

即:\frac {1}{m}XX^{T}实际上就是原样本集的协方差矩阵,其对角线上是各个特征的方差,非对角线上是 各特征两两之间的协方差。

最终求解出来的特征向量矩阵U,其实就是可将\frac {1}{m}XX^{T}对角化的矩阵。而对角化的过程就是使得坐标变换后加大各个维度特征差异性,而减小不同维度之间相关性的过程。

特征值就是经过坐标变换后,数据在对应维度投影后的方差。于是我们可以按特征值的大小进行排序,选择较大特征值所对应的方向向量进行投影,从而达到数据降维后尽量保留原始信息的目标。

四,应用细节

4.1 具体应用过程

尽管没有理解算法的具体原理可能没有理解,但只要按部就班的使用便可到达效果,这也是算法的一个魅力所在。总结上述推导过程可得到PCA算法的具体步骤:

第一步,对元素数据样本的各个数据特征进行均值归一化: X_{i} := X_{i} - \mu_{i}

第二步,计算数据的协方差矩阵\sum

第三步,求解除协方差矩阵的特征向量组成的矩阵U与特征值

第四步,选择前K个特征向量组成投影矩阵U_{reduce},将原数据在特征向量上投影 y^{i} = U^{T}_{reduce} * x^{i}

4.2 解压缩

了解压缩算法,一定要了解解压缩的过程。而PCA算法的解压缩过程非常简单:

             \large \because y^{i} = U^{T}_{reduce} * x^{i} \therefore x^{i} = U_{reduce} * y^{i}      (公式 14.13)

具体原理这里不细究,可联系逆矩阵的相关知识来学习。需要注意的是如果不是全部维度都进行利用,则PCA压缩是有损压缩,解压后对数据会有所丢失。

图14-4 PCA压缩与解压缩

 

4.3 压缩维度的选择

在实际应用中具体需要压缩多少维有时要依据具体的任务需求而言,这里介绍一个选择标准,即运用PCA计算出特征值后,用特征值之和与选择出的k个方向向量所对应的特征之和的比值:

                                                                        \large \frac{\sum_{i=1}^{k} \lambda ^{i} }{\sum_{i=1}^{n} \lambda ^{i} } \geq t   (公式 14.13)

t 为需要保留的信息比例,令 t = 0.99 即表示 选择 k个投影向量, 使得投影后原数据的信息保留 99%。

4.4 应用建议

在机器学习中一般会这样应用PCA算法:

  1. 使用PCA压缩数据特征维度。

  2. 使用学习算法训练。

  3. 在预测时,需要用由元素数据学习到的投影矩阵\large U_{reduce}将输入特征映射成指定维度的特征向量,再进行预测。

一种错误的观点是:用PCA来解决过拟合问题。前面提到过PCA算法有可能将一些有用的特征信息摒弃而留下一些不重要的特征,这将使得训练效果更差。过拟合还是用正则化来解决。

另一种错误观点是:将PCA当作训练模型的必要步骤。只有到必要时才能使用PCA来进行降维,否则得不偿失,原因同上。

五,总结

本章主要讲解了以下内容:

  • 简介了降维的概念及其应用。

  • 用一种直观的方法讲解了PCA算法。

  • 详细推导了PCA算法的具体过程。

  • 提及了一些PCA算法的应用细节。

 

 

 

 

 

 

 

 

发布了18 篇原创文章 · 获赞 2 · 访问量 717

猜你喜欢

转载自blog.csdn.net/weixin_41542958/article/details/104419421