深度学习探索-基础篇-正则化篇

2024-06-21 07:04

本文主要是介绍深度学习探索-基础篇-正则化篇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、正则化介绍
    • 1.1 正则化的简介
    • 1.2 正则化的方法介绍
    • 1.3 正则化的用途
  • 二、正则化的详细介绍
    • 2.1 L1正则化
    • 2.2 L2正则化
      • 2.2.1 L2正则化的工作原理
      • 2.2.2 如何在训练中应用L2正则化
      • 2.2.3 L2正则化的效果
    • 2.3 Weight Decay
    • 2.4 Dropout

一、正则化介绍

1.1 正则化的简介

在深度学习领域中,正则化是一种用于防止过拟合的技术。过拟合是指模型在训练数据上表现良好,但在未见过的数据上表现较差的情况,这可能是因为模型学习到了训练数据中的噪声或者细节,而无法泛化到新数据。

正则化的本质是通过修改学习算法,使其降低泛化误差而非训练误差。正则化是在损失函数的基础上加入一个正则项(或罚项),这个正则项通常是对模型参数的某种惩罚,例如L1范数或L2范数。 这样做的目的是在不改变模型复杂度的情况下,减小某些参数的值,从而减少模型对训练数据的过度拟合

1.2 正则化的方法介绍

  1. 权重衰减(Weight Decay):一种简单的正则化方法,通过在损失函数中加入模型权重的平方和作为惩罚项,以约束模型的学习能力。
  2. L1正则化:通过对权重进行L1范数惩罚,使得部分权重为零,从而实现模型稀疏化,有助于特征选择。
  3. L2正则化:通过对权重进行L2范数惩罚,限制权重的大小,防止权重过大导致过拟合。
  4. Dropout:在训练过程中随机地将一些神经元的输出设置为0,从而强制模型去学习多个独立的子模型,减少神经网络的复杂性,提高模型的泛化能力。

1.3 正则化的用途

  1. 防止过拟合:通过限制模型的复杂度,确保模型在训练数据上表现良好时,也能在新数据上保持良好的泛化能力。
  2. 提高模型的泛化能力:通过减少模型对训练数据的依赖,使模型能够更好地应对未知数据。
  3. 增强模型的鲁棒性:通过引入额外的约束或惩罚项,使模型在面对不同的输入数据时更加稳定和可靠。

二、正则化的详细介绍

2.1 L1正则化

在深度学习和更广泛的机器学习领域中,L1正则化是一种用于控制模型复杂度和防止过拟合的技术。过拟合是指模型在训练数据上表现得过于出色,以至于它开始捕捉数据中的噪声或偶然的细节,这会导致模型在未见过的数据上的性能下降。

L1正则化通过在模型的损失函数中添加一个额外的项来实现,这个项被称为正则化项。正则化项基于模型权重的L1范数,即所有权重绝对值的总和。具体来说,如果 w w w 代表模型的权重向量,那么L1正则化项可以表示为:

λ ∥ w ∥ 1 = λ ∑ i = 1 n ∣ w i ∣ \lambda \|w\|_1 = \lambda \sum_{i=1}^{n} |w_i| λw1=λi=1nwi

这里, λ \lambda λ 是正则化参数,控制正则化项对总体损失的影响程度, n n n 是权重的数量。较大的 λ \lambda λ 值意味着正则化项对最终损失的贡献更大,从而导致模型权重的值更小。

L1正则化的一个关键特性是它倾向于产生稀疏的权重向量,也就是说,许多权重会被精确地推至零。 这是因为L1范数的梯度在权重接近零时是恒定的,这有助于权重进一步向零移动。这种效果有利于特征选择,因为它可以自动消除不重要的特征,从而使模型更简单,更易于解释,并且减少计算成本。

下面是L1正则化如何影响梯度下降更新过程的简化示例。假设我们有一个损失函数 L L L ,并且我们正在使用梯度下降法来最小化它。在没有正则化的情况下,权重 w w w 的更新规则如下:

w : = w − α ∂ L ∂ w w := w - \alpha \frac{\partial L}{\partial w} w:=wαwL

其中 α \alpha α 是学习率。引入L1正则化后,更新规则变为:

w : = w − α ( ∂ L ∂ w + λ sign ( w ) ) w := w - \alpha \left( \frac{\partial L}{\partial w} + \lambda \text{sign}(w) \right) w:=wα(wL+λsign(w))

这里的 sign ( w ) \text{sign}(w) sign(w) 函数返回 w w w 的符号,即如果 w > 0 w > 0 w>0 ,则 sign ( w ) = 1 \text{sign}(w) = 1 sign(w)=1 ,如果 w < 0 w < 0 w<0 ,则 sign ( w ) = − 1 \text{sign}(w) = -1 sign(w)=1 ,如果 w = 0 w = 0 w=0 ,则 sign ( w ) \text{sign}(w) sign(w) 可以被定义为任何值,但通常定义为0。

关键:

Q1. 如何理解:L1正则化的一个关键特性是它倾向于产生稀疏的权重向量,也就是说,许多权重会被精确地推至零。

在没有正则化的情况下,模型可能分配非零权重给所有特征,即使某些特征实际上并不重要。然而,当应用L1正则化时,正则化项会惩罚大权重,尤其是那些对模型贡献较小的特征的权重。由于L1正则化基于权重的绝对值,它会在权重接近零时产生一个恒定的梯度,这意味着这些权重在每一步梯度下降中都会朝着零的方向移动。因此,不重要的特征权重逐渐减小,直至变为零。这也意味着L1正则化具备特征筛选的能力

2.2 L2正则化

在深度学习以及更广泛的机器学习领域中,L2正则化是一种常用的防止模型过拟合的技术。它的核心思想是在模型的损失函数中添加一个额外的项,这个项惩罚模型参数(权重)的大小,从而鼓励模型寻找较小的权重值,这样可以减少模型的复杂度,提高模型的泛化能力。

2.2.1 L2正则化的工作原理

L2正则化项基于模型权重的L2范数,也就是权重向量各个元素平方的和再开平方。在深度学习中,我们通常只计算平方和而不进行开方操作,因为开方不会改变优化方向,同时可以节省计算资源。L2正则化项可以表示为:

λ ∥ w ∥ 2 2 = λ ∑ i = 1 n w i 2 \lambda \|w\|^2_2 = \lambda \sum_{i=1}^{n} w_i^2 λw22=λi=1nwi2

其中 w w w 是权重向量, λ \lambda λ 是正则化参数,用来控制正则化项对总损失函数的影响程度。较大的 λ \lambda λ 值会使正则化项对总损失的贡献更大,从而导致模型权重的值更小。

2.2.2 如何在训练中应用L2正则化

在训练神经网络时,L2正则化项被加到损失函数上。如果 J ( w ) J(w) J(w) 是没有正则化项的损失函数,那么加上L2正则化后的损失函数 J r e g ( w ) J_{reg}(w) Jreg(w) 可以表示为:

J r e g ( w ) = J ( w ) + λ ∥ w ∥ 2 2 J_{reg}(w) = J(w) + \lambda \|w\|^2_2 Jreg(w)=J(w)+λw22

在梯度下降的更新步骤中,L2正则化会影响权重的更新规则。没有正则化时,权重的更新规则是:

w : = w − α ∂ J ∂ w w := w - \alpha \frac{\partial J}{\partial w} w:=wαwJ

其中 α \alpha α 是学习率。而在L2正则化下,权重更新规则变为:

w : = w − α ( ∂ J ∂ w + 2 λ w ) w := w - \alpha \left( \frac{\partial J}{\partial w} + 2\lambda w \right) w:=wα(wJ+2λw)

可以看到,L2正则化项在更新过程中起到了“权重衰减”的作用,它会使得权重在每次更新时都朝向零的方向稍微移动一点,但这并不像L1正则化那样会把权重精确地推至零。

2.2.3 L2正则化的效果

L2正则化的主要效果是平滑权重,它鼓励模型参数分布在一个较小的范围内,而不是让某些参数变得非常大。这有助于减少模型的波动性,使得模型对输入数据的变化更加稳健,从而降低过拟合的风险。此外,L2正则化有助于模型在参数空间中找到一个“平均”解决方案,这通常意味着更好的泛化性能

2.3 Weight Decay

Weight Decay本质上是一种实现L2正则化的方法,但是它是在权重更新步骤中直接应用的,而不是通过修改损失函数来实现。

2.4 Dropout

Dropout是深度学习中一种非常流行的正则化技术,由Geoffrey Hinton和他的团队在2012年提出。其主要目的是减少神经网络的过拟合问题,增强模型的泛化能力。在训练过程中,Dropout通过随机“丢弃”(即设置为0)网络中的一部分神经元,从而模拟训练多个不同的神经网络,这样可以防止神经元之间过于依赖彼此,增强网络的鲁棒性和泛化能力。

在训练阶段,Dropout以一个固定的概率p(通常称为dropout比率或丢弃概率)随机地将网络中的神经元的输出置为0,而存活下来的神经元的输出则被放大1/(1-p)倍,以保持前向传播的期望值不变。在测试阶段,所有神经元都活跃,但它们的权重会被乘以(1-p),这是因为在训练时每个神经元的输出都被放大了,所以在测试时需要相应地缩小。

同时,在dropout的基础上也衍生出了许多相关技术:

  • DropBlock: DropBlock是一种针对卷积神经网络的扩展,它不是随机丢弃单个神经元,而是随机地丢弃神经元的连续区域,这样可以强制网络学习更鲁棒的特征。
  • Spatial Dropout: 空间Dropout主要应用于卷积神经网络(CNN),它不是独立地丢弃每个神经元,而是按通道或特征图的方式整块地丢弃神经元,这样可以保持特征图之间的空间关系。

这篇关于深度学习探索-基础篇-正则化篇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1080528

相关文章

C++对象布局及多态实现探索之内存布局(整理的很多链接)

本文通过观察对象的内存布局,跟踪函数调用的汇编代码。分析了C++对象内存的布局情况,虚函数的执行方式,以及虚继承,等等 文章链接:http://dev.yesky.com/254/2191254.shtml      论C/C++函数间动态内存的传递 (2005-07-30)   当你涉及到C/C++的核心编程的时候,你会无止境地与内存管理打交道。 文章链接:http://dev.yesky

51单片机学习记录———定时器

文章目录 前言一、定时器介绍二、STC89C52定时器资源三、定时器框图四、定时器模式五、定时器相关寄存器六、定时器练习 前言 一个学习嵌入式的小白~ 有问题评论区或私信指出~ 提示:以下是本篇文章正文内容,下面案例可供参考 一、定时器介绍 定时器介绍:51单片机的定时器属于单片机的内部资源,其电路的连接和运转均在单片机内部完成。 定时器作用: 1.用于计数系统,可

问题:第一次世界大战的起止时间是 #其他#学习方法#微信

问题:第一次世界大战的起止时间是 A.1913 ~1918 年 B.1913 ~1918 年 C.1914 ~1918 年 D.1914 ~1919 年 参考答案如图所示

[word] word设置上标快捷键 #学习方法#其他#媒体

word设置上标快捷键 办公中,少不了使用word,这个是大家必备的软件,今天给大家分享word设置上标快捷键,希望在办公中能帮到您! 1、添加上标 在录入一些公式,或者是化学产品时,需要添加上标内容,按下快捷键Ctrl+shift++就能将需要的内容设置为上标符号。 word设置上标快捷键的方法就是以上内容了,需要的小伙伴都可以试一试呢!

AssetBundle学习笔记

AssetBundle是unity自定义的资源格式,通过调用引擎的资源打包接口对资源进行打包成.assetbundle格式的资源包。本文介绍了AssetBundle的生成,使用,加载,卸载以及Unity资源更新的一个基本步骤。 目录 1.定义: 2.AssetBundle的生成: 1)设置AssetBundle包的属性——通过编辑器界面 补充:分组策略 2)调用引擎接口API

RedHat运维-Linux文本操作基础-AWK进阶

你不用整理,跟着敲一遍,有个印象,然后把它保存到本地,以后要用再去看,如果有了新东西,你自个再添加。这是我参考牛客上的shell编程专项题,只不过换成了问答的方式而已。不用背,就算是我自己亲自敲,我现在好多也记不住。 1. 输出nowcoder.txt文件第5行的内容 2. 输出nowcoder.txt文件第6行的内容 3. 输出nowcoder.txt文件第7行的内容 4. 输出nowcode

Javascript高级程序设计(第四版)--学习记录之变量、内存

原始值与引用值 原始值:简单的数据即基础数据类型,按值访问。 引用值:由多个值构成的对象即复杂数据类型,按引用访问。 动态属性 对于引用值而言,可以随时添加、修改和删除其属性和方法。 let person = new Object();person.name = 'Jason';person.age = 42;console.log(person.name,person.age);//'J

大学湖北中医药大学法医学试题及答案,分享几个实用搜题和学习工具 #微信#学习方法#职场发展

今天分享拥有拍照搜题、文字搜题、语音搜题、多重搜题等搜题模式,可以快速查找问题解析,加深对题目答案的理解。 1.快练题 这是一个网站 找题的网站海量题库,在线搜题,快速刷题~为您提供百万优质题库,直接搜索题库名称,支持多种刷题模式:顺序练习、语音听题、本地搜题、顺序阅读、模拟考试、组卷考试、赶快下载吧! 2.彩虹搜题 这是个老公众号了 支持手写输入,截图搜题,详细步骤,解题必备

Vim使用基础篇

本文内容大部分来自 vimtutor,自带的教程的总结。在终端输入vimtutor 即可进入教程。 先总结一下,然后再分别介绍正常模式,插入模式,和可视模式三种模式下的命令。 目录 看完以后的汇总 1.正常模式(Normal模式) 1.移动光标 2.删除 3.【:】输入符 4.撤销 5.替换 6.重复命令【. ; ,】 7.复制粘贴 8.缩进 2.插入模式 INSERT

零基础STM32单片机编程入门(一)初识STM32单片机

文章目录 一.概要二.单片机型号命名规则三.STM32F103系统架构四.STM32F103C8T6单片机启动流程五.STM32F103C8T6单片机主要外设资源六.编程过程中芯片数据手册的作用1.单片机外设资源情况2.STM32单片机内部框图3.STM32单片机管脚图4.STM32单片机每个管脚可配功能5.单片机功耗数据6.FALSH编程时间,擦写次数7.I/O高低电平电压表格8.外设接口