西瓜书11-特征选择与稀疏学习

chapter 11 特征选择与稀疏学习

11.1 子集搜索与评价

给定属性集,其中有些属性可能很关键,而另一些属性可能没什么用,我们将属性称为“特征”,对当前学习任务有用的属性称为“相关特征”,没什么用的称为“无关特征”,从给定的特征集合中选择出相关特征子集的过程,称为“特征选择”。
特征选择是重要的数据预处理过程,在现实机器学习任务中,获得数据后通常先进行特征选择,此后再训练学习器,那么为何要进行特征选择呢?
1、维数灾难,这是由于属性过多造成的,若从中选出重要的特征,使得后续的学习仅需在一部分特征上构建模型,则维数灾难问题会大为减轻,从这个意义上来说,特征选择与第十章介绍的降维有相似的动机。实际上,他们是处理高维数据的两大主流技术
2、第二个原因是,去除不相关的特征往往会降低学习任务的难度。

需注意的是,特征选择过程必须确保不丢失重要特征,否则后续学习过程会因为重要信息的缺失而无法获得好的性能。给定数据集,若学习任务不同,则相关特征很可能不同,因此,特征选择中的“无关特征”是指与当前学习任务无关
有一类特征称为“冗余特征”,它们所包含的信息能从其它特征中推演出来,例如已有长和宽,则“底面积”是冗余特征,因为它能从长和宽得到,冗余特征在很多时候不起作用,去除它们会减轻学习过程的负担,但有时冗余特征会降低学习任务的难度,例如底面积这个冗余特征的存在将使得体积的估算更容易,更确切的说,若某个冗余特征恰好对应了完成学习任务所需的“中间概念”,则该冗余特征是有益的。为简化讨论,本章暂且假定数据中不涉及冗余特征,并且假定初始的特征集合包含了所有的重要信息。
欲从初始的特征集合中选取一个包含了所有重要信息的特征子集,若没有任何领域的知识作为先验假设,那就只好遍历所有子集了;然而这在计算上却是不可行的,因为这样做会遭遇组合爆炸,特征个数稍多就无法进行。
可行的做法是产生一个==“候选子集”==,评价出它的好坏,基于评价结果产生下一个候选子集,再对其进行评价,这个过程持续下去,直至无法找到更好的候选子集为止。显然,这里涉及两个关键环节:如何根据评价结果获取下一个候选特征子集?如何评价候选特征子集的好坏?
第一个环节是子集搜索问题,给定特征集合{a1,a2,…,ad}我们可将每个特征看成一个候选子集,对这d个候选单特征子集进行评价,假定{a2}最优,于是将{a2}作为第一轮的选定集,然后再选择一个特征加入选定集,构成包含两个特征的候选子集,假定在这d-1个候选两特征子集中{a2,a4}最优,且优于{a2},于是将{a2,a4}作为本轮的选定集;假定k+1个的特征子集不如上一轮的选定集,则停止生成候选子集,并将上一轮选定的k特征集合作为特征选择结果。这样逐渐增加相关特征的策略称为**“前向搜索”,类似的,若我们从完整的特征集合开始,每次尝试去掉一个无关特征,这样逐渐减少特征的策略称为“后向”搜索。
显然,上述策略都是“贪心的”,因为它们仅考虑了使本轮的选定集最优,例如选择了{a2,a4,a5},然而在第四轮却可能是{a2,a4,a6,a8}比所有的{a2,a4,a5,ai}都更优,遗憾的是,若不进行穷举搜索,则这样的问题无法避免。
第二个环节是
子集评价问题**,给定数据集D,假定D中第i类样本所占的比例为pi,为便于讨论,假定样本属性均为离散型,对属性子集A,假定根据其取值将D分成了V个子集,每个子集中的样本在A上取值相同,于是我们可计算属性子集A的信息增益
在这里插入图片描述
其中信息熵定义为:
在这里插入图片描述
信息增益Gain(A)越大, 意味着特征子集A包含的有助于分类的信息越多,于是对每个候选特征子集,我们可基于训练数据集D来计算其信息增益,以此作为评价准则。
通过估算特征子集和原本的特征全集的差异,与全集的划分差异越小,则说明A越好,信息熵仅是判断这个差异的一种途径,其他能判断两个划分差异的机制都能用于特征子集评价。
特征子集搜索机制与子集评价机制相结合,即可得到特征选择方法,例如将前向搜索和信息熵融合,这显然与决策树算法非常相似,事实上,决策树可用于特征选择,树节点的划分属性所组成的集合就是选择出的特征子集,其他的特征选择方法未必像决策树那么明显,但他们在本质上都是显式或隐式地结合了子集搜索机制和子集评价机制
常见的特征选择方法大致可分为三类,过滤式、包裹式和嵌入式。

11.2 过滤式选择

过滤式方法先对数据集进行特征选择,然后再训练学习器,特征选择过程与后续学习器无关,这相当于先用特征选择过程对初始特征进行“过滤”,再用过滤后的特征来训练模型。
Relief是一种著名的过滤式特征选择方法,该方法设计了一个“相关统计量”来度量特征的重要性,该统计量是一个向量,其每个分量对应于一个初始特征,而特征子集的重要性是由子集中每个特征所对应的相关统计量分量之和来决定,于是,最终只需指定一个阈值r,然后选择比r大的相关统计量分量所对应的特征即可。也可指定欲选取的特征个数k,然后选取相关统计量分量最大的k个特征。
显然,Relief的关键是如何确定相关统计量,给定训练集,对每个样本xi,先在其同类样本中寻找其最近邻xi,nh,称为猜中近邻,再从xi的异类样本中寻找最近邻xi,nm,称为“猜错近邻”,然后,相关统计量对应于属性j的分量为:
在这里插入图片描述
从11.3可以看出,若xi与猜中近邻在属性j的距离小于xi与其猜错近邻的距离,则说明属性j对区分同类与异类样本是有益的,于是增大距离j所对应的统计量分量(权重),反之,则说明属性j取负面作用,于是减小j所对应的统计量分量,最后,对基于不同样本得到的估计结果进行平均,就得到各属性的相关统计量分量,分量值越大,则对应属性的分类能力就越强。
实际上Relief只需在数据集上进行采样来估计相关统计量,而不必对整个数据集进行统计。Relief是为二分类问题设计的,其扩展变体Relief-F能处理多分类问题,只是在猜错近邻时统计与所有其它类别的距离,并求一个加权和:
在这里插入图片描述
其中pl为第l类样本在数据集D中所占的比例。

11.3 包裹式选择

包裹式特征选择直接把最终将要使用的学习器的性能作为特征子集的评价准则,换言之,包裹式特征选择的目的就是为给定学习器选择最有利于其性能,“量身定做的”特征子集。
一般而言,由于包裹式特征选择方法直接针对给定学习器进行优化,因此从最终学习器性能来看,包裹式特征选择比过滤式特征选择更好,但另一方面,由于在特征选择过程中需多次训练学习器,因此包裹式特征选择的计算开销通常比过滤式特征选择大得多。(每次特征选择都要重新训练学习器以验证性能)
LVW是一种典型的包裹式特征选择方法,它在拉斯维加斯方法框架上使用随机策略来进行子集搜索,并以最终分类器的误差作为特征子集评价准则,算法如下:
西瓜书11-特征选择与稀疏学习_第1张图片
通过随机产生特征子集(第六行),并使用交叉验证估计学习器的误差(第八行),若当前的误差比之前的误差更小,或误差相当但包含的特征数更少,则将这个特征子集保留下来。
由于LVW算法中特征子集的搜索采用了随机策略,而每次特征子集评价都需要训练学习器,计算开销很大,因此算法设置了条件控制参数T,但若初始特征数很大,迭代轮数很大,则算法可能运行很长时间都打不到停止条件。(感觉很弱智的方法)

11.4 嵌入式选择与L1正则化

在过滤式(先进行特征选择,找到最优特征子集再训练)和包裹式特征选择方法(一边进行特征选择,一边更新学习器性能以决定是否继续迭代)中,特征选择过程与学习器训练过程有明显分别。
与此不同,嵌入式特征选择将特征选择过程与学习器训练过程融为一体,两者在同一个优化过程中完成,即在学习器训练过程中自动进行了特征选择
给定数据集,考虑最简单的线性回归模型,以平方差为损失函数,则优化目标为:在这里插入图片描述
当样本特征很多,而样本数相对较少时,式11.5很容易陷入过拟合,为缓解过拟合问题,可对式11.5加入正则化项,若使用L2范数正则化,则有:
在这里插入图片描述
其中正则化参数λ>0,式11.6称为==“岭回归”==,通过引入L2正则化项,能显著降低过拟合风险。
能否将L2范数替换为Lp范数呢?
令p=1,则有:
在这里插入图片描述
其中正则化参数λ>0,式11.7称为LASSO。
L1和L2范数都能降低过拟合风险,但前者还会带来一个额外的好处:他比后者更易于获得**“稀疏解”,即它求得的w会有更少的非零分量(即有更多的零分量)。
为了理解这一点,看一个直观的例子:假定x仅有两个属性,于是w都只有两个分量,即w1和w2,我们将其作为两个坐标轴,我们将其作为两个坐标轴,然后在图中绘制出式11.6和11.7的
第一项的等值线,即在(w1,w2)空间中平方误差取值相同的点的连线,再分别绘制出L1范数与L2范数的等值线,即在(w1,w2)空间中L1范数取值相同的点的连线,以及L2范数取值相同的点的连线。11.6与11.7的解要在平方误差项与正则化项之间折中**,即出现在交点处,由图11.2可以看出,采用L1范数时交点常出现在坐标轴上,即w1或w2等于0,而采用L2范数时,两者交点通常出现在某个象限中,即w1和w2均非零,换言之,采用L1范数比L2范数更易得到稀疏解:
西瓜书11-特征选择与稀疏学习_第2张图片
注意到w取得稀疏解意味着初始的D个特征中仅有对应着w的非零向量的特征才会出现在最终模型中,于是,求解L1范数正则化的结果是得到了仅采用一部分初始特征的模型,所以基于L1正则化的学习方法就是一种嵌入式特征选择方法,其特征选择过程与学习器训练过程融为一体,同时完成。
基于L1范数最小化的方法可以通过近端梯度下降PGD得以快速求解。

11.5 稀疏表示与字典学习

把数据集D考虑为一个矩阵,其每行对应于一个样本,每列对应于一种特征,特征选择所考虑的问题是特征具有“稀疏性”,即矩阵中的许多列与当前学习任务无关,通过特征选择去除这些列,则学习器训练过程仅需在较小的矩阵上进行,学习任务的难度可能有所降低。涉及的计算和存储开销会减少,学得模型的可解释性也会提高。

考虑另一种稀疏性:D所对应的矩阵存在很多零元素,但这些零元素不是整列,整行排列的,当样本具有这样的稀疏表示时,对学习任务有不少好处,例如用线性支持向量机之所以能在文本数据上有很好的性能,恰是由于文本数据在使用上述的字频表示后具有高度的稀疏性,使大多数问题变得线性可分,同时,稀疏本身并不会造成存储上的巨大负担,因为稀疏矩阵已有很多高效的存储方法。
若给定的数据集D是稠密的,能否将其转化为稀疏表示形式,从而享受稀疏性所带来的好处呢?需注意的是,我们所希望的稀疏表示是“恰当稀疏”而不是“过度稀疏”,恰当稀疏能让学习任务变得简单可行。

但一般的学习任务中(如图像分类)并没有像《现代汉语词典》这样的稀疏表示可用,我们需学习出这样一个“字典”,为普通稠密表达的样本找到合适的字典,将样本转化为合适的稀疏表示形式,从而使学习任务得以简化,模型复杂度得以降低。找到字典的过程通常称为“字典学习”或“稀疏编码”。字典学习侧重于学得字典的过程,而稀疏编码侧重于对样本进行稀疏表达的过程,由于两者通常是在同一个优化求解过程中完成的,因此笼统地称为字典学习。
给定数据集X,字典学习的最简单形式为:
在这里插入图片描述
其中B为字典矩阵,k称为字典的词汇量,通常由用户指定。αi是样本xi的稀疏表示。式11.5的第一项是希望αi能很好地重构xi,第二项则是希望αi尽量稀疏。
与LASSO相比,不仅要求得类似11.7中w的αi(正则化项),还需学习字典矩阵B,受LASSO启发,我们可采用变量交替优化的策略来求解式11.15。
先固定B,参照LASSO的方法求解下式,从而为每个样本xi找到相对应的αi
在这里插入图片描述
第二步,固定住αi来更新字典B,此时可将式11.5写为:
在这里插入图片描述
||·||F是矩阵的Frobenius范数。
初始化字典矩阵B后反复迭代上述两步,最终即可求得字典B和样本xi的稀疏表示αi,在上述字典学习过程中,用户能通过设置词汇量k的大小来控制字典规模,从而影响到稀疏程度。

11.6 压缩感知

在现实任务中,我们常希望根据部分信息来恢复全部信息,例如将模拟信号转换为数字信号,需要满足奈奎斯特采样定理,则采样后的数字信号就保留了模拟信号的全部信息。然而,为了便于传输,存储,在实践中通常对采样的数字信号进行压缩,这有可能损失一些信息,而在传输过程中,由于丢包也有可能损失信息,能否基于接收的信号精确重构出原信号呢?压缩感知为解决此类问题提供了新的思路。
与特征选择,稀疏表示不同,压缩感知关注的是如何利用信号本身所具有的稀疏性,从部分观测样本中恢复原信号,压缩感知分为“感知测量”和“重构恢复”这两个阶段,“感知测量”关注如何对原始信号进行处理以获得稀疏样本表示,涉及傅里叶变换,小波变换,字典学习,稀疏编码等。“重构恢复”关注如何基于稀疏性从少量观测中恢复原信号,这是压缩感知的精髓,当谈到压缩感知时,通常是指这部分。
压缩感知问题可借助“限定等距性”,通过L1范数最小化问题求解。
西瓜书11-特征选择与稀疏学习_第3张图片
能否将表11.1中通过读者评价得到的数据当作部分信号,基于压缩感知的思想恢复出完整信号呢?
通过压缩感知技术恢复欠采样信号的前提条件之一是信号有稀疏表示。一般来说,相似题材的书籍总有相似的读者,若能将书籍按题材分类,则题材总数必然远远小于书籍总数,因此从题材的角度看,表11.1中反映出的信号应该是稀疏的,于是应能通过类似压缩感知的思想加以处理。
矩阵补全技术可用于解决这个问题,其形式为:
西瓜书11-特征选择与稀疏学习_第4张图片
其中,X表示需恢复的稀疏信号,A是如表11.1的读者评分矩阵这样的已观测信号,Ω是A中非?元素的下标集合。式11.24的约束项明确指出,恢复出的矩阵中(X)ij应该与观测到的对应元素相同。
11.24也是一个NP难问题,rank(X)在集合在这里插入图片描述
上的凸包是X的“核范数”:
在这里插入图片描述
右边表示矩阵的奇异值之和,即矩阵的核范数为矩阵的奇异值之和,于是可通过最小化矩阵核范数来近似求解式11.24,即:西瓜书11-特征选择与稀疏学习_第5张图片
式11.26是一个凸优化问题,可通过半正定规划求解,在满足一定条件时,若A的秩为r,n<在这里插入图片描述
个元素就能完美恢复出A。
压缩感知解读:

你可能感兴趣的:(西瓜书)