特征选择与稀疏学习
从给定特征集合选择相关特征子集的过程、使属性空间稀疏化的过程。
一、子集搜素与评价
1、特征选择:常用很多属性描述一个样本,但仅有部分属性对样本分类或取值有较大影响,此类属性即相关特征,否则为无关特征。特征选择即选择出相关特征(使得后续学习在此基础上进行),它与降维是相似的。
2、子集搜索与评价:从特征集合之中获取相关特征子集可通过搜索并进行评价获得,遍历搜索会遭遇组合爆炸,一般是基于某原则产生候选子集,再进行评价修改(贪心法)。子集搜索环节有“前向”、“后向”、“双向”,对应于候选子集为单特征集、全特征集或边添加边去除。评价标准可选为特征子集的信息增益。
二、常见特征选择方法
包括过滤式、包裹式、嵌入式。主要关注其与后续学习算法的关系。
1、过滤式:先进行特征选择,再训练学习器,学习器不影响特征选择。典型算法为Relief算法。该算法通过数据集计算各个属性的“相关统计量”,其中xi,nh为同类最近邻样本,xi,nm为异类最近邻样本。上标j为样本j属性。该计算式说明,若xi与xi,nh在属性j上距离小于xi,nm,说明j对区分同类与异类样本室有益的,且与相关统计量成正比。
故此可以指定阈值或排序选择k个特征为相关特征。
2、包裹式:选择最适合学习器的特征子集,直接针对学习器进行优化,典型算法LVW如下。
可见,该算法随机产生特征子集,使用交叉验证法计算误差,若误差缩小或误差相等但是子集较小,则更新。计算量很大,故设置截止步数。
3、嵌入式与L1正则化:包裹式和过滤式特征选择和学习算法有很大区别,一般不可视为同一步骤,嵌入式是将特征选择和学习器训练相结合,完成学习器训练的过程中也将样本进行了特征选择。典型问题如简单线性回归正则化问题。
一般多元线性回归会由于样本过少而陷入过拟合问题,此时添加L2正则项(岭回归)即可改善问题。这里的正则项也可替换为Lp范数,如L1范数时成为LASSO。
L1正则化会比L2正则化更容易得到“稀疏解”,即w可能有更少非零项,这是因为在w空间中,L1正则化解常会处于坐标轴。关于L1正则化可用近端梯度下降PGD法。求解出w后,我们发现对样本集而言,x也是仅在w对应的非零项才起作用,也就是说我们通过学习w的过程也将样本集提取出了相关特征。
三、稀疏表示与字典学习
认为特征选择对应的是特征集合(属性集合)具有稀疏性,以至于可以通过某些算法进行提取。可将样本空间视为一个矩阵,行为某样本,列为属性,特征选择认为会出现空白列并去除之。稀疏表达推广上述观念,认为稀疏是真实的矩阵稀疏,即虽然不是列空白,但是确实很多地方为0。如让每个文档为一个样本,每个字的出现次数作为属性,字的集合即“字典”,会发现该矩阵相当稀疏。稀疏表达会对学习任务有很大好处,如利于(线性)分类任务。
如何对一个原本稠密数据集转换为稀疏表达是稀疏表示或字典学习的任务。其一般表达如下:
即希望:查字典B能准确地还原原本数据、且字典表达α(数据的升维表达)尽可能稀疏。具体求解可通过先固定字典优化字典表达α,再固定字典表达α优化字典B(采用KSVD)反复迭代实现。可通过设置“词汇量”k控制字典规模与稀疏程度。
四、稀疏数据的应用——压缩感知
通过部分信息恢复全部信息的过程,旨在通过发挥数据本身的稀疏性完成该任务。
典型问题是如何通过数字信号还原模拟信号,Nyquist定理指出,采样频率要大于2倍原始信号才行。假设一个低采样情形:
其中矩阵为n×m的,n远小于m。显然不能从y还原出x。但是可以作变换:
若y能还原出s,则可以通过变换还原出x。
似乎该问题与原问题没什么区别,但是当s是稀疏的时候,问题将可能从欠定变得适定!因此寻找将x转化为稀疏变量的手段就很重要,傅里叶变换、小波变换等就属于此类。