L1,L2正则

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_32502811/article/details/81132640 总体概述:L1L1L_1正则:L1=α∥ω∥1L1=α‖ω‖1L_1 = \alpha\lVert\omega\rVert_1,其中αα\alpha为惩罚系数,ωω\omega为线性模型的参数。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_32502811/article/details/81132640

总体概述:

L 1 正则:

  • L 1 = α ω 1 ,其中 α 为惩罚系数, ω 为线性模型的参数。表示权值的绝对值之和最小。使他变最小的趋势就是希望模型参数中为0的项多一些,即稀疏。

  • 提到L1,自然而然会想到为什么没有L0.其实是有的。L0表示的含义是参数中非零项的个数。他的趋势也是希望模型参数会尽可能多的为0.但是实际上我们常用的却是L1或者L2.原因在于:优化L0范数很难(NP难问题),L1范数优化起来相对容易,并且L1范数是L0的最优凸近似。

  • L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择.(一般应用于特征之间有关系,类似降维)

  • 使用L1正则化的线性模型叫Lasso回归

L 2 正则

  • 形式: L 2 = α ω 2 2 ,表式所有参数平方和再开方。对他进行最小化,产生的趋势是使得参数尽量小,即模型更简单些,但是与L1的区别是,尽量小但是达不到0.所以L2正则也叫权值衰减(weights decay)。
  • 对常数项不进行惩罚,所以参数值也不能太小,容易使得常数项起主要作用而使模型发生欠拟合。
  • 使用L2正则的线性模型为ridge回归,求解方法用梯度下降就可以
  • L2的作用在于可以防止过拟合,提升模型的泛化能力。为什么?我的理解是L2正则使得模型参数非常小(但不为零),参数越小模型越简单(为啥越简单?我的理解是:假如参数很大,那么输入有特别小的变化的时候,计算出来的数都会有很大的变化,这就容易导致过拟合;如果每个参数都比较小,那么输入有一定的变化的时候,对输出的影响不是很大,泛化能力好),模型越简单越不容易过拟合。

加正则项相当于是对模型加先验,L1正则相当于拉普拉斯先验,L2正则相当于高斯先验

L1和L2的区别

L1和L2的正则化损失表示为如下:

L a s s o : min ω 1 n y ω x 2 , s . t . i = 1 N | ω i | C

R i d g e : min ω 1 n y ω x 2 , s . t . ω i 2 C

对其进行可视化,假设是一个二维的模型,即只有 ω 1 , ω 2 两个参数。

image

我们可以在平面上画出目标函数的等高线,约束条件为平面中半径为C的norm ball(黑色线表示,左侧是L1正则,右侧是L2正则)。等高线和norm ball第一次相交的位置,就是最优解。

可以看出,L1-ball更容易在角的位置和等高线先相交,而角位置都是在轴上,所以肯定有一个为0,这也说明了为啥L1正则会产生稀疏性。L2-ball因为没有角,所以产生稀疏的情况就很少,所以它不具有稀疏性,而只是让参数更加的趋近于0.

因此,一句话总结就是:L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0。Lasso在特征选择时候非常有用,而Ridge就只是一种规则化而已。

参考blog

L1+L2

把L1和L2合在一起,就变成了ElasticNet

arg min ω y ω x + λ 1 ω 1 + λ 2 ω 2

ElasticNet 是一种使用L1和L2先验作为正则化矩阵的线性回归模型.这种组合用于只有很少的权重非零的稀疏模型,比如:class:Lasso, 但是又能保持:class:Ridge 的正则化属性.我们可以使用 l1_ratio 参数来调节L1和L2的凸组合(一类特殊的线性组合)。

当多个特征和另一个特征相关的时候弹性网络非常有用。Lasso 倾向于随机选择其中一个,而弹性网络更倾向于选择两个.
在实践中,Lasso 和 Ridge 之间权衡的一个优势是它允许在循环过程(Under rotate)中继承 Ridge 的稳定性.

目录
相关文章
|
自然语言处理 算法 前端开发
Multi-Agent实践第5期:RAG智能体的应用:让AgentScope介绍一下自己吧
本期文章,我们将向大家展示如何使用AgentScope中构建和使用具有RAG功能的智能体,创造AgentScope助手群,为大家解答和AgentScope相关的问题。
|
缓存 JavaScript 前端开发
同步加载、异步加载、延迟加载、预加载的区别
同步加载、异步加载、延迟加载、预加载的区别
620 0
|
3月前
|
存储 数据采集 自然语言处理
56_大模型微调:全参数与参数高效方法对比
随着大型语言模型(LLM)规模的不断增长,从数百亿到数千亿参数,传统的全参数微调方法面临着计算资源消耗巨大、训练效率低下等挑战。2025年,大模型微调技术已经从早期的全参数微调发展到如今以LoRA、QLoRA为代表的参数高效微调方法,以及多种技术融合的复杂策略。本文将深入对比全参数微调和参数高效微调的技术原理、适用场景、性能表现和工程实践,为研究者和工程师提供全面的技术参考。
|
6月前
|
监控 数据可视化 安全
从零开始学 Dify:搭建你的第一个 LLM 应用平台
Dify(Do It For You)是一个开源的 LLMOps 平台,专注于缩短 AI 原型与生产应用之间的距离。它通过「可视化 + API 优先」的方式,帮助开发者快速构建、测试、监控并上线基于大型语言模型(LLM)的解决方案,支持从聊天机器人、检索增强生成(RAG),再到代理 Agent 的全功能覆盖。
|
10月前
|
人工智能 缓存 自然语言处理
构建智能天气助手:基于大模型API与工具函数的调用实践
在人工智能快速发展的今天,大语言模型(LLM)已经成为构建智能应用的重要基础设施。本文将介绍如何利用大模型API和工具函数集成,构建一个能够理解自然语言并提供精准天气信息的智能助手。
4492 11
|
12月前
|
存储 应用服务中间件 Linux
nginx配置证书和私钥进行SSL通信验证
nginx配置证书和私钥进行SSL通信验证
631 4
|
11月前
|
运维 前端开发 安全
亚信科技研发智能化实践之路
亚信科技研发智能化实践之路
|
缓存 负载均衡 安全
Servlet与JSP在Java Web应用中的性能调优策略
【6月更文挑战第23天】在Java Web中,Servlet和JSP调优至关重要,以应对高并发和复杂业务带来的性能挑战。优化包括Servlet复用、线程安全、数据库连接池,以及JSP的编译优化、使用JSTL、页面缓存和静态内容分离。全局优化涉及负载均衡、异步处理和缓存策略。通过这些实践,开发者能提升应用响应速度和吞吐量,确保高负载下的稳定运行。
361 7
|
NoSQL 编译器 Linux
CodeBlocks-20.03下载安装及中文教程
CodeBlocks-20.03下载安装及中文教程
4388 5