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

news2024/11/16 15:40:19

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

常见的正则化技术包括:

  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 正则化也会对每个权重施加惩罚,但它不会产生稀疏性,而是通过减小权重的幅度来控制模型复杂度。

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

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

相关文章

【机器学习】高斯网络的基本概念和应用领域

引言 高斯网络(Gaussian Network)通常指的是一个概率图模型,其中所有的随机变量(或节点)都遵循高斯分布 文章目录 引言一、高斯网络(Gaussian Network)1.1 高斯过程(Gaussian Proces…

Notepad++ 修改 About

1. 用这个工具,看标题,修改 1700 里的 Caption, 保存为 xx.exe, 2.修改链接,先准备如上。 2.1 使用插件 Hex Editor,拖入刚保存的 Notepad.exe 到 Notepad.exe, 按 c..S..H 2.2 按 ctrlf 查找 68 00 74 00 74 00 70 00 73 00 3…

ggplot作图基础

目录 ggplot作图语法 散点图 折线图 group分组 face_wrap()图像切片摆放 facet_grid()交叉分组切片 条形图 2.1 单组变量条形图 2.2 多维展示变量 直方图有与密度估计 直方图 密度估计图 ..density..语法和stat“density” ggplot作图语法 ggplot作图是将数据按需要进…

锡林郭勒奶酪品牌呼和浩特市大召店盛大开业

礼献中秋,香飘乳都。为进一步拓展锡林郭勒奶酪区域公用品牌产品销售渠道,9月8日,锡林郭勒奶酪区域公用品牌大召店在呼和浩特市大召广场月明楼隆重开业,现场为第三批新授权的39家奶酪生产经营主体代表授牌。至此,锡林郭…

Debian 12如何关闭防火墙

在Debian 12中,默认的防火墙管理工具是ufw(Uncomplicated Firewall)。您可以使用以下命令来关闭防火墙: 关闭防火墙: sudo ufw disable查看防火墙状态: sudo ufw status如果需要重新开启防火墙:…

9.8javaweb项目总结

1.主界面用户信息显示 登录成功后,将用户信息存储在记录在 localStorage中,然后进入界面之前通过js来渲染主界面 存储用户信息 将用户信息渲染在主界面上,并且头像设置跳转,到个人资料界面 这里数据库中还没有设置相关信息 2.模糊…

数学建模笔记—— 主成分分析(PCA)

数学建模笔记—— 主成分分析 主成分分析1. 基本原理1.1 主成分分析方法1.2 数据降维1.3 主成分分析原理1.4 主成分分析思想 2. PCA的计算步骤3. 典型例题4. 主成分分析说明5. python代码实现 主成分分析 1. 基本原理 在实际问题研究中,多变量问题是经常会遇到的。变量太多,无…

通信工程学习:什么是PSK相移键控、2PSK/BPSK二进制相移键控

PSK相移键控、2PSK/BPSK二进制相移键控 PSK(相移键控)和2PSK/BPSK(二进制相移键控)是两种在通信系统中广泛使用的调制技术。以下是对它们的详细解释: 一、PSK:相移键控 1、PSK相移键控的定义:…

websocket client无法连接到websocket server 的问题

1. 问题描述 生产环境的websocket client和server无法通信 2. 日志现象 通过查看日志和问题复现,定位到是client连接到server失败,导致无法通信。 出现问题的代码 出现问题的日志 21:25:27.790 [main] INFO websocket.MyWebSocketClient - start to…

力扣第347题 前K个高频元素

前言 记录一下刷题历程 力扣第347题 前K个高频元素 前K个高频元素 原题目: 分析 我们首先使用哈希表来统计数字出现的频率,然后我们使用一个桶排序。我们首先定义一个长度为n1的数组,对于下图这个示例就是长度为7的数组。为什么需要一个长…

Redis进阶(七):分布式锁

在分布式系统下,涉及到多个节点访问同一个公共资源的情况,此时需要通过 锁 进行互斥控制:避免出现 线程安全问题。 1.分布式锁的基本实现 超卖问题: 解决: 采用redis实现分布式锁 可用采取:在购票的时候&#xff0…

C语言 | Leetcode C语言题解之第390题消除游戏

题目&#xff1a; 题解&#xff1a; int lastRemaining(int n) {int a1 1;int k 0, cnt n, step 1;while (cnt > 1) {if (k % 2 0) { // 正向a1 a1 step;} else { // 反向a1 (cnt % 2 0) ? a1 : a1 step;}k;cnt cnt >> 1;step step << 1;}return …

【机器学习】和【人工智能】在量子力学的应用及代码案例分析

知孤云出岫 这里写目录标题 一、机器学习和人工智能在量子力学中的应用概述二、量子态的表示与模拟2.1 变分自编码器&#xff08;VAE&#xff09;用于量子态模拟 三、量子系统的哈密顿量学习3.1 使用机器学习推断哈密顿量 四、量子计算中的算法优化4.1 变分量子算法&#xff08…

AI大模型日报#0908:OpenAI计划年底推出GPT Next、Roblox官宣AI秒生3D物体模型

导读&#xff1a;AI大模型日报&#xff0c;爬虫LLM自动生成&#xff0c;一文览尽每日AI大模型要点资讯&#xff01;目前采用“文心一言”&#xff08;ERNIE-4.0-8K-latest&#xff09;、“智谱AI”&#xff08;glm-4-0520&#xff09;生成了今日要点以及每条资讯的摘要。欢迎阅…

如果文件从存储卡中被误删除,存储卡数据恢复如何恢复?

如果文件被误从存储卡中删除&#xff0c;如何从Android 手机、相机或其他数码设备&#xff08; SD/CF/MicroSD/xD ...&#xff09;恢复照片视频&#xff1b;存储卡已格式化&#xff0c;原始 0 字节&#xff0c;空白&#xff1b;存储卡要求格式化&#xff1b;存储卡未显示、无法…

基于ONNX-YOLOv10-Object-Detection项目实现yolov10模型onnx-python推理

项目地址&#xff1a;https://github.com/ibaiGorordo/ONNX-YOLOv10-Object-Detection 项目依赖&#xff1a;onnxruntime-gpu、opencv-python、imread-from-url、cap-from-youtube、ultralytics 1、代码修改 代码改动说明&#xff1a;yolov10/yolov10.py中的第18行修改为以下…

Docker部署tenine实现后端应用的高可用与负载均衡

采用Docker方式的Tengine 和 keepalived 组合模式可以实现小应用场景的高可用负载均衡需求 目录 网络架构一、环境准备二、软件安装1. 下载Tenine镜像2. 下载Keepalived镜像3. 制作SpringBoot镜像 三、软件配置1. 创建应用容器2. 代理访问应用3. 创建Keepalived4. 测试高可用 网…

基于YOLOv5的积水检测模型训练:从数据到模型的全面解析

之前给大家带来了Yololov5Pyqt5Opencv 实时城市积水报警系统&#xff0c; 详见&#xff1a; Yololov5Pyqt5Opencv 实时城市积水报警系统_yolo opencv pyqt5-CSDN博客 今天详细解析一下积水检测模型训练部分的内容 在积水检测项目中&#xff0c;实时性和准确性是至关重要的。…

STM32内部闪存FLASH(内部ROM)、IAP

1 FLASH简介 1 利用程序存储器的剩余空间来保存掉电不丢失的用户数据 2 通过在程序中编程(IAP)实现程序的自我更新 &#xff08;OTA&#xff09; 3在线编程&#xff08;ICP把整个程序都更新掉&#xff09; 1 系统的Bootloader写死了&#xff0c;只能用串口下载到指定的位置&a…

Spring Boot事务管理

事务管理 事务进阶 如果在删除了部门之后&#xff0c;出现了异常。那么就会出现部门被删除之后其中的员工并未被删除。 Transactional注解&#xff0c;在事务执行完成之后自动提交或者回滚。只需要在执行多次数据修改的事务上加上该注解即可。&#xff08;比如两次Update或者…