机器学习入门学习笔记(八)特征选择与稀疏学习

一、特征

我们将属性称为 “特征” (feature)。
相关特征 (relevant feature):对当前学习任务有用的属性。
无关特征 (irrelevant feature):与当前学习任务无关、没什么用的属性。
从给定的特征集合中选择出相关特征子集的过程,称为“特征选择”(feature selection)。

特征选择是一个重要的 “数据预处理”(data preprocessing)过程,在现实机器学习任务中,获得数据之后通常先进行特征选择,此后再训练学习器。特征选择有两大作用:
1、减轻 由于属性过多而造成的维数灾难问题 (处理高维数据的主流技术)。
2、去除不相关特征往往会降低学习任务的难度。

特征选择过程必须确保不丢失重要特征,否则后续学习过程会因为重要信息的缺失而无法获得好的性能。
冗余特征 (redundant feature) 包含的信息能从其他特征中推演出来,在很多时候不起作用,去除它们会减轻学习过程的负担。但有时冗余特征恰好对应了完成学习任务所需的“中间概念”,会降低学习任务的难度。

二、子集搜索与评价

问题:遍历所有可能的特征子集在计算上是不可行的,会遭遇组合爆炸。
基本搜索思路:产生“候选子集”,评价出它的好坏,基于评价结果产生下一个候选子集,再对其进行评价,这个过程持续进行下去,直至无法找到更好的候选子集为止。
涉及两个关键环节:子集搜索和子集评价。

2.1 子集搜索

三种子集搜索策略

1、前向 (forward) 搜索:逐渐增加相关特征的策略。
给定特征集合 {a1,a2,…,ad},我们可将每个特征看作一个候选子集,对这d个候选单特征子集进行评价,假定 {a2} 最优,于是将 {a2} 作为第一轮的选定集;然后,在上一轮的选定集中加入一个特征,构成包含两个特征的候选子集,假定在这d-1个候选两特征子集中 {a2,a4} 最优,且优于 {a2} ,于是将 {a2,a4} 作为本轮的选定集;……假定在第 k+1 轮时,最优的候选 (k+1) 特征子集不如上一轮的选定集,则停止生成候选子集,并将上一轮选定的k特征集合作为特征选择结果。

2、后向 (backward) 搜索:从完整的特征集合开始,每次尝试去掉一个无关特征。

3、双向 (bidirectional) 搜索:将前向与后向搜索结合起来,每一轮逐渐增加选定相关特征(这些特征在后续轮中将确定不会被去除)、同时减少无关特征。

存在的问题

上述策略都是贪心的,因为它们仅考虑了使本轮选定集最优,例如在第三轮假定选择 a5 优于 a6,于是选定集为 {a2,a4,a5},然而在第四轮却可能是 {a2,a4,a6,a8}比所有的 {a2,a4,a5,ai} 都更优。遗憾的是,若不进行穷举搜索,则这样的问题无法避免。

2.2 子集评价(subset evaluation)

对每个候选特征子集,我们可基于训练数据集 D 来计算其信息增益,以此作为评价准则。
给定数据集 D,假定 D 中第 i 类样本所占的比例为pi。为便于讨论,假定样本属性均为离散型,对属性子集A,假定根据其取值将 D 分成了 V 个子集 {D1,D2,…,DV},每个子集中的样本在 A 上取值相同,于是我们可计算属性子集 A 的信息增益:
在这里插入图片描述
其中信息熵定义为:
在这里插入图片描述
信息增益Gain(A)越大,意味着特征子集A包含的有助于分类的信息越多。

特征子集 A 实际上确定了对数据集 D 的一个划分,样本标记信息 Y 则对应着对 D 的 真实划分,通过估算这两个划分的差异,就能对 A 进行评价,与 Y 对应的划分的差异越小则说明 A 越好。

信息熵仅是判断这个差异的一种途径,其他能判断两个划分差异的机制都能用于特征子集评价。

三、特征选择

将特征子集搜索机制与子集评价机制相结合,即可得到特征选择方法,例如将前向搜索与信息熵相结合,这显然与决策树算法非常相似,事实上,决策树可用于特征选择。
常见的特征选择方法大致可分为三类:过滤式(filter)、包裹式(wrapper) 和 嵌入式(embedding)。

3.1 过滤式选择

过滤式方法先对数据集进行特征选择,然后再训练学习器,特征选择过程与后续学习器无关,相当于对初始特征进行“过滤”。

Relief 方法

Relief (Relevant Features)是一种著名的过滤式特征选择方法,该方法设计了一个“相关统计量”来度量特征的重要性。
相关统计量是一个向量,其每个分量分别对应于一个初始特征。

1、先寻找 “临近” 样本
给定训练集{(x1,y1),(x2,y2), …,(xm,ym)},对每个示例 xi,Relief 先在 xi 的同类样本中寻找其最近邻 xi,nh,称为“猜中近邻”(near-hit),再从 xi 的异类样本中寻找其最近邻 xi,nm,称为“猜错近邻”(near-miss)

2、计算相关统计量对应于属性 j 的分量:在这里插入图片描述
其中, xaj 表示样本 xa 在属性 j 上的取值,并已规范化到[0,1]区间。
diff(xaj,xbj) 取决于属性 j 的类型:
若属性 j 为离散型,则xaj=xbj 时 diff(xaj,xbj)=0,否则为1;
若属性 j 为连续型,则 diff(xaj,xbj)= | xaj - xbj |。
对基于不同样本得到的估计结果进行平均,就得到各属性的相关统计量分量,分量值越大,则对应属性的分类能力就越强。

3、指定一个阙值,然后选择比大的相关统计量分量所对应的特征即可;也可指定欲选取的特征个数k,然后选择相关统计量分量最大的 k 个特征。

显然,Relief 的时间开销随采样次数以及原始特征数线性增长,因此是一个运行效率很高的过滤式特征选择算法。

Relief-F 方法

Relief 是为二分类问题设计的,其扩展变体 Relief-F 能处理多分类问题。

假定数据集 D 中的样本来自 |γ| 个类别,
对示例 xi,若它属于第 k 类,则 Relief-F 先在第 k 类的样本中寻找 xi 的最近邻示例 xi,nh 并将其作为猜中近邻,然后在第 k 类之外的每个类中找到一个 xi 的最近邻示例作为猜错近邻,记为 xi,l,nm (l= 1,2,…,|γ|).于是,相关统计量对应于属性 j 的分量为
在这里插入图片描述
其中 pl 为第 l 类样本在数据集 D 中所占的比例。

3.2 包裹式选择

包裹式特征选择 直接把最终将要使用的学习器的性能作为特征子集的评价准则,其选择的目的就是为给定学习器选择最有利于其性能、“量身定做”的特征子集。

LVW 方法

LVW (Las Vegas Wrapper) 是一个典型的包裹式特征选择方法。它在拉斯维加斯方法(Las Vegas method)框架下使用随机策略来进行子集搜索,并以最终分类器的误差为特征子集评价准则。算法描述如图11.1所示:
1、初始化 误差E,特征数d,选定的特征子集A*,尝试次数 t
2、产生特征子集 A’ 并计算其作用在学习器上的误差 E’(这里使用交叉验证法来估计学习器 L 的误差)
(1)若误差比原来的更小 或 在误差相同的情况下特征数更少,则选择此子集并更新相关信息。
(2)若误差比原来的大,则不予考虑,尝试次数 t 加一。
在这里插入图片描述
特点:
1、从最终学习器性能来看,包裹式特征选择比过滤式特征选择更好。但由于 LVW算法 中特征子集搜索采用了随机策略,而每次特征子集评价都需训练学习器,计算开销通常比过滤式特征选择大得多,需设置停止条件控制参数 T。
2、有运行时间限制,有可能给不出解。如果初始特征数很多( 即 |A| 很大)、T设置较大,算法可能运行很长时间都达不到停止条件。

3.3 嵌入式选择与L1正则化

嵌入式特征选择是将特征选择过程与学习器训练过程融为一体,两者在同一个优化过程中完成,即在学习器训练过程中自动地进行了特征选择。

正则化

给定数据集D,我们考虑最简单的线性回归模型,以平方误差为损失函数,则优化目标为
在这里插入图片描述
当样本特征很多,而样本数相对较少时,式(11.5)很容易陷入过拟合。为了缓解过拟合问题,可对式(11.5)引入正则化项,若使用 L2 范数正则化,则有
在这里插入图片描述
其中正则化参数 λ>0。式(11.6)称为“岭回归”(ridge regression),通过引入 L2 范数正则化,确能显著降低过拟合的风险。
(Note:LP范数与闵可夫斯基距离的定义一样,定义如下)在这里插入图片描述
那么,能否将正则化项中的 L2 范数替换为Lp范数呢?答案是肯定的。若令p=1,即采用L1范数,则有
在这里插入图片描述
其中正则化参数入>0。式(11.7)称为LASSO (Least Absolute Shrinkage andSelection Operator)。

L1范数和 L2 范数正则化都有助于降低过拟合风险,但前者还会带来一个额外的好处:它比后者更易于获得“稀疏”(sparse)解,即它求得的 w 会有更少的非零分量。

w 取得稀疏解意味着初始的 d 个特征中仅有对应着 w 的非零分量的特征才会出现在最终模型中,于是,求解 L1 范数正则化的结果是得到了仅采用一部分初始特征的模型;换言之,基于L1正则化的学习方法就是一种嵌入式特征选择方法,其特征选择过程与学习器训练过程融为一体,同时完成。

L1正则化求解——PGD

L1 正则化问题的求解可使用近端梯度下降(Proximal Gradient Descent,简称PGD)。具体来说,令 ▽ 表示微分算子,对优化目标
在这里插入图片描述
若 f(x) 可导,且存在常数 L>0 使得
在这里插入图片描述
则在 xk 附近可将 f(x) 通过二阶泰勒展式近似为
在这里插入图片描述
其中 const 是与 x 无关的常数<•, •>表示内积。
显然,式(11.10)的最小值在如下 xk+1 获得:
在这里插入图片描述
于是,若通过梯度下降法对 f(x) 进行最小化,则每一步梯度下降迭代实际上等价于最小化二次函数 f(x)。将这个思想推广到式(11.8),则能类似地得到其每一步迭代应为
在这里插入图片描述
即在每一步对f(x)进行梯度下降迭代的同时考虑L1范数最小化。
通过PGD能使 LASSO和其他基于L范数最小化的方法得以快速求解。

四、稀疏表示与字典学习

4.1 稀疏表示

把数据集 D 考虑成一个矩阵,每行对应于一个样本,每列对应于一个特征。
特征选择所考虑的问题是特征具有“稀疏性”:
1、矩阵中的许多列与当前学习任务无关,通过特征选择去除这些列。
2、D 所对应的矩阵中存在很多零元素,但这些零元素并不是以整列、整行形式存在的。

稀疏表示的作用:
1、学习任务的难度可能有所降低,涉及的计算会减少,学得模型的可解释性也会提高。
2、稀疏矩阵已有很多高效的存储方法,不会造成存储上的巨大负担。

4.2 字典学习(dictionary learning)

“字典学习”(dictionary learning), 亦称“稀疏编码”(sparse coding),目的是为普通稠密表达的样本找到合适的字典,将样本转化为合适的稀疏表示形式,从而使学习任务得以简化,模型复杂度得以降低。

形式

给定数据集 {x1,x2,…, xm},字典学习最简单的形式为
在这里插入图片描述
其中 B∈Rdxk 为字典矩阵(k称为字典的词汇量,通常由用户指定)
αi∈Rk 是样本 xi∈Rd的稀疏表示。

显然,第一项是希望由 αi 能很好地重构 xi,第二项则是希望 αi 尽量稀疏。

求解

与 LASSO相比麻烦得多,因为需学习字典矩阵B。不过,受 LASSO的启发,我们可采用变量交替优化的策略来求解。

1、先固定住字典B,若将式(11.15)按分量展开,参照 LASSO的解法求解下式,从而为每个样本 xi 找到相应的 αi
在这里插入图片描述
2、固定住 αi 来更新字典 B,此时可将式(11.15)写为
在这里插入图片描述
其中X= (x1,x2…,xm)∈Rdxm, A =(α12,…,αm) ∈ Rkxm,||.||F 是矩阵的Frobenius 范数。上式有多种求解方法,常用的有基于逐列更新策略的KSVD。

初始化字典矩阵B之后反复迭代上述两步,最终即可求得字典B和样本 xi 的稀疏表示 αi 在上述字典学习过程中,用户能通过设置词汇量 k 的大小来控制字典的规模,从而影响到稀疏程度。

五、压缩感知

压缩感知(compressed sensing)是用来解决 根据部分信息来恢复全部信息的问题。

假定有长度为 m 的离散信号 x,不妨假定我们以远小于奈奎斯特采样定理(采样次数为频率的两倍)要求的采样率进行采样,得到长度为 n 的采样后信号 y (n<<m),即
在这里插入图片描述
其中 Φ∈Rnxm 是对信号 x 的测量矩阵,它确定了以什么频率进行采样以及如何将采样样本组成采样后的信号。

在已知离散信号 x 和测量矩阵 Φ 时要得到测量值 y 很容易,但接收方还是难以还原出原始信号x,这是因为n<<m,式(11.19)是一个欠定方程,无法轻易求出数值解。

现在不妨假设存在某个线性变换 Ψ∈Rmxm,使得 x 可表示为Ψs,于是 y 可表示为
在这里插入图片描述
于是,若能根据 y 恢复出 s,则可通过 x=Ψs 来恢复出信号。.

粗看起来式(11.20)没有解决任何问题,因为式(11.20)中恢复信号 s 这个逆问题仍是欠定的。但是若 s 具有稀疏性,则这个问题能很好地得以解决。这是因为稀疏性使得未知因素的影响大为减少。此时式(11.20)中的Ψ称为稀疏基,而 A 的作用则类似于字典,能将信号转换为稀疏表示。

与特征选择、稀疏表示不同,压缩感知关注的是如何利用信号本身所具有的稀疏性,从部分观测样本中恢复原信号。

压缩感知分为“感知测量”和“重构恢复”这两个阶段:
感知测量:关注如何对原始信号进行处理以获得稀疏样本表示,这方面的内容涉及傅里叶变换、小波变换以及字典学习、稀疏编码等。
重构恢复:关注的是如何基于稀疏性从少量观测中恢复原信号,这是压缩感知的精髓,当我们谈到压缩感知时,通常是指该部分。

猜你喜欢

转载自blog.csdn.net/chengdong996/article/details/107980701
今日推荐