第十四章-降维之主成分分析法(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个线性无关的向量便可作为一组基。

设原向量坐标为第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营,选定基为第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营,则在该基的表示下,原向量的新坐标为第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营,具体过程如下:

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

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

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

如图14-1所示,同样是点x,在基为 第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营时其坐标可表示为第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营;而当基为第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营时其坐标可表示为第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营。其过程如下:

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

2.2 PCA的直观描述

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

设原n维数据为第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营,现选定n维空间中的一组基,并求出其逆矩阵如下

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

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

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

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

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

如图14-2中数据而言,如果不经过数据压缩,则需要存储第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营 共10个数。假设采用PCA算法并选择方向向量第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营为投影方向时,则需要存储方向向量第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营以及压缩后各个点的坐标第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营共计7个数,压缩了3个数,但信息完全没有减少。

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

2.3 特点

PCA算法的优点如下:

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

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

同时其缺点也很明显:

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

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

三,原理推导

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

3.1 两个前提

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

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

  2. 投影用的方向向量应该具有单位长度,即第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营

3.2 优化目标

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

假设原数据为 第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营,在方向向量上投影后数据为第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营,两者之间距离的平方可表示为:

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

两者之间的距离第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营可表示为投影后信息的损失。要使得信息损失最少 就需要使得 第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营最小。设投影向量组成的投影矩阵为第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营,则投影后的数据样本的信息损失和表示为:

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

因为第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营由数据样本确定,要使得信息损失最小,则要使得:第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营最小。

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

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

即优化目标为找到一个投影矩阵第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营使得损失函数最小化。

3.3 求解

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

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

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

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

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

即可知投影矩阵第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营中的向量,即为样本矩阵第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营的特征向量,而λ为其特征值。特殊的是投影矩阵第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营是正交矩阵,其逆矩阵就是其本身。

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

3.4 再理解

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

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

而当数据的平均值 第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营为0时,方差可化简为

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

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

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

当数据X和Y的的平均值 第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营均为0时,协方差可化简为

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

现在取出数据样本中的两个特征维度第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营, 两者之间的协方差为:

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

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

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

展开其中的项可得:

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

即:第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营实际上就是原样本集的协方差矩阵,其对角线上是各个特征的方差,非对角线上是 各特征两两之间的协方差。

最终求解出来的特征向量矩阵U,其实就是可将第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营对角化的矩阵。而对角化的过程就是使得坐标变换后加大各个维度特征差异性,而减小不同维度之间相关性的过程。

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

四,应用细节

4.1 具体应用过程

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

第一步,对元素数据样本的各个数据特征进行均值归一化: 第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营

第二步,计算数据的协方差矩阵第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营

第三步,求解除协方差矩阵的特征向量组成的矩阵第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营与特征值

第四步,选择前K个特征向量组成投影矩阵第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营,将原数据在特征向量上投影 第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营

4.2 解压缩

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

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

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

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

 

4.3 压缩维度的选择

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

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

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

4.4 应用建议

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

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

  2. 使用学习算法训练。

  3. 在预测时,需要用由元素数据学习到的投影矩阵第十四章-降维之主成分分析法(PCA) 深度之眼_吴恩达机器学习作业训练营将输入特征映射成指定维度的特征向量,再进行预测。

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

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

五,总结

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

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

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

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

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