【深度学习之二】正则化函数(weight decay, dropout, label smoothing, and etc)详解,以及不同的函数适用的场景

在深度学习中正则化函数的重要性不言而喻,今天主要总结一些当前常用的一些正则化函数

在深度学习中,正则化(Regularization)是一种防止模型过拟合的技术。过拟合指的是模型在训练数据上表现很好,但在未见过的测试数据或新数据上的泛化能力较差。正则化通过向损失函数添加额外的信息来限制模型复杂度,从而帮助提高模型的泛化能力。具体来说,正则化技术可以减少模型对训练数据的依赖,使其更加通用。

正则化的主要作用包括:

  • 减少模型复杂度:通过限制模型参数的大小,避免模型过于复杂,从而减少过拟合的风险。例如,L1和L2正则化是两种常用的正则化方法,它们分别通过向损失函数添加参数绝对值之和(L1)或参数平方和(L2)的形式来惩罚大权重。
  • 特征选择:L1正则化除了可以减少过拟合外,还具有稀疏性,即它可以将一些不重要的特征的权重降为零,从而实现自动特征选择。而L2正则化不会将权重降为零,但可以使权重变得更小,有助于平滑决策边界。
  • 提高模型的泛化能力:通过减少模型对训练数据的过度拟合,正则化有助于模型更好地泛化到新的、未见过的数据上。
  • 防止过拟合:正则化是解决过拟合问题的一种有效手段。过拟合通常发生在模型过于复杂或者训练数据量相对较小的情况下,正则化可以通过控制模型复杂度来缓解这一问题。
  • 提高模型稳定性:正则化还可以增加模型的稳定性,使模型对输入数据的小变化不那么敏感

在这里插入图片描述

dropout算法步骤

dropout 是一种用于防止深度学习模型过拟合的正则化技术。它通过在每次训练迭代中随机“丢弃”一部分神经元(即将它们的输出置为零),从而降低神经网络对特定节点和权重的过度依赖,提升模型的泛化能力。
核心思想:在训练过程中,随机选择一些神经元,将它们的输出置为零,同时保留其他神经元的完整输出。每次训练迭代中,被“丢弃”的神经元是随机的,训练完成后,在推理阶段使用所有神经元的加权平均输出。
假设在某一层的输入为向量 x,输出为向量 y,dropout的具体实现步骤如下:
1.训练阶段

  • 随机生成一个与输入同形状的二进制掩码向量 r,每个元素服从伯努利分布 ri∼Bernoulli§,其中 p 是保留概率。
  • 对应的Dropout应用公式:
    y=r⊙x
    其中 ⊙ 表示逐元素相乘。
  • 将被“丢弃”的神经元输出置为零。
    2.推理阶段
  • 不再随机丢弃神经元,而是将训练阶段的输出按保留概率 ppp 进行缩放:
    y=p⋅x
  • 这样可以保证在训练和推理阶段的输出期望一致。
    3.保留概率 p
  • 指定神经元被保留的概率,通常设置为 0.5(隐藏层)或接近 1(输入层)。
  • 较小的 ppp 值表示更多的神经元会被丢弃。

优点
1.防止过拟合:通过随机丢弃神经元,降低了特定神经元的过度权重,增加了网络的鲁棒性。
2.增加泛化能力:模型学习到更多的特征组合,而不是依赖特定路径。
3.简单易用:实现简单,且能无缝集成到大多数深度学习框架中。
缺点
1.训练时间增加:由于随机丢弃,需要更长的时间达到收敛。
2.影响模型容量:过高的Dropout率可能会导致模型欠拟合。

Weight Decay

Weight Decay 是一种常用的正则化技术,主要通过惩罚模型的权重大小来防止过拟合,增强模型的泛化能力。在优化过程中,Weight Decay 会向目标函数中添加权重的 (L_2) 范数约束,从而限制权重的增长。

核心思想
通过在优化过程中对权重施加 (L_2) 正则化,鼓励模型的权重保持较小的值。这种约束可以防止模型学习到过于复杂或对训练数据过拟合的特征。
损失函数形式:
假设原始损失函数为 L(w),其中 w是模型的权重,Weight Decay 的正则化后的损失函数为:

梯度更新:
优化器在更新权重时,会同时考虑损失函数的梯度和正则化项的影响:


Weight Decay 与 (L_2) 正则化的关系
Weight Decay 和 (L_2) 正则化在数学上等价,但在实现中可能存在差异:
1.Weight Decay:直接通过优化器对权重进行衰减。
2.(L_2) 正则化:将正则化项显式添加到损失函数中。
例如,在使用 AdamW 优化器时,Weight Decay 是独立于梯度更新的,通过调整权重而非修改梯度计算,解决了传统 Adam 中正则化效果较差的问题。

优点
1.防止过拟合:通过抑制权重的增大,限制模型复杂度。
2.提升泛化能力:模型更关注整体结构而非个别样本的特性。
3.简单高效:实现方便,开销低。

缺点
1.需要调节超参数 ( \lambda ):不同任务和模型中,正则化强度的选择可能不同。
2.对稀疏特征的影响:Weight Decay 会均匀衰减所有权重,在处理稀疏特征时可能不如 (L_1) 正则化有效。

应用场景

  • 常用于深度学习任务(如图像分类、自然语言处理),尤其是在模型参数较多时。
  • 与现代优化器(如 AdamW、SGD with Momentum)结合使用效果更佳。

Weight Decay 与 AdamW 的改进
传统 Adam 优化器对 Weight Decay 的实现效果较差,因为 (L_2) 正则化的梯度会被 Adam 的自适应学习率缩放,削弱正则化效果。
AdamW 通过将 Weight Decay 作为权重衰减独立处理,改进了正则化性能,是现代优化器中的标准做法。

Label Smoothing
Label Smoothing 是一种正则化技术,旨在缓解模型过度自信的问题。在分类任务中,它通过平滑目标标签分布来增强模型的泛化能力,从而提高性能。

核心思想
传统分类任务的目标是最小化交叉熵损失,标签通常是 one-hot 编码 的,即对于类别 ( k ),目标分布 ( q ) 为:

这种目标分布可能导致模型对正确类别的预测过于自信(输出接近 1),对其他类别的预测完全为 0。Label Smoothing 通过在目标分布中引入少量均匀分布成分,使目标分布更平滑:


损失函数


优点
1.防止过拟合:平滑后的标签不会让模型过分自信,避免学习到过于尖锐的分布。
2.提升泛化性能:在测试集上模型往往表现更好,尤其是对不确定性较高的样本。
3.减少梯度消失:更平滑的目标分布可以减缓梯度消失问题。

适用场景

  • 多分类任务(尤其是在模型容易过拟合的情况下)。
  • 任务类别较多或类别分布不均匀时,Label Smoothing 可增强模型对类别之间关系的建模能力。
  • 在 NLP 任务(如机器翻译)中,经常与注意力机制配合使用。

注意事项
1.平滑参数选择:( \epsilon ) 通常取 ( [0.05, 0.1] ),值过大会影响模型性能。
2.类别权重平衡:对于类别严重不平衡的问题,Label Smoothing 的效果可能需要额外调整。
3.过度平滑风险:平滑过多可能导致模型对类别区分能力下降。

直观理解
Label Smoothing 的目标是让模型预测的分布不要太“尖锐”,在概率分布上保持适度的“谦虚”,从而减少过拟合,提升泛化能力。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

uni-app 修改复选框checkbox选中后背景和字体颜色

编写css(注意:这个样式必须写在App.vue里) /* 复选框 */ /* 复选框-圆角 */ checkbox.checkbox-round .wx-checkbox-input, checkbox.checkbox-round .uni-checkbox-input {border-radius: 100rpx; } /* 复选框-背景颜色 */ checkbox.checkb…

Ngrok实现内网穿透(Windows)

Ngrok实现内网穿透(Windows) 什么是内网穿透,内网穿透有什么用 内网穿透(NAT traversal)是一种技术手段,使得位于内网或防火墙后面的设备能够通过外网访问。例如,如果你的计算机、服务器等设备…

Simulink中Model模块的模型保护功能

在开发工作过程中,用户为想要知道供应商的开发能力,想要供应商的模型进行测试。面对如此要求,为了能够尽快拿到定点项目,供应商会选择一小块算法或是模型以黑盒的形式供客户测试。Simulink的Model模块除了具有模块引用的功能之外&…

Linux内核USB2.0驱动框架分析--USB包

一, 包的组成 每个包都由SOP(包起始域)、SYNC(同步域)、Packet Content(包内容)、EOP(包结束域)四部分组成,其中SOP、SYNC、EOP为所有包共有的域&#xff0c…

STM32F4----ADC模拟量转换成数字量

STM32F4----ADC模拟量转换成数字量 基本原理 当需要测量和记录外部电压的变化,或者根据外部电压的变化量来决定是否触发某个动作时,我们可以使用ADC(模拟—数字转换器)功能。这个功能可以将模拟的电压信号转换为数字信号&#x…

大数据学习18之Spark-SQL

1.概述 1.1.简介 Spark SQL 是 Apache Spark 用于处理结构化数据的模块。 1.2.历史 1.2.1.Shark Hadoop诞生初期,Hive是唯一在Hadoop上运行的SQL-on-Hadoop工具,MR的中间计算过程产生了大量的磁盘落地操作,消耗了大量的I/O,降低…

医学AI公开课·第一期|Machine LearningTransformers in Med AI

小罗碎碎念 从这周开始,我计划每个周末录一个视频,分享一些医学人工智能领域的进展。 作为第一期视频,我打算介绍一下机器学习和Transformer在医学AI领域中的应用。 为了准备这期视频,总共做了24页PPT(三部分内容&…

小白投资理财 - 解读威廉指标 WR

小白投资理财 - 解读威廉指标 WR WR 指标WR 指标特点WR 指标解读WR 与其他指标的结合实战案例:WR 计算WR 的优缺点WR 和 Williams Fractals 的主要区别总结 上篇《小白投资理财 - 解读威廉分形指标 Williams Fractals》,今天我们来了解另外一个威廉指标 …

前端速通(HTML)

1. HTML HTML基础&#xff1a; 什么是HTML&#xff1f; 超文本&#xff1a; "超文本"是指通过链接连接不同网页或资源的能力。HTML支持通过<a>标签创建超链接&#xff0c;方便用户从一个页面跳转到另一个页面。 标记语言&#xff1a; HTML使用一组预定义的标签…

电商一件发货软件闲管家使用教程

闲鱼闲管家是一款专为闲鱼卖家设计的电脑版工作台&#xff0c;旨在帮助卖家更高效地管理其在闲鱼平台上的业务。以下是关于闲鱼闲管家的一些主要特点和功能&#xff1a; 主要特点&#xff1a; 多账号管理&#xff1a;支持同时管理多达30个闲鱼账号&#xff0c;方便大型卖家或…

第一个autogen与docker项目

前提条件&#xff1a;在windows上安装docker 代码如下&#xff1a; import os import autogen from autogen import AssistantAgent, UserProxyAgentllm_config {"config_list": [{"model": "GLM-4-Plus","api_key": "your api…

JavaEE 【知识改变命运】02 多线程(1)

文章目录 线程是什么&#xff1f;1.1概念1.1.1 线程是什么&#xff1f;1.1.2 为什么要有线程1.1.3 进程和线程的区别1.1.4 思考&#xff1a;执行一个任务&#xff0c;是不是创建的线程或者越多是不是越好&#xff1f;&#xff08;比如吃包子比赛&#xff09;1.1.5 ) Java 的线程…

LeetCode 力扣 热题 100道(八)相交链表(C++)

给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 题目数据 保证 整个链式结构中不存在环。 注意&#xff0c;函数返回结果后&…

全面解析 JMeter 后置处理器:概念、工作原理与应用场景

在性能测试中&#xff0c;Apache JMeter是一个非常流行的工具&#xff0c;它不仅能够模拟大量用户进行并发访问&#xff0c;还提供了丰富的扩展机制来满足各种复杂的测试需求。后置处理器&#xff08;Post-Processor&#xff09;是JMeter中非常重要的组件之一&#xff0c;用于在…

java八股-SpringCloud微服务-Eureka理论

文章目录 SpringCloud架构Eureka流程Nacos和Eureka的区别是&#xff1f;CAP定理Ribbon负载均衡策略自定义负载均衡策略如何实现&#xff1f;本章小结 SpringCloud架构 Eureka流程 服务提供者向Eureka注册服务信息服务消费者向注册中心拉取服务信息服务消费者使用负载均衡算法挑…

每天五分钟机器学习:支持向量机数学基础之超平面分离定理

本文重点 超平面分离定理(Separating Hyperplane Theorem)是数学和机器学习领域中的一个重要概念,特别是在凸集理论和最优化理论中有着广泛的应用。该定理表明,在特定的条件下,两个不相交的凸集总可以用一个超平面进行分离。 定义与表述 超平面分离定理(Separating Hy…

day05(单片机高级)PCB基础

目录 PCB基础 什么是PCB&#xff1f;PCB的作用&#xff1f; PCB的制作过程 PCB板的层数 PCB设计软件 安装立创EDA PCB基础 什么是PCB&#xff1f;PCB的作用&#xff1f; PCB&#xff08;Printed Circuit Board&#xff09;&#xff0c;中文名称为印制电路板&#xff0c;又称印刷…

电脑自动关机时间如何定?Wise Auto Shutdown 设置关机教程

在日常使用电脑的过程中&#xff0c;有时我们需要让电脑在特定的时间自动关机&#xff0c;比如在下载大文件完成后、执行长时间的任务结束时&#xff0c;或者只是单纯想在某个预定时间让电脑自动关闭以节省能源。这时候&#xff0c;Wise Auto Shutdown 这款软件就能派上大用场了…

Lucene(2):Springboot整合全文检索引擎TermInSetQuery应用实例附源码

前言 本章代码已分享至Gitee: https://gitee.com/lengcz/springbootlucene01 接上文。Lucene(1):Springboot整合全文检索引擎Lucene常规入门附源码 如何在指定范围内查询。从lucene 7 开始&#xff0c;filter 被弃用&#xff0c;导致无法进行调节过滤。 TermInSetQuery 指定…

使用Kubernetes部署第一个应用

目录 前提条件 启动集群 部署 nginx 应用 创建 YAML 文件 应用 YAML 文件 查看部署结果 理解Pods 相关命令 公布应用程序 问题背景 Kubernetes Service&#xff08;服务&#xff09;概述 服务和标签 为Deployment 创建一个 Service 伸缩应用程序 Scaling&#x…