L1、L2正则化的原理及适用场景

news2024/11/17 7:27:14

1. L1正则化,也称Lasso回归

1.1 含义

权值向量 \omega 中各元素的绝对值之和,一般记作 \left \| \omega \right \|_{1}  。

1.2  公式表示

添加了L1正则化的损失函数一般可表示为:

1.3 作用

L1正则常被用来解决过拟合问题;

L1正则化容易产生稀疏权值矩阵(更容易得到稀疏解),即产生一个稀疏模型(较多参数为0),因此也可用于特征选择。 

1.4 为什么L1(相对L2)更容易获得稀疏解 或者 0解

L1是舍弃掉一些不重要的特征,L2是控制所有特征的权重。

a. 从公式角度解释

假设只有一个参数 w,损失函数 L(w)  , 分别加上L1和L2损失函数可得:

J_{L1}\left (w \right ) = L\left ( w * H\left ( X \right ) \right ) + \lambda \left | w \right |

J_{L2}\left (w \right ) = L\left ( w * H\left ( X \right )\right ) + \lambda w^{2}

假设 L(w) 在 某一个样本  0 处 的导数是 d0

\frac{\alpha L\left ( w \right )}{\alpha \left ( w \right )}\mid _{w = 0} = d_{0}

当结合L2正则时候的导数是:

\frac{\alpha J_{L2}\left ( w \right )}{\alpha \left ( w \right )}\mid _{w = 0} = d_{0} + 2 * \lambda * w

当结合L1正则时候的导数是(L1损失在 w = 0处不可导,分 0 - 和 0 +):

\frac{\alpha J_{L1}\left ( w \right )}{\alpha \left ( w \right )}\mid _{w = 0 - } = d_{0} - \lambda

\frac{\alpha J_{L1}\left ( w \right )}{\alpha \left ( w \right )}\mid _{w = 0 + } = d_{0} + \lambda

结论:当结合L2正则的损失函数,导数结果仍然是 d0;结合L1正则的损失函数会有一个突变,从

d_{0} - \lambda 到 d_{0} + \lambda,只要满足\lambda > \left |d_{0} \right |  或 d_{0} - \lambda 和 d_{0} + \lambda 异号,则在w = 0处,损失函数有极值(极小值),在优化器优化过程中,很容易将结果收敛到该极小值点上,也就是 w = 0。相比L1正则,需要 d0 = 0,这样的条件明显更为严苛。

b. 从优化问题视角 + 二维图示例 + 多维扩展,方向解释

 c. 从梯度角度来看

结论:加入L1正则的导数形式,无论 wi 大小如何,sgn(wi) 的结果是一个常数,因此惩罚力度不变或者说仍然很大,使得L1将参数惩罚到0的概率增加;反观L2正则的导数形式,在 wi < 1 时候,尾项惩罚作用小,很难将参数惩罚到0,实际上就是使每个特征都得到尽量均衡的权重,因此适用于解决普通的过拟合问题,即从参数分布(让分布尽可能的均匀)的角度解决过拟合的问题

d. 从概率学角度

加入正则项,相当于对参数 w 增加先验假设,要求 w 满足某一种分布。

L1正则化相当于为 w 加入 “拉普拉斯分布” 的先验;L2正则化相当于为 w 加入 “高斯分布” 的先验。

结论:拉普拉斯先验在0点附近分布密度大于高斯分布,最终解将更稀疏。

2. L2正则化

2.1 含义

权值向量/矩阵 \omega 中各元素的平方和,然后对“和”求平方根,记作 \left \| \omega \right \|_{2} 。

2.2 公式表示

2.3 作用

L2正则化 可防止模型过拟合;至于为什么见下一篇文章,不定期更新

能够得到较为平滑(smooth)的解。

3. L1和L2正则化的适用场景

结论1 :从理论上来看,参数如果服从高斯分布就用L2正则化;服从拉普拉斯分布就用L1。

结论2 :添加正则化相当于参数的解空间添加了约束,限制了模型的复杂度,缓解过拟合。不过L1和L2正则化项是从不同的角度解决过拟合的。

结论3L1正则项是从改变模型结构的角度(减少模型参数的数量 或者 筛除无效特征,使无效特征对应的参数为0)解决过拟合,使的模型更加简单。

结论4 L2正则项使模型尽量不依赖于某小部分特征,使模型更倾向于使用所有输入特征,不恰当的讲就是使每个特征都得到尽量均衡的权重(对于重要、非重要的特征也会有比较明显的区分);它是从参数分布(让分布尽可能的均匀)的角度解决过拟合。

结论5L1正则化可以获得稀疏解,因此适用于:模型剪枝、模型压缩、特征选择

结论6 :L2正则化可以获得平滑(smooth)解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/184401.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RK3568 LVDS G121EAN01.3屏幕及触摸ILI2511 调试

1: 屏幕的规格书2&#xff1a;RK3568中DTS的配置// SPDX-License-Identifier: (GPL-2.0 OR MIT) /** Copyright (c) 2020 Rockchip Electronics Co., Ltd.https://www.cnblogs.com/chenfulin5/p/12918924.htmlhttps://blog.csdn.net/qq_28515331/article/details/90763875?spm…

[架构之路-93]:《软件架构设计:程序员向架构师转型必备》-3-软件架构设计中的视图View

前言&#xff1a;同一个软件系统&#xff0c;从不同的视角View&#xff0c;得到不同的视觉和感受。所有的视角得到的视觉感受综合而成了整个系统的架构。有些视角是用眼睛看&#xff0c;有些视角是耳朵听&#xff0c;有些视角用探测器探。不同的人&#xff0c;视角不同&#xf…

【算法】冒泡排序算法原理及实现

1.什么是冒泡排序 冒泡排序&#xff08;Bubble Sort&#xff09;&#xff0c;它是一种最为基础的交换排序。之所以叫冒泡排序&#xff0c;是因为这一种排序算法的每一个元素可以根据自身的大小&#xff0c;一点点的向着一侧来移动。每一轮都会找到一个最大的数字冒泡到数组数组…

一文探索预训练的奥秘

2022年下半年开始&#xff0c;涌现出一大批大模型的应用&#xff0c;其中比较出圈的当属AI作画与ChatGPT&#xff0c;刷爆了各类社交平台&#xff0c;其让人惊艳的效果&#xff0c;让AI以一个鲜明的姿态**&#xff0c;站到了广大民众面前&#xff0c;让不懂AI的人也能直观地体会…

一刷代码随想录——哈希表

1 理论基础常见的三种哈希结构当我们想使用哈希法来解决问题的时候&#xff0c;我们一般会选择如下三种数据结构。数组set &#xff08;集合&#xff09;map(映射)这里数组就没啥可说的了&#xff0c;我们来看一下set。在C中&#xff0c;set 和 map 分别提供以下三种数据结构&a…

Node.js+Vue.js全栈开发王者荣耀手机端官网和管理后台(三) | 前台页面part

文章目录工具样式概念和SASS样式重置网站色彩和字体定义&#xff08;colors text&#xff09;通用flex布局样式定义常用边距定义&#xff08;margin padding&#xff09;主页框架和顶部菜单首页顶部轮播图片&#xff08;vue swiper&#xff09;使用精灵图片&#xff08;sprite&…

【ThreeJs 初学习】基本API的使用方式

基本API的使用方式 根据官网的文档整理出一份API文档, 地址是&#xff1a;ThreeJs 官网文档&#xff0c;其目的还是为了方便查阅 下列代码源码地址 // 此处表示导入three import * as THREE from three;// 1. 创建一个场景 const scene new THREE.Scene();// 2. 创建一个相机…

文献阅读:Language Models are Unsupervised Multitask Learners

文献阅读&#xff1a;Language Models are Unsupervised Multitask Learners 1. 内容介绍2. 模型介绍3. 实验结果 1. 语言模型2. QA & 常识推断3. 生成任务 4. 总结 & 思考 文献链接&#xff1a;https://cdn.openai.com/better-language-models/language_models_are_u…

python-布隆过滤器

在学习redis过程中提到一个缓存穿透的问题&#xff0c; 书中参考的解决方案之一是使用布隆过滤器&#xff0c; 那么就有必要来了解一下什么是布隆过滤器。在参考了许多博客之后&#xff0c; 写个总结记录一下。 一、布隆过滤器简介 什么是布隆过滤器&#xff1f; 本质上布隆…

橘子学docker01之基本玩法

docker docker镜像集成了最核心需要得环境&#xff0c;所以占空间小&#xff0c;运行快&#xff0c;启动秒级。 docker的几个概念&#xff1a; 注册中心&#xff1a;相当于超级码头&#xff0c;上面放的就是集装箱。 镜像&#xff08;image&#xff09;&#xff1a;集装箱,好比…

Spring Boot学习之Dubbo+Zookeeper初识

文章目录一 分布式理论基础知识1.1 单一应用架构1.2 垂直应用架构1.3 分布式服务架构1.4 流动计算架构1.5 PRC[Remote Procedure Call]二 Dubbo2.1 Dubbo简介三 Dubbo环境搭建3.1 Zookeeper简介3.2 Zookeeper下载与安装3.3 解决问题3.3.1 错误一的分析和解决3.3.2 错误二的分析…

JavaEE day8 初识HTTP

HTTP协议 HTTP协议&#xff0c;又称超文本传输协议&#xff0c;是一种应用广泛的应用层协议。所谓超文本&#xff0c;其实就是除了文本还能传输其他资源。而HTTP本身是基于传输层的TCP协议实现的。目前HTTP协议3版本已经在完善中。本文采用1.1版本。 它是一种请求--响应的工作…

MyBatis 持久层框架详细解读:Mapper代理开发

文章目录1. 前言2. Mapper 代理开发3. 过程剖析4. 总结1. 前言 前面在 MyBatis 快速入门篇中&#xff0c;我们使用了 MyBatis 原生的开发方式操作数据库&#xff0c;解决了 JDBC 操作数据库时的硬编码和操作繁琐的问题。实际上&#xff0c;在 Java 项目中&#xff0c;我们更常…

MVC和MVVM的区别

一、MVC mvc&#xff1a;是一种代码架构设计模式&#xff0c;前端中的mvc最主要的作用就是将视图和数据模型进行分离 &#xff08;1&#xff09; 为什么需要 MVC 简单理解&#xff1a;也就是为什么需要将视图和数据模型进行分离 <select id"drinkSelect">&…

宕机后,如何避免 Redis 的数据丢失?

前言 如果有人问你&#xff1a;"你会把 Redis 用在什么业务场景下&#xff1f;" 我想你大概率会说&#xff1a;"我会把它当作缓存使用&#xff0c;因为它把后端数据库中的数据存储在内存中&#xff0c;然后直接从内存中读取数据&#xff0c;响应速度会非常快。…

Lua 文件I/O

Lua 文件I/O 参考至菜鸟教程。 Lua I/O 库用于读取和处理文件。分为简单模式&#xff08;和C一样&#xff09;、完全模式。 简单模式&#xff08;simple model&#xff09;拥有一个当前输入文件和一个当前输出文件&#xff0c;并且提供针对这些文件相关的操作。完全模式&#…

C++Primer13.6.2节练习

练习13.49&#xff1a; StrVec类的移动构造函数和移动赋值运算符 //移动构造函数 StrVec::StrVec(StrVec&& s)noexcept :elements(s.elements), first_free(s.first_free), cap(s.cap) {//令移后源对象进入状态-----对其运行析构函数是安全的s.elements s.first_fre…

关于网络编程

Socket套接字Socket API是网络编程最核心的部分。Socket套接字是由系统提供用于网络通信的技术&#xff0c;是基于TCP/IP协议的网络通信的基本操作单元。基于Socket套接字的网络程序开发就是网络编程。Socket API与传输层密切相关&#xff0c;由于传输层有UDP和TCP两种协议类型…

使用Idea中将单个java类打包成jar包

开工第一天&#xff0c;正在暗自爽&#xff0c;领导让帮个忙&#xff0c;给一个工具类打成jar包&#xff0c;供其他项目组使用&#xff0c;这就开始了尝试。 其实网上已经有好多人写过了&#xff0c;只是尝试了几篇&#xff0c;坑得不轻&#xff0c;自己做下笔记&#xff0c;留…

表格控件Aspose.Cells for .NET 授权须知

支持的平台 Aspose.Cells 可作为 .NET、Java、C 和 Python 的四种不同产品使用&#xff0c; .NET Framework.NET Standard 2.0Xamarin.AndroidXamarin.iOSXamarin.MacCOMMonoWindows Azure Aspose.Cells 下载&#xff08;qun&#xff1a;761297826&#xff09;https://www.ev…