算法岗常见面试题(二):正则化

学习连接:理解L1, L2正则化的正确姿势

归一化的主要目的是降低模型复杂度,减少过拟合。

最基本的正则化方法是在原目标(代价)函数中添加惩罚项,对复杂度高的模型进行“惩罚”。数学表达式为:

\hat J(w;X,y)=J(w;X,y)+\alpha \Omega(w)

其中J()目标函数\Omega(w)为惩罚项,可以理解为模型“规模”的某种度量;参数\alpha控制正则化的强度

常用的正则化函数

L1范数,L1正则化(LASSO):\Omega(w)=||w||_1=\sum_{i=1}^n|w_i|

L2范数,L2正则化(Ridge/岭回归(华为二面)):\Omega(w)=||w||_2=\sum_{i=1}^nw_i^2

如何实现降低复杂度

对于目标函数,第一部分权重尽力拟合训练数据,第二部分令权重尽可能小,当无穷大的时候,权重会接近于0。添加了惩罚项的损失函数,综合考虑的模型的拟合能力和复杂程度,从而找到合适的。

L1正则化比L2正则化更容易得到稀疏解的原因

从解空间的形状来看,L1范数是以原点为中心的菱形,而L2范数是以原点为中心的目标函数的解,是原目标函数和正则化项的切点。对于L1范数而言,随着正则化项的权重逐渐增大,它与原目标函数的交点会不断接近坐标轴,最终落在坐标轴上,这时候就会有权重w为0的情况;而对于L2范数而言,无论正则化项的权重如何改变,它和目标函数的交点也都会落在象限上。因此,L1正则化比L2正则化更容易得到稀疏解的原因。

L1、L2正则化的适用场景

L1使模型中尽可能多的参数值为0,因此适用于:模型剪枝,模型压缩,特征选择。是一种从改变模型结构的角度(减少模型参数的数量)解决过拟合的方式。

L2使模型中的所有参数值尽可能小,使得模型尽量不依赖于某几个特殊的特征,而是使每个特征都能得到尽量均衡的权重,因此适合解决普通的过拟合问题,即从参数分布(使分布尽可能的均匀)的角度解决过拟合问题。

l1和l2正则化的区别是什么,是什么原因导致的

  1. L1正则化对应L1范式(Lasso); L2正则化对应L2范式(岭回归)
  2. L1正则化得到稀疏矩阵,自动进行特征选择;L2正则化让参数尽可能小,防止过拟合;
  3. L1正则化趋于选择少量特征,其他特征都是0;L2正则化趋于选择更多的特征,这些特征都会接近与0

从贝叶斯角度解释正则化项(陌陌笔试)

聊一聊机器学习的MLE和MAP:最大似然估计和最大后验估计 - 知乎 (zhihu.com)

概述:交叉熵损失函数本质上是最大似然估计MLE,正则化等价于MLE+先验概率。所以,从贝叶斯的角度看,损失函数+正则化就是贝叶斯最大后验估计MAP。

#算法面经#
全部评论
可以
1 回复 分享
发布于 2023-04-13 00:08 香港
太赞了~喜欢
1 回复 分享
发布于 2023-03-23 13:15 湖北
请问一下目标函数这样的同心圆是基于什么假设?
点赞 回复 分享
发布于 2023-06-27 16:30 浙江

相关推荐

想干测开的tomca...:让我来压力你!!!: 这份简历看着“技术词堆得满”,实则是“虚胖没干货”,槽点一抓一大把: 1. **项目描述是“技术名词报菜名”,没半分自己的实际价值** 不管是IntelliDoc还是人人探店,全是堆Redis、Elasticsearch、RAG这些时髦词,但你到底干了啥?“基于Redis Bitmap管理分片”是你写了核心逻辑还是只调用了API?“QPS提升至1500”是你独立压测优化的,还是团队成果你蹭着写?全程没“我负责XX模块”“解决了XX具体问题”,纯把技术文档里的术语扒下来凑字数,看着像“知道名词但没实际动手”的实习生抄的。 2. **短项目塞满超纲技术点,可信度直接***** IntelliDoc就干了5个月,又是RAG又是大模型流式响应又是RBAC权限,这堆活儿正经团队分工干都得小半年,你一个后端开发5个月能吃透这么多?明显是把能想到的技术全往里面塞,生怕别人知道你实际只做了个文件上传——这种“技术堆砌式造假”,面试官一眼就能看出水分。 3. **技能栏是“模糊词混子集合”,没半点硬核度** “熟悉HashMap底层”“了解JVM内存模型”——“熟悉”是能手写扩容逻辑?“了解”是能排查GC问题?全是模棱两可的词,既没对应项目里的实践,也没体现深度,等于白写;项目里用了Elasticsearch的KNN检索,技能栏里提都没提具体掌握程度,明显是“用过但不懂”的硬凑。 4. **教育背景和自我评价全是“无效信息垃圾”** GPA前10%这么好的牌,只列“Java程序设计”这种基础课,分布式、微服务这些后端核心课提都不提,白瞎了专业优势;自我评价那堆“积极认真、细心负责”,是从招聘网站抄的模板吧?没有任何和项目挂钩的具体事例,比如“解决过XX bug”“优化过XX性能”,纯废话,看完等于没看。 总结:这简历是“技术名词缝合怪+自我感动式凑数”,看着像“背了后端技术栈名词的应届生”,实则没干货、没重点、没可信度——面试官扫30秒就会丢一边,因为连“你能干嘛”都没说清楚。
点赞 评论 收藏
分享
评论
10
102
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务