ch11 特征选择与稀疏学习

子集选择与评价

缓解维度灾难的另一种重要方法是进行特征筛选,同时它也能降低学习任务的难度,只留下关键特征。

对当前学习任务有用的属性称为“相关特征”,而对当前学习任务没有用的属性称为“无关特征”,包含信息能被其他特征表示的属性称为“冗余特征”。

如果想要从原始特征集中选择出一个子集,那么就是一个特征选择问题。特征选择通常包含以下两个环节

  • 子集搜索:搜索最优特征子集
    暴力搜索会遇见组合爆炸问题,所以需要一些启发式方法,如贪心法(前向、后向、双向)

  • 子集评价:评价特征子集的好坏
    评价指标有很多,如信息增益、信息增益比、基尼指数、方差、相关系数等

常见的特征选择方法有:过滤法、包裹法、嵌入法

过滤法

先对数据集进行特征选择,再用特征子集训练模型,特征选择过程与学习过程无关

著名的算法有:Relief、Relief-F

Relief 设计了一个相关统计量用于度量特征的重要性

相关统计量:对于每一个样本点xi,寻找与其最近邻的样本点xi,nh(同类)和xi,nm(异类),于是我们可以定义如下的相关统计量

δj=i=1mdiff(xi,j,xi,nh,j)2+diff(xi,j,xi,nm,j)2

那么最终得到的一个统计量向量越大,说明子集选择的越好,分类性能越强

包裹法

直接利用学习器的性能来评价特征子集的好坏,通常效果更好,但计算开销也更大

著名的算法有:LVW 框架,在特征选择的过程中使用了随机算法

嵌入法

将特征选择过程与学习过程融为一体,直接在学习器上进行特征选择

著名的算法有: L1 正则化、L2 正则化

对于线性回归算法,我们通常认为有这样一条直线可以拟合数据

Y=XW

X不可逆时,我们使用最小二乘法,即

minYXW22

W=(XTX)1XTY

X列不满秩时,即XTX不可逆,即样本特征多于样本数,此时我们可以使用正则化

minYXW22+λW22

W=(XTX+λI)1XTY

保证了XTX+λI可逆,从而解决了多重共线性问题

这是一种罚函数法,即在目标函数中加入了一个罚函数,使得优化问题变得更加复杂

最直观的罚函数是 L0 范数,即非零元素的个数,但是 L0 范数是一个非凸函数,所以我们通常使用 L1 范数,L1 通常能获得稀疏解,即有些特征的权重为 0

img

因此可以说,L1 正则化是一种特征选择方法

L1 正则化的求解方法

可以使用近端梯度下降法(Proximal Gradient Descent),对于优化目标

minxf(x)+λx1

如果满足 Lipschitz 连续梯度条件,希望f不要变化太快,即

L>0,f(x)f(y)2Lxy2,x,yf(x)f(y)xyL2f(x)L

那么在xk处对目标函数进行二阶泰勒展开,有

f(x)f(xk)+f(xk)T(xxk)+L2xxk22=L2x(xk1Lf(xk))22+const

那么我们可以得到

xk+1=argminxL2x(xk1Lf(xk))22xk+1=xk1Lf(xk)

最小值可以通过如上的迭代方式求解,即梯度下降法是对 二次拟合函数的近似

那么应用到 L1 正则化的问题上,我们可以得到

xk+1=argminxf(xk)+f(xk)T(xx)+L2xxk22+λx1xk+1=argminxL2x(xk1Lf(xk))22+λx1

这个问题不存在交叉项,因此可以使用坐标轴下降法(Coordinate Descent)求解,即

xi(k+1)=argminxiL2(xizik)2+λ|xi|

求导数,令导数为 0,即可得到

xi(k+1)={zi(k)λL,zi(k)>λL0,|zi(k)|λLzi(k)+λL,zi(k)<λL

L1 正则化的求解方法

字典学习与稀疏表示

学习到整个数据矩阵的稀疏性

minB,αii=1mxiBαi22+λαi1minB,AXBAF2+λA1

可以使用 PGD 类似的思想交替优化B,A

  • Step 1:固定B, 求解A

minαixiBαi22+λαi1

  • Step 2:固定A, 求解B

minBXBAF2

这个问题可以通过 SVD 分解求解,即每一步固定其他B中的列,求解B中的一列,minbiEibiαiF2

posted @   Blackteaxx  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示