欢迎光临散文网 会员登陆 & 注册

人工智能AI面试题-3.34机器学习中的L0、L1与L2范数到底是什么意思?

2023-10-16 08:38 作者:机器爱上学习  | 我要投稿

3.34机器学习中的L0、L1与L2范数到底是什么意思? 🤖监督机器学习问题⽆⾮就是“minimize your error while regularizing your parameters”,也就是在规则化参数的同时最⼩化误差。最⼩化误差是为了让我们的模型拟合我们的训练数据,⽽规则化参数是防⽌我们的模型过分拟合我们的训练数据。🛠️ 多么简约的哲学啊!因为参数太多,会导致我们的模型复杂度上升,容易过拟合,也就是我们的训练误差会很⼩。但训练误差⼩并不是我们的最终⽬标,我们的⽬标是希望模型的测试误差⼩,也就是能准确的预测新的样本。 所以,我们需要保证模型“简单”的基础上最⼩化训练误差,这样得到的参数才具有好的泛化性能(也 就是测试误差也⼩),⽽模型“简单”就是通过规则函数来实现的。另外,规则项的使⽤还可以约束我 们的模型的特性。这样就可以将⼈对这个模型的先验知识融⼊到模型的学习当中,强⾏地让学习到的模型具有⼈想要的特性,例如稀疏、低秩、平滑等等。 要知道,有时候⼈的先验是⾮常重要的。前⼈的经验会让你少⾛很多弯路,这就是为什么我们平时学习最好找个⼤⽜带带的原因。⼀句点拨可以为我们拨开眼前乌云,还我们⼀⽚晴空万⾥,醍醐灌顶。对机器学习也是⼀样,如果被我们⼈稍微点拨⼀下,它肯定能更快的学习相应的任务。只是由于⼈和   机器的交流⽬前还没有那么直接的⽅法,⽬前这个媒介只能由规则项来担当了。 有⼏种⾓度来看待规则化的。规则化符合奥卡姆剃⼑(Occam's razor)原理。这名字好霸⽓,razor!不过它的思想很平易近⼈:在所有可能选择的模型中,我们应该选择能够很好地解释已知数据并且⼗分简单的模型。从贝叶斯估计的⾓度来看,规则化项对应于模型的先验概率。民间还有个说法就是,规则化是结构风险最⼩化策略的实现,是在经验风险上加⼀个正则化项(regularizer)或惩罚项(penalty term)。 ⼀般来说,监督学习可以看做最⼩化下⾯的⽬标函数: 📉 min(损失函数L(yi,f(xi;w)) + 规则项Ω(w)) 其中,第⼀项L(yi,f(xi;w))  衡量我们的模型(分类或者回归)对第i个样本的预测值f(xi;w)和真实的标签yi 之前的误差。因为我们的模型是要拟合我们的训练样 本的嘛,所以我们要求这⼀项最⼩,也就是要求我们的模型尽量的拟合我们的训练数据。🎯 但正如上⾯说⾔,我们不仅要保证训练误差最⼩,我们更希望我们的模型测试误差⼩,所以我们需要加上第⼆项,也就是对参数w的规则化函数Ω(w)去约束我们的模型尽量的简单。 OK,到这⾥,如果你在机器学习浴⾎奋战多年,你会发现,哎哟哟,机器学习的⼤部分带参模型都和这个不但形似,⽽且神似。是的,其实⼤部分⽆⾮就是变换这两项⽽已。💡 对于第⼀项Loss函数,如果是Square loss,那就是最⼩⼆乘了;如果是Hinge Loss,那就是著名的SVM 了;如果是exp-Loss,那就是⽜逼的 Boosting了;如果是log-Loss,那就是Logistic Regression了;还有等等。 不同的loss函数,具有不同的拟合特性,这个也得就具体问题具体分析的。但这⾥,我们先不究loss函数的问题,我们把⽬光转向“规则项Ω(w)”。 规则化函数Ω(w)也有很多种选择,⼀般是模型复杂度的单调递增函数,模型越复杂,规则化值就越 ⼤。⽐如,规则化项可以是模型参数向量的范数。然⽽,不同的选择对参数w的约束不同,取得的效果也不同,但我们在论⽂中常见的都聚集在:零范数、⼀范数、⼆范数、迹范数、Frobenius范数和核   范数等等。 这么多范数,到底它们表达啥意思?具有啥能⼒?什么时候才能⽤?什么时候需要⽤呢? ⼀、L0范数与L1范数 L0范数是指向量中⾮0的元素的个数。如果我们⽤L0范数来规则化⼀个参数矩阵W的话,就是希望W的 ⼤部分元素都是0。这太直观了,太露⾻了吧,换句话说,让参数W是稀疏的。🕵️‍♂️ OK,看到了“稀疏”⼆字,⼤家都应该从当下风风⽕⽕的“压缩感知”和“稀疏编码”中醒悟过来,原来⽤ 的漫⼭遍野的“稀疏”就是通过这玩意来实现的。但你又开始怀疑了,是这样吗?看到的papers世界中, 稀疏不是都通过L1范数来实现吗?脑海⾥是不是到处都是||W||1影⼦呀!⼏乎是抬头不见低头见。🔍 没错,这就是这节的题⽬把L0和L1放在⼀起的原因,因为他们有着某种不寻常的关系。那我们再来看看L1范数是什么?它为什么可以实现稀疏?为什么⼤家都⽤L1范数去实现稀疏,⽽不是L0范数呢?🤔 L1范数是指向量中各个元素绝对值之和,也有个美称叫“稀疏规则算⼦”(Lasso  regularization)。现在我们来分析下这个价值⼀个亿的问题:为什么L1范数会使权值稀疏?有⼈可能会这样给你回答“它是L0  范数的最优凸近似”。 实际上,还存在⼀个更美的回答:任何的规则化算⼦,如果他在Wi=0的地⽅不可微,并且可以分解为 ⼀个“求和”的形式,那么这个规则化算⼦就可以实现稀疏。这说是这么说,W的L1范数是绝对值,|w|   在w=0处是不可微,但这还是不够直观。这⾥因为我们需要和L2范数进⾏对⽐分析。所以关于L1范数  的直观理解,请待会看看第⼆节。 对了,上⾯还有⼀个问题:既然L0可以实现稀疏,为什么不⽤L0,⽽要⽤L1呢?个⼈理解⼀是因为L0 范数很难优化求解(NP难问题),⼆是L1范数是L0范数的最优凸近似,⽽且它⽐L0范数要容易优化求   解。所以⼤家才把⽬光和万千宠爱转于L1范数 。🧐 OK,来个⼀句话总结:L1范数和L0范数可以实现稀疏,L1因具有⽐L0更好的优化求解特性⽽被⼴泛  应⽤。📚 好,到这⾥,我们⼤概知道了L1可以实现稀疏,但我们会想呀,为什么要稀疏?让我们的参数稀疏有什么好处呢?这⾥扯两点: 1)特征选择(Feature Selection): ⼤家对稀疏规则化趋之若鹜的⼀个关键原因在于它能实现特征的⾃动选择。⼀般来说,xi的⼤部分元素(也就是特征)都是和最终的输出yi没有关系或者不提供任何信息的,在最⼩化⽬标函数的时候考   虑xi这些额外的特征,虽然可以获得更⼩的训练误差,但在预测新的样本时,这些没⽤的信息反⽽会被考虑,从⽽⼲扰了对正确yi的预测。 稀疏规则化算⼦的引⼊就是为了完成特征⾃动选择的光荣使命,它会学习地去掉这些没有信息的特征,也就是把这些特征对应的权重置为0。 2)可解释性(Interpretability): 另⼀个青睐于稀疏的理由是,模型更容易解释。例如患某种病的概率是y,然后我们收集到的数据x是1000维的,也就是我们需要寻找这1000种因素到底是怎么影响患上这种病的概率的。 假设我们这个是个回归模型:y=w1*x1+w2*x2+…+w1000*x1000+b(当然了,为了让y限定在[0,1]的范  围,⼀般还得加个Logistic函数)。通过学习,如果最后学习到的w*就只有很少的⾮零元素,例如只有   5个⾮零的wi,那么我们就有理由相信,这些对应的特征在患病分析上⾯提供的信息是巨⼤的,决策性的。 也就是说,患不患这种病只和这5个因素有关,那医⽣就好分析多了。但如果1000个wi都⾮0,医⽣⾯  对这1000种因素,累觉不爱。🏥 以上为原题目的改写解答全文,希望对你的理解有所帮助。如果有任何问题或需要进一步解释,请随时提问。🤓📚

人工智能AI面试题-3.34机器学习中的L0、L1与L2范数到底是什么意思?的评论 (共 条)

分享到微博请遵守国家法律