1. 引言
主成分分析(PCA)自1901年被Pearson [1] 提出以来,逐渐得到发展,在高维数据分析和统计学习领域占有极其重要的地位。作为一种无监督的数据降维方法被广泛地应用在控制科学与工程 [2] 、生物学 [3] 、计算机科学与技术 [4] 等不同研究领域。
合理解释所得主成分的含义是PCA的一个重点问题。由于主成分是原始数据的线性组合,这些线性组合的系数通常是非零的,这对于数据的解释是不利的,随着需要处理的数据维度的增加,传统主成分分析面临着巨大挑战,数据的结果解释性较差 [5]。因此,人们希望这些系数中保留较少的非零元素,也就是将稀疏性加入到主成分分析中,这样就产生了稀疏主成分分析(SPCA)。
SPCA的目标是在一个归一化向量的解释方差和该向量的非零分量的数量之间取得平衡,也就是增加主成分载荷向量中的零元素使得问题具有较好解释性的同时尽可能多的保留原来数据的信息。SPCA是PCA在某些方面的提升,但是由于约束项的加入,稀疏主成分分析问题会变成非光滑优化问题,求解该类问题过程比较复杂,会用到次微分等优化概念还有松弛优化理论等方面的研究方法 [6]。
由于SPCA在数据处理中的作用之大,这个问题也成为了最近几年的研究热点,如在文章 [7] [8] 中都做了重点介绍和阐述。目前,SPCA已经被应用到了一些前沿领域。如海洋污染中油类识别的研究 [9],人们将SPCA降维算法与支持向量机分类识别算法结合,提出了SPCA-SVM算法来达到快速且精准的识别效果;在医学诊断中,稳定SPCA [10] 的聚类分析不仅能得到稳定的变量,还能较为快速准确地发现病变细胞,得到满意的聚类效果;人脸数据集分析表明 [11],RSPCA算法在获取稀疏解的情况下仍拥有着不弱于PCA算法的表现,表明了RSPCA算法在人脸识别及书写数字识别方面具有优越性。
本文主体分为五部分,第一部分对文中涉及的标记和符号进行说明,第二部分简单介绍了主成分分析的基本知识及求解方法,第三部分重点叙述了从求解主成分到求解稀疏主成分的模型改进和发展,第四部分举例了解了稀疏主成分分析的一些前沿应用,最后对全文进行总结。
2. 符号
是标准化的数据矩阵,n表示样本数量,p表示特征数量,不失一般性,假设X的列均值为0。
,
。
是数据矩阵X的协方差矩阵,是一个半正定的对称矩阵。A为矩阵,
代表A的迹。
,
,其中
。
,
。若矩阵
,
。
是Stiefel流形。
3. 主成分的求解
实际数据中的多个特征之间可能存在相关性,这对数据的存储和处理都会造成困扰,主成分分析通过寻找原始数据的线性组合来获得主要成分,这样能够将多个相互关联的特征简化为少数几个互不相关的变量,有利于减少数据冗余,使得后续的处理更加高效。主成分的载荷向量之间是相互正交的且所得主成分的方差最大,求最大方差的目的是尽可能多的保留原始数据信息。
3.1. 前k个主成分的定义
第一主成分的定义为
[12],
是一个单位方向,称为第一主成分的载荷向量,是通过最大化方差求得的:
第二主成分的求解,需要加入另一个约束条件
,即两个主成分的载荷向量是相互正交的,通过
可求得第二主成分。其余的主成分也可以依次求解
:
3.2. 通过求解协方差矩阵的特征向量来求解前k个主成分
假设有n个样本点
,
,第一主成分的载荷向量
的方向就是使这n个样本点投影到该方向所得方差最大的方向,可列下式:
为单位向量,初步计算得:
由矩阵代数定理:向量经矩阵映射前后长度之比的最大值就是这个矩阵的最大奇异值,可得:
其中
是矩阵X的最大奇异值,也是
的最大特征值的算术平方根。
基于以上可得:
表示协方差矩阵
的最大特征值,也是该问题的最大值。最大特征值
所对应的特征向量所指方向就是
的方向,故而求第一主成分的载荷向量问题就可以转化为求解协方差矩阵的最大特征值所对应的特征向量的问题。基于以上事实,我们可以推广得到前k个主成分的载荷向量实际上与协方差矩阵
的前k个最大特征值所对应的k个特征向量相一致。因此,可得主成分分析的一般步骤:
1) 得到样本的数据矩阵;
2) 将数据矩阵标准化;
3) 求得标准化数据矩阵的协方差矩阵;
4) 计算协方差矩阵的特征值和特征向量;
5) 得到主成分。
3.3. 通过求解数据矩阵的奇异值来求得主成分
主成分也可以由数据矩阵的奇异值分解(SVD)求得,
,其中U和V分别是
和
的正交矩阵,D是一个对角矩阵,对角线上的元素依次递减。由奇异值分解得,V的各列就是协方差矩阵
的特征向量,因此它们就是主成分的载荷向量。
,故
为主成分。
因此,从不同的角度主成分会有不同的求解方法,这也便于我们去灵活地使用它。
4. 稀疏主成分分析的理论
传统主成分分析是寻找原始变量的线性组合,求得的载荷向量中的元素一般不为零,因此很难解释数据的结果。当需要处理的数据维数较大时,传统主成分分析在计算上面临着巨大的挑战且最终结果不是很理想。稀疏主成分分析能够很好地弥补传统主成分分析在数据解释方面的不足。
4.1. 硬阈值法
为了得到稀疏解,在实际中经常使用一种简单的硬阈值法。该法在主成分分析的基础上,忽略其中一部分系数,也就是当某些系数的数值小于一个给定值时,就缩减为零,这样在载荷向量中就会出现很多零元素,最后得到稀疏的载荷向量。但是这种方法依赖于主成分分析的结果,而且不适用于样本数据有限的情况。
4.2. L1约束法
较好的方法是直接将稀疏性纳入到问题模型求解中。受到LASSO回归的启发,文章 [13] 提出了一种叫做SCoTLASS的方法,该法通过在约束中加入
范数来保证稀疏性。求解第i个主成分的形式如下:
与传统主成分求解相比,上式多加入一个约束项
,也就是
这个向量的元素绝对值之和小
于参数t。对于SCoTLASS方法来说,参数t的选择是很关键的一步,但是由于该问题不是一个凸优化问题,所以对于t的选择没有合适的标准,因此计算成本较高。
下式是通过将
加入到目标函数中来解决前k个稀疏主成分问题的模型,文章 [6] 给出了解决方法。
这是一个非光滑半正定的规划问题,其目标函数是光滑函数和非光滑函数的总和,为了求解这个问题,这篇文章提出了一种在Stiefel流形上的基于撤回算子的近端梯度法,算法的每一步都涉及到一个结构很好的凸优化问题,可以用半光滑牛顿法来解决。
还有一些文章 [14] 将
放入约束条件里来求解,这样也能达到获取稀疏解的效果,但是所用方法不同。
4.3. 基数约束法
该类方法限制载荷向量中的非零元素的个数以求得稀疏解,通过添加基数约束
或者加一个惩罚项
到目标函数中来达到获得稀疏解的目的。这里的基数约束也可以写为零范数约束
,代表着对
的非零元个数的限制,显然这已经是一个非凸非光滑的优化问题了,所以问题的求
解难度加大。文章 [15] [16] 对这类模型进行了研究,虽然能够有效求解,但是结果的收敛性不强,而且由于问题的非凸性,得不到问题的全局收敛性。
在约束条件里加入稀疏性,求解第一主成分的模型如下:
或把控制稀疏性的式子加入到目标函数中去:
由于
的组合性质,求解该类问题的最优解是NP-hard的,而且求解前k个主成分时,要保证主成分之间相互正交,因此除了单位化约束以外还会加入正交约束。直接求解这类既有稀疏约束又有正交约束的问题是一项具有挑战性的工作 [15],故而有些方法将这样的非凸非光滑问题松弛为凸优化问题来求解 [17]。
4.4. 低秩矩阵近似法
在这个方法中,主成分可以通过解决以下问题来求解:
其中X就是数据矩阵,
,
。若X为稀疏矩阵,著名的幂迭代法能够有效地解决这个问题 [18]。在此基础上可以加入
或者
来得到稀疏解,如下:
其中,
为两个参数,改变后的问题增加稀疏性的同时,要确保X的一阶近似度。当
时,原问题的最优解
分别是矩阵X的左右奇异向量。
4.5. 近似法
由奇异值分解法得第i个主成分
,列下式:
其中
,以上将
单位化就是第i个主成分的近似。在此基础上可以添加
惩罚项来考虑下面的问题:
该式被称为弹性网,
足够大时可以获得稀疏的
,当
固定时,该问题可以被LARS-EN算法有效地解决 [19]。
该法是在求得主成分的基础上得到近似的稀疏主成分,所以从求解过程来说不是独立计算的,需要先求解主成分,再找其稀疏近似,具有依赖性。为了改进这一不足,文章重点提出了另外一种方法:
所求
就是第一稀疏主成分的近似,类似地,还可以近似前k个主成分:
同样,为了获得稀疏的载荷向量,可以将LASSO惩罚项加入到上面两个模型中。文章 [19] 提出了一般化的SPCA算法对问题进行求解。文章 [20] 在主成分分析的基础上采用弹性网对各个主成分系数实行稀疏近似,得到了稀疏近似主成分分析(sPCA)算法。sPCA也具有SPCA的优点,不但保留了原始数据的特点而且其系数具有稀疏性,能极大地提高模型的解释性。
以上就是对稀疏主成分问题求解方法的一个分类介绍,所做处理都是为了获得稀疏的解,所以上述这些问题有一些又可归为稀疏优化问题。根据问题的不同性质,各自有其独特的求解方法。文章 [6] 对稀疏问题的求解做了详细阐述。
5. 稀疏主成分分析的应用
随着互联网技术的飞速发展和大数据时代的到来,海量的数据信息为人们生活带来了诸多便利。SPCA作为数据降维处理的重要工具,目前被广泛地应用于化学、生物医学工程、计算机科学与控制等各大领域。
文章 [9] 研究了一种高效的油类识别算法,对海洋环境保护以及石油的污染防治具有重要的实用价值。文章对比了解决问题的PCA-KNN,PCA-SVM,SPCA-KNN,SPCA-SVM这四种算法的实验效果,结果表明将三维荧光光谱技术结合稀疏主成分分析(SPCA)特征提取方法与支持向量机(SVM)分类算法对油类进行识别提高了分类准确率。医学中通过对基因表达数据的聚类分析能够较快地发现肿瘤细胞,较为精准地诊断疾病。但基因表达数据通常具有维度高样本小的特点,这使得采集的基因表达数据具有大量的冗余与干扰信息,对这些数据直接聚类会使得算法变得低效。文章 [10] 在SPCA的基础上,将重复抽样的Bootstrap方法应用到稀疏主成分的方法中,获得以Lasso理论为基础的稳定稀疏主成分并进行聚类分析,得到有效的数据信息。文章充分体现了稳定SPCA的聚类分析不仅能得到稳定的变量,还能较为快速准确地发现病变细胞,得到满意的聚类效果。文章 [11] 提出了一个新的提取高维数据特征的方法,即重加权稀疏主成分分析(RSPCA)算法。文章建立了RSPCA算法的降维模型并对模型进行求解,然后应用到ORL人脸数据集分析中,对该算法的效果进行了实验研究。对比PCA算法和RSPCA算法在识别实验中的表现,结果表明:RSPCA算法在获取更稀疏解的情况下仍拥有着不弱于PCA算法的表现,该算法在人脸识别及书写数字识别方面具有优越性。
6. 结论
本文从PCA的相关概念及求解模型入手,针对PCA对数据结果解释性不足的这一缺点,引出了改进后的SPCA算法的多种模型。通过对这些模型进行分析,得出这些方法大多是在目标函数里或者是在约束里加入可以提高稀疏性的项,比较常见的添加项是L1范数项或者L0范数项。虽然SPCA算法已经被广泛地应用在一些前沿领域,如油类检测,医学诊断和人脸识别,但是其仍处于发展阶段,学者们还在探索高效的求解方法,完善相关理论知识并将这些成果应用于不同的领域去解决实际问题。