网站首页 > 技术教程 正文
- 向量的范数:
向量范数是定义了向量的类似于长度的性质,满足正定,齐次,三角不等式的关系就称作范数。
向量的范数一般有L0, L1, L2与L_infinity范数,
- L0范数:
定义为
即代表向量中非0元素个数。
L0范数表示向量中非零元素的个数。如果我们使用L0来规则化参数向量w,就是希望w的元素大部分都为零。L0范数的这个属性,使其非常适用于机器学习中的稀疏编码。在特征选择中,通过最小化L0范数来寻找最少最优的稀疏特征项。但是,L0范数的最小化问题是NP难问题。而L1范数是L0范数的最优凸近似,它比L0范数要更容易求解。因此,优化过程将会被转换为更高维的范数(例如L1范数)问题。
- L1范数:
L1范数是向量中各个元素绝对值之和,也被称作“Lasso regularization”(稀疏规则算子)。
在机器学习特征选择中,稀疏规则化能够实现特征的自动选择。一般来说,输入向量X的大部分元素(也就是特征)都是和最终的输出Y没有关系或者不提供任何信息的,在最小化目标函数的时候考虑这些额外的特征,虽然可以获得更小的训练误差,但在预测新的样本时,这些没用的信息反而会被考虑,从而干扰了对正确Y的预测。稀疏规则化算子的引入就是为了完成特征自动选择,它会学习地去掉这些没有信息的特征,也就是把这些特征对应的权重置为0。
L0范数与L1范数都可以实现稀疏,而L1范数比L0具有更好的优化求解特性而被广泛使用。 L0范数本身是特征选择的最直接的方案,但因为之前说到的理由,其不可分,且很难优化,因此实际应用中我们使用L1来得到L0的最优凸近似。
总结一下上两段的结论就是:L1范数和L0范数可以实现稀疏,L1因为拥有比L0更好的优化求解特性而被广泛应用。这样我们大概知道了可以实现稀疏,但是为什么我们希望稀疏?让参数稀疏有什么好处呢?这里有两个理由:
1)特征选择(Feature Selection):
大家希望稀疏规则化的一个关键原因在于它能实现特征的自动选择。一般来说,X的大部分元素(也就是特征)都是和最终的输出没有关系或者不提供任何信息的,在最小化目标函数的时候考虑这些额外的特征,虽然可以获得更小的训练误差,但在预测新的样本时,这些没用的信息反而会被考虑,从而干扰了对正确的预测。稀疏规则化算子的引入就是为了完成特征自动选择的光荣使命,它会学习地去掉这些没有信息的特征,也就是把这些特征对应的权重置为0。
2)可解释性(Interpretability):
另一个青睐于稀疏的理由是,模型更容易解释。例如患某种病的概率是y,然后我们收集到的数据x是1000维的,也就是我们需要寻找这1000种因素到底是怎么影响患上这种病的概率的。假设这是个回归模型:
当然了,为了让y限定在的范围,一般还得加个Logistic函数。
通过学习,如果最后学习到的就只有很少的非零元素,例如只有5个非零的,那么我们就有理由相信,这些对应的特征在患病分析上面提供的信息是巨大的,决策性的。也就是说,患不患这种病只和这5个因素有关,那医生就好分析多了。但如果1000个都非0,医生面对这1000种因素只能一脸懵逼不知如何是好。
- L2范数
L2范数是最常用的范数了,我们用的最多的度量距离欧氏距离就是一种L2范数。在回归里面,有人把加了L2范数项的回归c称为“岭回归”(Ridge Regression),有人也叫它“权值衰减weight decay”。它被广泛的应用在解决机器学习里面的过拟问题合。
为什么L2范数可以防止过拟合?回答这个问题之前,我们得先看看L2范数实际上是什么。
L2范数是指向量各元素的平方和然后求平方根。我们让L2范数的规则项最小,可以使得的每个元素都很小,都接近于0,但与L1范数不同,它不会让它等于0,而是接近于0,这是有很大的区别的。而越小的参数说明模型越简单,越简单的模型则越不容易产生过拟合现象。为什么越小的参数说明模型越简单?因为当限制了参数很小,实际上就限制了多项式某些分量的影响很小(看上面线性回归的模型的那个拟合的图),这样就相当于减少参数个数。
总结下:通过L2范数,我们可以实现了对模型空间的限制,从而在一定程度上避免了过拟合。
L2范数的好处是什么呢?
1)学习理论的角度:
从学习理论的角度来说,L2范数可以防止过拟合,提升模型的泛化能力。
2)优化计算的角度:
从优化或者数值计算的角度来说,L2范数有助于处理 condition number不好的情况下矩阵求逆很困难的问题。关于condition number的知识参见这篇文章:https://blog.csdn.net/zouxy09/article/details/24972869
矩阵的范数:
矩阵范数是定义了矩阵的类似于长度的性质,与向量范数不同,他要满足额外的性质:
矩阵范数一般有1-, 2-, infinity-, F-范数
列和范数,即所有矩阵列向量绝对值之和的最大值
谱范数,即ATA矩阵的最大特征值的开平方。
行和范数,即所有矩阵行向量绝对值之和的最大值。
以上这些都是诱导范数,由向量的Lp范数诱导而来。非诱导范数常见的为F-范数,即Frobenius范数以及核范数。
行和范数,即所有矩阵行向量绝对值之和的最大值,matlab调用函数norm(A, inf)。
以上这些都是诱导范数,由向量的范数诱导而来。
Frobenius范数,即矩阵元素绝对值的平方和再开平方
核范数英文称呼叫Nuclear Norm。这个相对于上面火热的L1和L2来说,可能大家就会陌生点。那它是干嘛用的呢?约束Low-Rank(低秩)
秩可以度量相关性,而矩阵的相关性实际上有带有了矩阵的结构信息。如果矩阵之间各行的相关性很强,那么就表示这个矩阵实际可以投影到更低维的线性子空间,也就是用几个向量就可以完全表达了,它就是低秩的。所以我们总结的一点就是:如果矩阵表达的是结构性信息,例如图像、用户-推荐表等等,那么这个矩阵各行之间存在着一定的相关性,那这个矩阵一般就是低秩的。
如果A是一个m行n列的数值矩阵,rank(A)是X的秩,假如rank(A)远小于m和n,则我们称X是低秩矩阵。低秩矩阵每行或每列都可以用其他的行或列线性表出,可见它包含大量的冗余信息。利用这种冗余信息,可以对缺失数据进行恢复,也可以对数据进行特征提取。
好了,低秩有了,那约束低秩只是约束rank(A)呀,和我们这节的核范数有什么关系呢?他们的关系和L0与L1的关系一样。因为rank()是非凸的函数,在优化问题里面很难求解,那么就需要寻找它的凸近似来近似它了。对,rank(A)的凸近似就是核范数。
猜你喜欢
- 2024-10-16 有限元求解:结构应力法如何实现的网格不敏感呢?
- 2024-10-16 论利用粒子群算法求解测距定位方程
- 2024-10-16 推荐系统多样性——DPP篇 推荐系统的模型
- 2024-10-16 线性代数主要可以从几个角度去理解: (1)线性方程...
- 2024-10-16 numpy入门 day05 numpy eig
- 2024-10-16 python多进程矩阵计算的应用示例 python多进程队列
- 2024-10-16 计量课后5.4(大数据202230906137 HSl)
- 2024-10-16 TensorFlow 2:使用自编码器进行插值
- 2024-10-16 Matlab矩阵的简单操作 matlab如何进行矩阵运算
- 2024-10-16 鸡兔同笼问题多种数学方法解答 百分之九十的人做不出来
你 发表评论:
欢迎- 05-05从virsh当中学习QEMU/KVM启动命令
- 05-05Win10 BCD文件损坏怎么修复?(bcd文件损坏win7)
- 05-05亚马逊春节假期期间的店铺管理设置
- 05-051分钟总结常用k8s常用诊断教程(k8s常见故障)
- 05-05VisiPics重复图片查找软件中文汉化教程
- 05-05微服务的发布实现方式1灰度实现(微服务实现原理)
- 05-05轻松掌握Java多线程 - 第二章:线程的生命周期
- 05-05德拉诺之王邪DK报告:PVE向小测试及分析
- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)