当前位置: 首页 > news >正文

常见的正则化方法以及L1,L2正则化的简单描述

深度学习中的正则化是通过在模型训练过程中引入某些技术来防止模型过拟合的一种策略。过拟合是指模型在训练数据上表现非常好,但在新的、未见过的数据上表现不佳。正则化通过限制模型的复杂度或对模型参数施加约束,从而提高模型的泛化能力。

常见的正则化技术包括:

  1. L1正则化(Lasso)L2正则化(Ridge)

    • L1正则化:通过对损失函数中添加参数的绝对值来抑制模型的某些权重,从而使某些权重归零。这种方法有助于特征选择。
    • L2正则化:通过对损失函数中添加参数的平方和来抑制过大的权重,从而使模型更平滑。
  2. Dropout: Dropout是一种在训练期间随机“丢弃”一部分神经元,使其不参与计算的技术。通过这种方式,网络避免了过度依赖某些神经元,从而增强了模型的泛化能力。

  3. 数据增强: 数据增强通过对原始训练数据进行随机变换(如旋转、裁剪、缩放等)来扩充训练集的多样性,减少模型对某些特定数据的依赖。

  4. 早停法(Early Stopping): 早停法是在训练过程中监测验证集的性能,当验证误差开始增加时停止训练。这避免了模型继续拟合训练集中的噪声或细节,防止过拟合。

  5. Batch Normalization: 通过对每一批输入的数据进行归一化,Batch Normalization能使得模型训练更加稳定,并有助于防止过拟合。

通过这些正则化方法,可以有效地提升模型的泛化能

L1正则化(Lasso)和L2正则化(Ridge)是深度学习和机器学习中常用的正则化技术,主要用于防止模型过拟合。它们通过在损失函数中添加惩罚项,对模型参数施加一定的约束,减少模型复杂度。以下是它们的详细介绍:

1. L1正则化(Lasso)

L1正则化通过在损失函数中添加权重系数的绝对值和来实现正则化,即在损失函数中加上如下项:

  • 作用:L1正则化倾向于将某些权重系数压缩为零,从而实现特征选择。通过这种方式,模型可以简化为只使用重要的特征,而不依赖无关的或多余的特征。

  • 优点:L1正则化适合处理高维数据集,因为它可以通过将不重要的特征权重设为零,进行自动特征选择。

  • 应用场景:在高维数据集或特征较多的情况下,L1正则化非常有用,因为它能够使得模型更具解释性,并降低计算复杂度。

2. L2正则化(Ridge)

L2正则化通过在损失函数中添加权重系数的平方和来实现正则化,即在损失函数中加上如下项:

  • 作用:L2正则化不会将权重系数压缩为零,但会均匀地缩小所有权重的大小。它通过限制权重的幅度,防止模型对某些特定特征的过度依赖,从而减少过拟合的风险。

  • 优点:L2正则化适合那些特征较多且特征之间存在相关性的情况,它能确保所有特征都对模型的预测有一定的贡献,并使模型更加平滑。

  • 应用场景:L2正则化更适合用于特征之间存在多重共线性的问题。因为它不会完全忽略特征,而是对权重进行均匀的缩放,从而使模型更加稳健。

L1和L2的主要区别

  • 权重处理

    • L1正则化更倾向于产生稀疏模型,许多权重被压缩为零,进行特征选择。
    • L2正则化则缩小权重的数值,但通常不会使它们完全为零。
  • 模型简化

    • L1正则化可以自动简化模型,保留对结果最有用的特征。
    • L2正则化则通过平滑权重来防止模型过拟合,而不会丢弃特征。
  • 公式差异

    • L1正则化的惩罚项是权重绝对值的和。
    • L2正则化的惩罚项是权重平方的和。

在实际应用中,可以根据数据集的特征和问题类型来选择使用L1或L2正则化,有时也会结合两者(Elastic Net)以兼具稀疏性和稳定性。

力,使其在新数据上的表现更加稳健。

举个例子大家就明白了

假设我们在做线性回归,模型的目标是预测房屋价格。输入特征是房屋的面积(平方英尺)和房间数量,输出是房价。模型的基本形式如下:

其中:

  • y^\hat{y}y^​ 是预测的房价
  • x1x_1x1​ 是房屋的面积
  • x2x_2x2​ 是房间数量
  • w1w_1w1​ 和 w2w_2w2​ 是模型的参数(权重)
  • bbb 是偏置(截距)

我们希望通过最小化预测值 y^\hat{y}y^​ 和真实房价之间的误差来找到最优的 w1w2​。损失函数一般是误差的平方和,称为均方误差(MSE):

引入正则化:

如果模型的权重太大,可能会导致过拟合。为了避免过拟合,我们可以在损失函数中加入正则化项,即对 w1w_1w1​ 和 w2w_2w2​ 的大小进行约束。

1. L1 正则化(Lasso)

L1 正则化的目标是将一些不重要的特征权重压缩到零,这样模型会变得更简单。L1 正则化的损失函数如下:

  • 理解:L1 正则化会对每个权重的绝对值进行惩罚,假如 w1 或 w2太大,模型会通过增大损失值的方式“惩罚”它们,逼迫权重缩小甚至压缩为 0。

2. L2 正则化(Ridge)

L2 正则化通过将权重的平方和添加到损失函数中来抑制大权重。L2 正则化的损失函数如下:

  • 理解:L2 正则化则会对权重的平方进行惩罚,虽然不会将权重压缩为 0,但会让它们变得更小、更平滑。模型会倾向于分散权重,使它们不会太大。

计算示例:

假设我们有以下简单的数据:

面积 (平方英尺) x1x_1x1​房间数量 x2x_2x2​实际房价 yyy
10003300000
12004350000
15005400000

假设我们有一个初始模型 w1=200w_1 = 200w1​=200、w2=10000w_2 = 10000w2​=10000,现在计算 L1 和 L2 正则化对模型的影响。

1. 没有正则化(普通线性回归):

总结:

  • L1 正则化通过让一些权重趋向于零,从而减少不必要的特征,简化模型。
  • L2 正则化通过让权重整体变小,避免某些权重过大,从而减少过拟合的风险。

在实际应用中,L1 更适合做特征选择,而 L2 更适合处理权重过大的问题。有时我们可以结合两者的优势,使用 Elastic Net 正则化,兼具稀疏性和权重缩小的效果。

L1 正则化对每个权重 www 的更新,在原有的梯度更新基础上,施加了一个与权重符号相关的减小量。简单来说,L1 正则化的惩罚项是权重 www 的绝对值,因此对不同符号的权重,影响也不同。具体来说:

在没有正则化的情况下,权重更新的规则是根据梯度来调整,即:

而当加入 L1 正则化时,权重的更新规则会增加一个正则化项:

这意味着,对于正的权重,L1 正则化会让权重减少(施加一个负的额外项),对于负的权重,L1 正则化会让权重增加(施加一个正的额外项),从而将权重的数值逐渐压缩向 0。

总结来说,L1 正则化通过在每次更新时,根据权重的符号施加一个固定大小的惩罚,这使得较小的权重更容易被压缩到 0,从而产生稀疏的特征选择效果。

L2 正则化的更新机制

L2 正则化会将损失函数中加入权重的平方项作为惩罚项。对于每个权重 www,L2 正则化的更新规则是:

可以看到,L2 正则化对每个权重的更新,施加了一个额外的 λ⋅w\lambda \cdot wλ⋅w 项,这个额外项是根据权重的大小和方向(正负号)调整的。具体来说:

因此,L2 正则化是根据权重的大小比例减少权重值的,而不是像 L1 正则化那样施加一个固定的惩罚。L2 正则化使所有的权重都被缩小,但不会把某些权重压缩到 0,这意味着模型不会变得稀疏。

总结 L1 和 L2 的区别

  • L1 正则化 会施加一个与权重符号相关的固定减小量,逐步将较小的权重压缩到 0,产生稀疏效果。
  • L2 正则化 施加的是与权重大小成比例的减小量,会让权重整体减小,但不会让权重变为 0,更多地是让权重的值变小,起到平滑模型的作用。

因此,虽然 L2 正则化也会对每个权重施加惩罚,但它不会产生稀疏性,而是通过减小权重的幅度来控制模型复杂度。

相关文章:

常见的正则化方法以及L1,L2正则化的简单描述

深度学习中的正则化是通过在模型训练过程中引入某些技术来防止模型过拟合的一种策略。过拟合是指模型在训练数据上表现非常好,但在新的、未见过的数据上表现不佳。正则化通过限制模型的复杂度或对模型参数施加约束,从而提高模型的泛化能力。 常见的正则…...

深入理解 Milvus:新一代向量数据库的基础技术与实战指南

一、什么是 Milvus? Milvus 是一个开源的向量数据库,专门设计用于存储和检索大规模的高维向量数据。无论是图像、视频、音频还是文本,通过将这些数据转换为向量,Milvus 都能通过近似最近邻搜索(Approximate Nearest N…...

Maven教程——从入门到入坑

第1章 为什么要使用Maven 1.1 获取第三方jar包   开发中需要使用到的jar包种类繁多,获取jar包的方式都不尽相同。为了查找一个jar包找遍互联网,身心俱疲。不仅如此,费劲心血找到的jar包里有的时候并没有你需要的那个类,又或者有…...

研究生深度学习入门的十天学习计划------第九天

第9天:深度学习中的迁移学习与模型微调 目标: 理解迁移学习的核心概念,学习如何在实际应用中对预训练模型进行迁移和微调,以应对不同领域的任务。 9.1 什么是迁移学习? 迁移学习(Transfer Learning&#…...

perl的学习记录——仿真regression

1 记录的背景 之前只知道有这个强大语言的存在,但一直侥幸自己应该不会用到它,所以一直没有开始学习。然而人生这么长,怎就确定自己不会用到呢? 这次要搭建一个可以自动跑完所有case并且打印每个case的pass信息到指定的文件中。…...

【Go】go连接clickhouse使用TCP协议

离开你是傻是对是错 是看破是软弱 这结果是爱是恨或者是什么 如果是种解脱 怎么会还有眷恋在我心窝 那么爱你为什么 🎵 黄品源/莫文蔚《那么爱你为什么》 package mainimport ("context""fmt""log""time&q…...

Emlog-Pro访问网站时需要密码验证插件

插件介绍 EmlogPro访问网站密码验证插件,为你的网站添加输入密码访问网站功能,在应用中的场景往往运用在为内部或是个人使用的页面里面,在访问的时候可以提示输入密码,做隐私保护。 下载地址: Emlog-Pro访问网站时需…...

Apache ShardingSphere数据分片弹性伸缩加解密中间件

Apache ShardingSphere Apache ShardingSphere 是一款分布式 SQL 事务和查询引擎,可通过数据分片、弹性伸缩、加密等能力对任意数据库进行增强。 软件背景 ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding…...

Django+Vue家居全屋定制系统的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 需要的环境3.2 Django接口层3.3 实体类3.4 config.ini3.5 启动类3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质创作者&…...

如何把自动获取的ip地址固定

在大多数网络环境中,‌设备通常会自动从DHCP服务器获取IP地址。‌这种动态分配IP的方式虽然灵活方便,‌但在某些特定场景下,‌我们可能需要将设备的IP地址固定下来,‌以确保网络连接的稳定性和可访问性。‌本文将详细介绍如何把自…...

Java应用的数据库死锁问题分析与解决

Java应用的数据库死锁问题分析与解决 大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿! 数据库死锁是多线程环境中常见的问题,尤其是在复杂的事务处理和数据访问中。死锁发生时&#x…...

ImportError: cannot import name ‘DglNodePropPredDataset‘ from ‘ogb.nodepropp

ImportError: cannot import name DglNodePropPredDataset from ogb.nodepropp 问题: 在跑深度学习时引入这个模块一直报错不能引入, 但看环境相关的包都安装好了,就是读取不到,时间还白白浪费。 解决办法 from ogb.nodeproppr…...

基于SSM(Spring、SpringMVC、MyBatis)框架的高校信息管理系统

基于SSM(Spring、SpringMVC、MyBatis)框架的高校信息管理系统是一个典型的Java Web应用开发项目。这类系统通常需要处理大量的学生、教师及课程信息,并提供相应的管理功能。下面是一个简化的设计方案,旨在帮助你理解如何构建这样的…...

C++第一节入门

一、历史 C是在C上继承拓展的! java是一家公司(甲骨文)借鉴C生成的! C#是微软借鉴java生成的! 二、命名空间 当我们定义一个名叫rand的变量,但是由于stdlib头文件里面有个函数跟rand重名!因此…...

全能型 AI 的崛起:未来的市场宠儿还是昙花一现?

近日,OpenAI 宣布将在秋季推出代号为“草莓”的新一代 AI 模型。这款 AI 被描述为全能型,从处理复杂的数学问题到应对主观性强的营销策略,它的能力可以覆盖多个领域。听起来像是科技界的“万能钥匙”,无论面对什么问题&#xff0c…...

如何在PPT中插入已经绘制好的excel表格数据

1、新建一个演示文稿 2、点击“插入—对象” 3、点击“由文件创建—浏览” 4、浏览选择电脑上所处理好的excel表格数据 5、这样就可将excel表格数据插入PPT中...

微积分直觉:隐含微分

目录 一、介绍 二、梯子问题 三、结论 四、一个额外的例子 一、介绍 让我们想象一个半径为 5 的圆,以 xy 平面为中心。现在假设我们想在点 (3,4) 处找到一条切线到圆的斜率。 好吧,为了做到这一点,我们必须非常接近圆和…...

Matlab自学笔记三十五:表table数据与外部文件的读入和写出

1.首先新建一个表变量t xingming{zhangsan;lisi;wangwu}; xuehao{1001;1002;1003}; chengji[89 95;90 87;88 84]; ttable(xingming,xuehao,chengji) 2.把表t的数据写出到student.txt writetable(t,student.txt) %使用writetable函数写出数据到txt文件 3.从student.txt文…...

闯关leetcode——3.Longest Substring Without Repeating Characters

大纲 题目地址内容 解题代码地址 题目 地址 https://leetcode.com/problems/longest-substring-without-repeating-characters/description/ 内容 Given a string s, find the length of the longest substring without repeating characters. Example 1: Input: s “abc…...

Android Radio2.0——公告注册及监听(三)

前面文章内容介绍了 Radio 相关功能的设置,我们知道可以通过设置来监听不同内容的广播公告,但是在开启对应功能的同时,还需要先注册对应公告监听,这里我们就来看一下广播公告监听的注册流程。 一、注册公告 1、接口封装 private final AtomicBoolean mHasRegisterTa = n…...

java_网络服务相关_gateway_nacos_feign区别联系

1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

docker 部署发现spring.profiles.active 问题

报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

PHP 8.5 即将发布:管道操作符、强力调试

前不久,PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5!作为 PHP 语言的又一次重要迭代,PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是,借助强大的本地开发环境 ServBay&am…...

c++第七天 继承与派生2

这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分:派生类构造函数与析构函数 当创建一个派生类对象时,基类成员是如何初始化的? 1.当派生类对象创建的时候,基类成员的初始化顺序 …...

TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?

在工业自动化持续演进的今天,通信网络的角色正变得愈发关键。 2025年6月6日,为期三天的华南国际工业博览会在深圳国际会展中心(宝安)圆满落幕。作为国内工业通信领域的技术型企业,光路科技(Fiberroad&…...

AI语音助手的Python实现

引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...