Hulu机器学习问题与解答系列 | 第六弹:PCA算法

Hulu机器学习问题与解答系列 | 第六弹:PCA算法

好久不见,Hulu机器学习问题与解答系列又又又更新啦!

你可以点击菜单栏的“机器学习”,回顾本系列前几期的全部内容,并留言发表你的感悟与想法,说不定会在接下来的文章中看到你的感言噢~

今天的主题是

【降维】

引言

Hulu机器学习问题与解答系列 | 第六弹:PCA算法

宇宙,是时间和空间的总和。时间是一维的,而空间的维度,众说纷纭,至今没有定论。弦理论说是9维,霍金所认同M理论则认为是10维。它们解释说人类所能感知的三维以外的维度都被卷曲在了很小的空间尺度内。当然,谈及这些并不是为了推销《三体》系列读物,更不是引导读者探索宇宙真谛,甚至怀疑人生本质,而是为了引出今天机器学习课堂主题——降维。

机器学习中的数据维数与现实世界的空间维度本同末离。在机器学习中,数据通常需要被表示成向量形式以输入模型进行训练。但众所周知,对高维向量进行处理和分析时,会极大消耗系统资源,甚至产生维度灾难。例如在CV(计算机视觉)领域中将一幅100x100的RGB图像提取像素特征,维度将达到30000;在NLP(自然语言处理)领域中建立<文档-词>特征矩阵,也动辄产生几万维的特征向量。因此,进行降维,即用一个低维度的向量表示原始高维度的特征就显得尤为重要。试想,如果宇宙真如M理论所说,每个天体的位置都由一个十维坐标来描述,应该没有一个正常人能想象出其中的空间构造。但当我们把这些星球投影到一个二维平面,整个宇宙便会像上面的银河系一样直观起来。

常见的降维方法主要有主成分分析(PCA)、线性判别分析(LDA)、等距映射(Isomap)、局部线性嵌入(LLE)、拉普拉斯特征映射(LE)、局部保留投影(LPP)等。这些方法又可以按照线性/非线性,监督/非监督,全局/局部,进行不同划分。其中 PCA作为最经典的方法,至今已有100多年的历史,它属于一种线性、非监督、全局的降维算法。我们今天就来回顾一下这经久不衰的百年经典。

“PCA”

场景描述

在机器学习领域中,我们对原始数据进行特征提取,有时会得到比较高维的特征向量。在这些向量所处的高维空间中,包含很多的冗余和噪声。我们希望通过降维的方式来寻找数据内部的特性,从而提升特征表达能力,降低训练复杂度。PCA(主成分分析)作为降维中最经典的方法,是面试中经常被问到的问题。

问题

PCA的原理及目标函数

PCA的求解方法

背景知识:线性代数

解答与分析

PCA(principal components analysis), 即主成分分析,旨在找到数据中的主成分,并利用这些主成分表征原始数据,从而达到降维的目的。举一个简单的例子,在三维空间中有一系列数据点,这些点分布在一个过原点的平面上。如果我们用自然坐标系x, y, z这三个轴来表示数据,需要使用三个维度,而实际上这些点只出现在一个二维平面上,如果我们通过坐标系旋转使得数据所在平面与x, y平面重合,那么我们就可以通过x’, y’两个维度表达原始数据,并且没有任何损失,这样就完成了数据的降维,而x’, y’两个轴所包含的信息就是我们要找到的主成分。

但在高维空间中,我们往往不能像刚才这样直观地想象出数据的分布形式,也就更难精确地找到主成分对应的轴是哪些。不妨,我们先从最简单的二维数据来看看PCA究竟是如何工作的。

Hulu机器学习问题与解答系列 | 第六弹:PCA算法

Hulu机器学习问题与解答系列 | 第六弹:PCA算法

上图(左)是二维空间中经过中心化的一组数据,我们很容易看出主成分所在的轴(以下称为主轴)的大致方向,即右图中绿线所处的轴。因为在绿线所处的轴上,数据分布的更为分散,这也意味着数据在这个方向上方差更大。在信号处理领域中我们认为信号具有较大方差,噪声具有较小方差,信号与噪声之比称为信噪比,信噪比越大意味着数据的质量越好。由此我们不难引出PCA的目标,即最大化投影方差,也就是让数据在主轴上投影的方差最大。

Hulu机器学习问题与解答系列 | 第六弹:PCA算法

Hulu机器学习问题与解答系列 | 第六弹:PCA算法

Hulu机器学习问题与解答系列 | 第六弹:PCA算法

熟悉线性代数的读者马上就会发现,原来,x投影后的方差就是协方差矩阵的特征值。我们要找到最大的方差也就是协方差矩阵最大的特征值,最佳投影方向就是最大特征值所对应特征向量。次佳投影方向位于最佳投影方向的正交空间中,是第二大特征值对应的特征向量,以此类推。至此,我们得到了PCA的求解方法:

Hulu机器学习问题与解答系列 | 第六弹:PCA算法

Hulu机器学习问题与解答系列 | 第六弹:PCA算法

总结与扩展

至此,我们从最大化投影方差的角度解释了PCA的原理、目标函数和求解方法,其实PCA还可以用其他思路(比如最小回归误差的角度)进行分析,得到新的目标函数,但最终会发现其对应的原理和求解方法与本文中的是等价的。另外,由于PCA是一种线性降维方法,虽然经典,但其具有一定局限性。我们可以通过核映射对PCA进行扩展得到KPCA方法,也可以通过流形映射的降维方法(如Isomap、LLE、LE等)对一些PCA效果不好的复杂数据集进行非线性降维操作。这些方法都会在之后的推送中有所涉及,敬请期待。


下一题预告

【非监督学习算法与评估】

场景描述

在实际工作生活中我们经常会遇到一类问题,期望给机器输入大量的观测数据,并通过归纳和学习找到这些数据中存在的某种共性特征或者结构,或者数据特征值之间存在的某种关联。例如,视频网站依据用户的观看行为对用户分组,并依据分组结果建立不同的推荐策略;也或者是寻找视频播放流畅性和用户退订之间的某种关系等等。通常这类问题的观测数据没有标签信息,需要通过算法模型来寻求数据内在的结构(structure)和模式(Pattern),此类学习算法也被称为非监督学习,主要包含两大类学习方法:数据聚类(Clustering)和变量关联(Correlation)。相比于监督式学习,非监督学习通常没有正确答案,算法模型的设计直接影响最终的输出和性能,需要通过多次迭代的方法寻找模型的最优的参数。

问题描述

以聚类算法为例,假设没有外部标签数据,如何区分两个无监督学习(聚类)算法性的优劣呢?


欢迎留言提问或探讨

关注“Hulu”微信公众号

点击菜单栏“机器学习”获得更多系列文章

Hulu机器学习问题与解答系列 | 第六弹:PCA算法