【深度学习之二】正则化函数(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 的目标是让模型预测的分布不要太“尖锐”,在概率分布上保持适度的“谦虚”,从而减少过拟合,提升泛化能力。

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

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

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

相关文章

神经网络(系统性学习二):单层神经网络(感知机)

此前篇章: 神经网络中常用的激活函数 神经网络(系统性学习一):入门篇 单层神经网络(又叫感知机) 单层网络是最简单的全连接神经网络,它仅有输入层和输出层,没有隐藏层。即&#x…

Linux 手动升级软件保姆级教程,适用所有软件,不限于麒麟等国产系统

1、检查软件版本,及是否安装 openssh为例 是否安装 rpm -qa|grep openssh 备份 mv /etc/ssh/ /home/ssh-bakmv /usr/bin/ssh /usr/bin/ssh.bakmv /usr/sbin/sshd /usr/sbin/sshd.bakmv /etc/pam.d/sshd /etc/pam.d/sshd.old2、机器如果不在身边,机器…

【大数据学习 | Spark-Core】Spark的改变分区的算子

当分区由多变少时,不需要shuffle,也就是父RDD与子RDD之间是窄依赖。 当分区由少变多时,是需要shuffle的。 但极端情况下(1000个分区变成1个分区),这时如果将shuffle设置为false,父子RDD是窄依赖关系&…

java操作doc——java利用Aspose.Words操作Word文档并动态设置单元格合并

在实际工作中,如果业务线是管理类项目或者存在大量报表需要导出的业务时,可以借助第三方插件实现其对应功能。 尤其是需要对word文档的动态操作或者模板数据的定向合并,使用Aspose会相对来说容易一些,而且相关文档比较完整&#…

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

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

Docker Seata分布式事务保护搭建 DB数据源版搭建 结合Nacos服务注册

介绍 Seata(Simple Extensible Autonomous Transaction Architecture)是一个开源的分布式事务解决方案,旨在为微服务架构中的分布式系统提供事务管理支持。Seata 通过提供全局事务管理,帮助开发者在分布式环境中保持数据一致性 …

HTB:WifineticTwo[WriteUP]

目录 连接至HTB服务器并启动靶机 信息搜集 使用rustscan对靶机TCP端口进行开放扫描 使用nmap对靶机开放端口进行脚本、服务扫描 使用curl访问靶机8080端口 使用浏览器直接访问/login路径 漏洞利用 使用searchsploit搜索该WebAPP漏洞 Payload USER_FLAG:bb…

【MySQL课程学习】:MySQL安装,MySQL如何登录和退出?MySQL的简单配置

🎁个人主页:我们的五年 🔍系列专栏:MySQL课程学习 🌷追光的人,终会万丈光芒 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 MySQL在Centos 7环境下的安装: 卸载…

oracle如何配置第二个监听优化数据传输

oracle如何配置第二个监听优化数据传输 服务器两个网卡,配置两个不同IP和端口的监听。 归档日志量每天很大,为了不影响业务,需要配置一个单独的万兆网络来专门的传输归档日志到DG库,这里就涉及到在19c中增加一个监听用来使用专门…

Feed流系统重构:架构篇

重构对我而言,最大的乐趣在于解决问题。我曾参与一个C#彩票算奖系统的重构,那时系统常因超时引发用户投诉。接手任务时,我既激动又紧张,连续两天几乎废寝忘食地编码。结果令人振奋,算奖时间从一小时大幅缩短至十分钟。…

【Linux驱动开发】驱动中的信号 异步通知开发

【Linux驱动开发】驱动中的信号 异步通知开发 文章目录 应用中的信号驱动中的信号应用程序接收驱动信号附录:嵌入式Linux驱动开发基本步骤开发环境驱动文件编译驱动安装驱动自动创建设备节点文件 驱动开发驱动设备号地址映射,虚拟内存和硬件内存地址字符…

单片机智能家居火灾环境安全检测-分享

目录 前言 一、本设计主要实现哪些很“开门”功能? 二、电路设计原理图 电路图采用Altium Designer进行设计: 三、实物设计图 四、程序源代码设计 五、获取资料内容 前言 传统的火灾报警系统大多依赖于简单的烟雾探测器或温度传感器,…

Java开发经验——系统日志问题

摘要 本文讨论了Java开发中的系统日志设置问题,特别是性能优化。文章分析了使用占位符记录slowString的耗时问题,并提出了使用lambda表达式和Log4j2 API来延迟参数内容获取,以解决性能问题。同时,文章还提到了SLF4J适配器的好处&…

mysql | limit X, -1 早已不可使用,本身也是一个错误

一、背景 需求:使用 mysql 时,需要获取第 X 条数据之后的所有数据。 这时,首先想到的就是利用 limit 来实现。 早期的部分文章或者资料中,提到可以使用: limit X,-1 例如,获取第一条后的所有数据&…

C++:探索AVL树旋转的奥秘

文章目录 前言 AVL树为什么要旋转?一、插入一个值的大概过程1. 插入一个值的大致过程2. 平衡因子更新原则3. 旋转处理的目的 二、左单旋1. 左单旋旋转方式总处理图2. 左单旋具体会遇到的情况3. 左单旋代码总结 三、右单旋1. 右单旋旋转方式总处理图2. 右单旋具体会遇…

排序算法(选择排序、直接插入排序、冒泡排序、二路归并排序)(C语言版)

对数组进行排序,主要演示选择排序、直接排序、冒泡排序、二路归并排序算法,附上代码演示 一、编写好各类排序方法的函数 (1) s_sort(int e[],int n):选择排序。 (2)si_sort(int e[],int n):直接插人排序。…

当产业经济插上“数字羽翼”,魔珐有言AIGC“3D视频创作大赛”成功举办

随着AI技术的飞速发展,3D数字人技术已成为驱动各行各业转型升级的重要力量。在这一背景下,2024山东3D数字人视频创作大赛应运而生,并在一番激烈的角逐后圆满落幕,为科技与创意的交融写下浓墨重彩的一笔。 11月20日,一…

Unity-添加世界坐标系辅助线

如果你想在场景中更直观地显示世界坐标系,可以通过编写一个简单的脚本来实现。下面是一个基本的示例脚本,它会在场景中绘制出世界坐标系的三个轴: using UnityEngine;public class WorldAxesIndicator : MonoBehaviour {public float length…

解密自闭症儿童康复秘籍,让孩子重新展开羽翼

在广州这座繁华都市的一隅,隐藏着一片静谧而温暖的天地——星贝育园自闭症儿童寄宿制学校。这里,没有喧嚣与浮躁,只有爱与耐心交织的旋律,为自闭症儿童编织着一个又一个康复的奇迹。星贝育园,如同一盏明灯,…

豆包MarsCode算法题:三数之和问题

问题描述 思路分析 1. 排序数组 目的: 将数组 arr 按升序排序,这样可以方便地使用双指针找到满足条件的三元组,同时避免重复的三元组被重复计算。优势: 数组有序后,处理两个数和 target - arr[i] 的问题可以通过双指针快速找到所有可能的组…