文章来源于《百面机器学习》
1.为什么要进行降维?
在机器学习中,数据通常需要被表示成向量形式以输入模型进行训练。对向维向量进行处理和分析时,会极大地消耗系统资源,甚至产生维度灾难。因此,进行降维,即用一个低维度的向量表示原始高维度的特征就显得尤为重要。
2.降维的方法有哪些?
常见的降维方法有主成分分析(PCA)、线性判别分析(LDA)、等距映射、局部线性嵌入、拉普拉斯特征映射、局部保留投影等。
(1)PCA
- PCA属于一种线性、非监督、全局的降维算法
- 由于PCA是线性降维方法,具有一定的局限性。
- 通过核映射对PCA进行扩展得到核主成分分析(KPCA),通过流形映射的降维方法,比如等距映射、局部线性嵌入、拉普拉斯特征映射等,使PCA对复杂数据集进行非线性降维。
- PCA旨在找到数据中的主成分,并利用这些主成分表征原始数据,从而达到降维的目的。
- PCA应用的最大方差理论,即最大化投影方差,也就是让数据在主轴上投影的方差最大。
- PCA的求解步骤(应用最大方差理论):
1)对样本数据进行中心化处理(对于给定的一组列向量数据点{ v 1 , v 2 , . . . , v n v_1,v_2,...,v_n v1,v2,...,vn} ,中心化后的表示为{ x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn}={ v 1 − μ , v 2 − μ , . . . , v n − μ v_1-\mu,v_2-\mu,...,v_n-\mu v1−μ,v2−μ,...,vn−μ},其中 μ = 1 n ∑ i = 1 n v i \mu=\frac1n\sum_{i=1}^nv_i μ=n1∑i=1nvi)。
2)求样本协方差矩阵 ∑ = 1 n ∑ i = 1 n x i x i T \sum =\frac1n\sum_{i=1}^nx_ix_i^T ∑=n1∑i=1nxixiT。
3)对协方差矩阵进行特征值分解,将特征值从大到小排列。
4)取特征值前d大对应的特征向量ω1,ω2,…,ωd,通过 x i ˊ = { w 1 T x i w 2 T x i . . . w d T x i \acute{x_i}=\begin{cases} w_1^Tx_i\\w_2^Tx_i \\...\\w_d^Tx_i\end{cases} xiˊ=⎩⎪⎪⎪⎨⎪⎪⎪⎧w1Txiw2Txi...wdTxi将n维样本映射到d维。 - 通过选取最大的d个特征值对应的特征向量,抛弃方差较小的特征(噪声),使n维列向量被映射为d维列向量,定义降维后的信息占比为 η = ∑ i = 1 d λ i 2 ∑ i = 1 n λ i 2 \eta = \sqrt{\frac{\sum_{i=1}^d\lambda_i^2}{\sum_{i=1}^n\lambda_i^2}} η=∑i=1nλi2∑i=1dλi2
- PCA可以通过最小平方误差的思路进行降维
(2)LDA(Fisher LDA)
- LDA是一种有监督的降维算法。
- LDA是机器学习、数据挖掘领域中经典且热门的一种算法。
- LDA的中心思想——最大化类间距离和最小化类内距离
- 目标函数定义为类间距离和类内距离的比值,则需要最大化目标 max J ( w ) = w T ( μ 1 − μ 2 ) ( μ 1 − μ 2 ) T w ∑ x ∈ C i w T ( x − μ i ) ( x − μ i ) T w \max J(w)=\frac{w^T(\mu_1-\mu_2)(\mu_1-\mu_2)^Tw}{\sum_{x\in C_i}w^T(x-\mu_i)(x-\mu_i)^Tw} maxJ(w)=∑x∈CiwT(x−μi)(x−μi)TwwT(μ1−μ2)(μ1−μ2)Tw
- Fisher LDA相比PCA更善于对有类别信息的数据进行降维处理,但它假设每个类数据都是高斯分布、各个类的协方差相等(假设在现实中不一定满足,但还是非常有效的)。
- LDA是线性模型,对于噪声的鲁棒性比较好,表达能力有一定局限性
- 可通过引入核函数扩展LDA方法以处理分布较为复杂的数据。
3.LDA和PCA作为经典的降维算法,如何从应用的角度分析其原理的异同?两种降维算法在目标函数上有何区别与联系?
(1)如何从应用的角度分析其原理的异同
- 在语音识别中,从一段音频中提取出人的语音信号,要过滤掉一些固定频率(方差较小)的背景噪声使用PCA先进行降维。如需求是从这段音频中区分出声音属于哪个人,使用LDA对数据进行降维,使每个人的语音信号具有区分性。
- 在人脸识别领域中,基于PCA的人脸识别方法也称为特征脸(Eigenface)方法,该方法将人脸图像按行展开形成一个高维向量,对多个人脸特征的协方差矩阵做特征值分解,其中较大特征值对应的特征向量具有与人脸相似的形状,故称为特征脸。利用PCA进行降维,一般情况下保留的是最佳描述特征(主成分),而非分类特征。如果想要达到更好的人脸识别效果,应该用LDA方法对数据集进行降维,使得不同人脸在投影后的特征具有一定区分性。”
- 从应用的角度,掌握一个基本的原则——对无监督的任务使用PCA进行降维,对有监督的则应用LDA。
(2)两种降维算法在目标函数上有何区别与联系?
- 从PCA和LDA两种降维方法的求解过程来看,它们确实有着很大的相似性,但对应的原理却有所区别。
- PCA选择的是投影后数据方差最大的方向。由于它是无监督的,因此PCA假设方差越大,信息量越多,用主成分来表示原始数据可以去除冗余的维度,达到降维。
- 而LDA选择的是投影后类内方差小、类间方差大的方向。其用到了类别标签信息,为了找到数据中具有判别性的维度,使得原始数据在这些方向上投影后,不同类别尽可能区分开。