我们将属性称为“特征”,对当前学习任务有段的属性称为“相关特征”。
特征选择是一个重要的“数据预处理”过程
第一个环节是“子集搜索”问题,说通俗就是不断对特征子集进行贪心搜索,穷举法
第二个环节是“子集评价”,使用信息熵、信息增益进行衡量
常见的特征选择方法大致可分为三类:过滤式、包裹式、嵌入式
11.2 过滤式选择
过滤式方法先对数据集进行特征选择,然后再训练学习器,特征选择过程与后续学习器无关,这相当于先用特征选择过程对初始特征进行“过滤”,再用过滤后的特征来训练模型。
Relief是一种著名的过滤式特征选择方法,使用“相关统计量”来度量特征的重要性
※关键在于相关统计量的确定方式:
11.3 包裹式选择
包裹式特征选择直接把最终将要使用的学习器的性能作为特征子集的评价准则,换言之,包裹式特征选择的目的就是为给定学习器选择最有利于其性能、“量身定做”的特征子集。
特点:最终学习器性能,包裹式特征选择比过滤式特征选择更好,但开销更大
LWW算法就是主要的包裹式特征选择的方法1.E 初始定义误差无穷大 2.d为特征集的数量 3.A*为最优特征集 8.通过交叉校验形式对(选定的某个特征集)学习器进行比较 9.判断误差,如果这个特征集误差小,那么就把这个特征集作为最好的
这个算法是尽量找但不一定是最好的,也就是说,可能找不到最好的
最后,本节LVW 算法基于拉斯维加斯方法框架,可以仔细琢磨体会拉斯维加斯方法和蒙特卡罗方法的区别。网上较为流行的解释如下(原文出处不详):
蒙特卡罗算法:采样越多,越近似最优解;尽量找好的,但不保证是最好的
拉斯维加斯算法:采样越多,越有机会找到最优解;尽量找最好的,但不保证能找到
11.4 嵌入式选择与L1 正则化
“嵌入式特征选择是将特征选择过程与学习器训练过程融为一体,两者在同一个优化过程中完成,即在学习器训练过程中自动地进行了特征选择。”,具体可以对比本节式(11.7)的例子与前两节方法的本质区别,细细体会本节第一段的这句有关“嵌入式”的概念描述。
个人感觉,就是正则化的过程,防止出现过拟合,在这一部分,引入L1、L2范数
这里简单地介绍以下几种向量范数的定义和含义 。
L-P范数
根据P 的变化,范数也有着不同的变化,一个经典的有关P范数的变化图如下:
上图表示了p从无穷到0变化时,三维空间中到原点的距离(范数)为1的点构成的图形的变化情况。以常见的L-2范数(p=2)为例,此时的范数也即欧氏距离,空间中到原点的欧氏距离为1的点构成了一个球面。
L0范数是指向量中非0的元素的个数。如果我们用L0范数来规则化一个参数矩阵W的话,就是希望W的大部分元素都是0。换句话说,让参数W是稀疏的。
L1范数是指向量中各个元素绝对值之和。L1范数是L0范数的最优凸近似。任何的规则化算子,如果他在Wi=0的地方不可微,并且可以分解为一个“求和”的形式,那么这个规则化算子就可以实现稀疏。W的L1范数是绝对值,|w|在w=0处是不可微。
虽然L0可以实现稀疏,但是实际中会使用L1取代L0。因为L0范数很难优化求解,L1范数是L0范数的最优凸近似,它比L0范数要容易优化求解。
L2范数是指向量中各元素的平方和然后开根。我们让L2范数的规则项||W||2最小,可以使得W的每个元素都很小,都接近于0。而越小的参数说明模型越简单,越简单的模型则越不容易产生过拟合现象。
L2范数,又叫“岭回归”(Ridge Regression)、“权值衰减”(weight decay)。它的作用是改善过拟合。过拟合是:模型训练时候的误差很小,但是测试误差很大,也就是说模型复杂到可以拟合到所有训练数据,但在预测新的数据的时候,结果很差。
解释:书中对该图的解释已经很清楚了,而且通俗易懂。这里再重复强调地是,所谓“稀疏”,即 W 非零分量个数尽量少;本例中为二维向量,当交点在坐标轴时,则必有W=(w1,w2)其一为0,即为稀疏的(注意:两个分量不能都等于0,否则还预测啥呢?)
注:lipschitz条件
若存在常数L, 使得对定义域D的任意两个不同的实数x1、x2均有:
| f(x1)-f(x2) | ≤ L | x1-x2 |
成立,则称f(x)在D上满足利普希茨 ( Lipschitz ) 条件,L 称为利普希茨常数。显然地,若f(x)满足利普希茨条件,则f(x)一致连续。
利普希茨连续条件(Lipschitz continuity)是以德国数学家鲁道夫·利普希茨命名,是一个比一致连续更强的光滑性条件。直观上,利普希茨连续函数限制了函数改变的速度,符合利普希茨条件的函数的斜率,必小于利普希茨常数。
Lipschitz连续”很常见,知乎有一个问答(https://www.zhihu.com/question/51809602) 对Lipschitz连续的解释很形象:以陆地为例, 连续就是说这块地上没有特别陡的坡;其中最陡的地方有多陡呢?这就是所谓的Lipschitz常数。
西瓜书中对求解的描述
f(x)在Xk的附近可通过二阶泰勒展开式近似为
对公式的解释:
11.10第一个公式怎么来的
11.10第二个式子怎么来的
个人对11.12式的看法,按照西瓜书中的思想,因为上面证明的就是求最小值的方法,也就是通过迭代就能求出f(x)的最优解,类似将这个思想带入到x的迭代更新中,就是在每一步对f(x)进行梯度下降迭代的同时考虑L1范数最小化。这是什么意思?这个不应该就是优化目标吗?怎么又成了更新公式了?
解释:通过梯度下降法对f(x)进行最小化,每一步梯度下降迭代实际等价于最小化二次函数,以上对g(x)最小化实际上等同于最小化,这个就是个思想的扩展,就是边对f(x)优化,边对L1优化,因为第一项本身就是f(x)的优化方法,和L1在一起,就是整个函数的优化方法,这一点需要理解,这一项就和求解微分方程一样,有通解和特解之分,就是通过调整参数优化函数值。(注意前面是arg min,就是在求g(x)最小时的x是多少,其实这个公式没有什么意思)
11.14的推导 引用
为什么正则能选择特征
使用带惩罚项的基模型进行特征选择:比如LR加入正则。通过L1正则项来选择特征:L1正则方法具有稀疏解的特性,因此天然具备特征选择的特性,但是要注意,L1没有选到的特征不代表不重要,原因是两个具有高相关性的特征可能只保留了一个,如果要确定哪个特征重要应再通过L2正则方法交叉检验。
F范数、2范数
f范数
F 范数 各行列元素平方和2范数
Euclid范数(欧几里得范数,常用计算向量长度),即向量元素绝对值的平方和 再开方同样也是
即A'A矩阵的最大特征值的开平方。11.5 稀疏学习和字典表示
为普通稠密表达的样本找到合适的字典,将样本转化为合适的稀疏表示,从而使学习任务得以简化,模型复杂度得以降低,通常称为字典学习。
字典学习优化目标 字典学习求解思路 KSVD算法11.15解释
关键是为什么来的解释为什么用这种方法,最简单的方法就是能够用字典矩阵进行线性表示,这个矩阵之间的列向量是线性无关的,保证了其有稀疏解11.16
这个求解的思路和lasso的思路基本一致,但是设计到B也是未知变量,所以在求解的过程方式不一样,但是子过程是一样的11.17
优化11.6 压缩感知不想看了,实在是看不懂,这几章是我感觉看上去难度最大的,而且跟着教学提纲学,也不知所然。
网友评论