深度学习中的正则化技术 - 噪声鲁棒性篇

序言

在深度学习的蓬勃发展中,模型的性能与泛化能力成为了研究者们关注的焦点。然而,实际应用中的数据往往伴随着各种噪声,这些噪声不仅来源于数据采集过程中的硬件限制,还可能由环境干扰、传输错误等因素引入。噪声的存在严重影响了深度学习模型的训练效果和预测准确性,尤其是在语音识别、图像分类等任务中更为显著。因此,提升深度学习模型的噪声鲁棒性,即增强模型在噪声环境下的稳定表现和识别能力,成为了当前研究的一个重要方向。通过设计更有效的数据预处理算法、优化模型结构以及引入噪声增强训练等技术手段,可以显著提高深度学习模型对噪声的抵抗能力,从而推动其在更多复杂场景下的应用。

噪声鲁棒性

  • 在深度学习中的正则化技术 - 数据集增强篇中已经启发将噪声作用于输入,作为数据集增强策略。对于某些模型,在模型的输入加上方差极小的噪音等价于对权重加范数惩罚(Bishop, 1995a,b)。在一般情况下,噪声注入远比简单地收缩参数强大,特别是噪声被添加到隐藏单元时更加强大。向隐藏单元添加噪音是值得单独讨论重要的话题
  • 另一种正则化模型的噪声使用方式是将其加到的权重。这项技术主要用于循环神经网络(Jim et al., 1996; Graves, 2011)。这可以解释为关于权重的贝叶斯推断的随机实现。使用贝叶斯处理学习过程将权重视为不确定的,并且可以通过概率分布表示这种不确定性。向权重添加噪声是反映这种不确定性的一种实用的随机方法。
  • 在某些假设下,施加于权重的噪声可以被解释为与更传统正则化形式等同,鼓励要学习的函数的稳定性。
  • 我们研究回归的情形,也就是训练将一组特征 x \boldsymbol{x} x映射成一个标量的函数 y ^ ( x ) \hat{y}(\boldsymbol{x}) y^(x),并使用最小二乘代价函数衡量模型预测值 y ^ \hat{y} y^与真实值 y y y的误差
    J = E p ( x , y ) [ ( y ^ ( x ) − y ) 2 ] —公式1 J=\mathbb{E}_{p(x,y)}[(\hat{y}(\boldsymbol{x})-y)^2]\quad\textbf{\footnotesize{---公式1}} J=Ep(x,y)[(y^(x)y)2]公式1
  • 训练集包含 m m m对标注样例 { ( x ( i ) , y ( i ) ) , … , ( x ( m ) , y ( m ) ) } \{(\boldsymbol{x}^{(i)},y^{(i)}),\dots,(\boldsymbol{x}^{(m)},y^{(m)})\} {(x(i),y(i)),,(x(m),y(m))}
  • 现在我们假设在每个输入表示上添加网络权重的随机扰动 ϵ w ∼ N ( ϵ ; 0 , η I ) \epsilon_w\sim\mathcal{N}(\boldsymbol{\epsilon};0,\eta\boldsymbol{I}) ϵwN(ϵ;0,ηI)想象我们有一个标准的 l l l MLP \text{MLP} MLP。我们将扰动模型记为 y ^ ϵ W ( x ) \hat{y}_{\epsilon_{\boldsymbol{W}}}(\boldsymbol{x}) y^ϵW(x)
  • 尽管有噪声注入,我们仍对减少网络输出误差的平方感兴趣。因此目标函数为: { J ^ W = E p ( x , y , ϵ W ) [ ( y ^ ϵ W ( x ) − y ) 2 ] —公式2 = E p ( x , y , ϵ W ) [ y ^ ϵ W 2 ( x ) − 2 y y ^ ϵ W ( x ) + y 2 ] —公式3 \begin{cases}\begin{aligned}\hat{J}_{\boldsymbol{W}}&=\mathbb{E}_p(\boldsymbol{x},y,\epsilon_{\boldsymbol{W}})[(\hat{y}_{\epsilon_{\boldsymbol{W}}}(\boldsymbol{x})-y)^2]\quad\textbf{\footnotesize{---公式2}}\\&=\mathbb{E}_p(\boldsymbol{x},y,\epsilon_{\boldsymbol{W}})[\hat{y}_{\epsilon_{\boldsymbol{W}}}^2(\boldsymbol{x})-2y\hat{y}_{\epsilon_{\boldsymbol{W}}}(\boldsymbol{x})+y^2]\quad\textbf{\footnotesize{---公式3}}\end{aligned}\end{cases} {J^W=Ep(x,y,ϵW)[(y^ϵW(x)y)2]公式2=Ep(x,y,ϵW)[y^ϵW2(x)2yy^ϵW(x)+y2]公式3
  • 对于小的 η \eta η,最小化带权重噪声(方差为 η I \eta\boldsymbol{I} ηI)的 J J J等同于最小化附加正则化项的 J : η E p ( x , y ) [ ∥ ∇ W y ^ ( x ) ∥ 2 ] J:\eta\mathbb{E}_{p(x,y)}\left[\Vert\nabla_{\boldsymbol{W}}\hat{y}(\boldsymbol{x})\Vert^2\right] J:ηEp(x,y)[Wy^(x)2]
  • 这种形式的正则化鼓励参数进入权重小扰动对输出相对影响较小的参数空间区域。换句话说,它推动模型进入对权重小的变化相对不敏感的区域,找到的点不只是极小点,还是由平坦区域所包围的最小点 (Hochreiter and Schmidhuber, 1995)。
  • 在简化的线性回归中(例如, y ^ ( x ) = w ⊤ x + b \hat{y}(\boldsymbol{x})=\boldsymbol{w}^\top\boldsymbol{x}+b y^(x)=wx+b,正则项退化为: η E p ( x ) [ ∥ x ∥ 2 ] \eta\mathbb{E}_{p(x)}[\Vert\boldsymbol{x}\Vert^2] ηEp(x)[x2],这与函数的参数无关,因此不会对 J ^ w \hat{J}_w J^w关于模型参数的梯度有贡献。

向输出目标注入噪声

  • 大多数数据集的 y y y标签都有一定错误。当 y y y是错误的,对最大化 log ⁡ p ( y ∣ x ) \log p(y\mid\boldsymbol{x}) logp(yx)会是有害的。
  • 为了防止这一点的一种方法是显式地对标签上的噪声进行建模。
    • 例如,我们可以假设,对于一些小常数 ϵ \epsilon ϵ,训练集标记 y y y是正确的概率是 1 − ϵ 1-\epsilon 1ϵ,任何其他可能的标签可能是正确的。
    • 这个假设很容易就能解析地与代价函数结合,而不用显式地采噪声样本。
    • 例如,标签平滑(label smoothing)基于 k k k个输出的 softmax \text{softmax} softmax函数,指明确分类 0 0 0 1 1 1替换成 ϵ k − 1 \displaystyle\frac{\epsilon}{k-1} k1ϵ 1 − ϵ 1-\epsilon 1ϵ,对模型进行正则化。
  • 标准交叉熵损失可以用在这些非确切目标的输出上。使用 softmax \text{softmax} softmax函数和明确目标的最大似然学习可能永远不会收敛—— softmax \text{softmax} softmax函数永远无法真正预测 0 0 0概率或 1 1 1概率,因此它会继续学习越来越大的权重,使预测更极端。使用如权重衰减等其他正则化策略能够防止这种情况。标签平滑的优势是能防止模型追求明确概率而不妨碍正确分类。这种策略自20世纪80年代就已经被使用,并在现代神经网络继续保持显著特色 (Szegedyet al., 2015)。

总结

  • 深度学习中噪声鲁棒性的提升是确保模型在真实世界环境中稳定工作的关键。通过一系列创新性的技术手段,如数据增强、噪声注入训练、模型结构优化等,我们能够有效提高模型对噪声的容忍度和识别精度。这些努力不仅促进了深度学习技术的进一步发展,也为语音识别、图像识别、自然语言处理等领域的实际应用带来了更加可靠和高效的解决方案。
  • 未来,随着研究的深入和技术的不断进步,我们有理由相信深度学习模型的噪声鲁棒性将得到进一步提升,为更多领域带来革命性的变革。

往期内容回归

深度学习中的正则化技术 - 数据集增强篇

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

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

相关文章

synchronized关键字详解(全面分析)

目录 synchronized关键字详解1、synchronized关键字简介2、synchronized作用和使用场景作用使用场景①、用在代码块上(类级别同步)②、用在代码块上(对象级别同步)③、用在普通方法上(对象级别同步)④、用在静态方法上(类级别同步)总结: 3、synchronized底层原理&am…

使用Gunicorn提高Web应用的多核并发处理能力

使用Gunicorn提高Web应用的多核并发处理能力 Web应用程序需要处理大量的并发请求,尤其在多用户访问的场景下,如何有效地利用服务器的多核处理能力是提升性能的关键之一。Gunicorn(Green Unicorn)作为一个Python WSGI HTTP服务器&…

【初阶数据结构】2.顺序表

文章目录 1.线性表2.顺序表2.1 概念与结构2.2 分类2.2.1 静态顺序表2.2.2 动态顺序表 2.3 动态顺序表的实现2.4 顺序表算法题2.4.1 移除元素2.4.2 删除有序数组中的重复项2.4.3 合并两个有序数组 2.5 顺序表问题与思考 1.线性表 线性表(linear list)是n…

大数据平台之HiveServer2

HiveServer2 是 Apache Hive 的一个重要组件,用于为客户端提供统一的接口来访问 Hive 数据仓库。它提供了一个 JDBC、ODBC 和 Thrift 接口,支持多种客户端连接方式,并增加了多用户隔离和增强的安全性。 HiveServer2 详细介绍 1. 背景与发展…

多线程链表操作设计

在多线程环境中操作共享的数据结构(例如链表),通常需要使用互斥锁(mutex)或其他同步机制来确保数据的一致性和防止竞态条件。然而,使用互斥锁会带来锁的开销和潜在的死锁问题。为了设计一个可重入并且高效的链表操作,可以考虑以下几种无锁或细粒度锁的设计方案。 1. 无锁…

第五十四章 生成的 WSDL 的详细信息 - portType

文章目录 第五十四章 生成的 WSDL 的详细信息 - portType<portType><message> 第五十四章 生成的 WSDL 的详细信息 - portType 在 <binding> 部分之前&#xff0c;WSDL 包含 <portType> 元素&#xff0c;每个元素通过为 <binding> 元素指定单个地…

Go 垃圾回收(GC)

之前自以为对Go语言的GC了如指掌&#xff0c;结果昨天被面试官疯狂拷打。于是有了这篇博客。 Go语言的GC主要有三个版本&#xff1a; v1.3 标记清除法v1.5 三色标记法 写屏障v1.8 混合写屏障 v1.3标记清除法 Go1.3的标记清除法是Go语言早期版本的垃圾收集策略。这种方法在…

java并发编程之美-第1章 并发编程线程基础-线程通知与等待(wait/notify,notifyAll)

文章目录 前言1. wait()函数 前言 Object类是所有类的父类&#xff0c;鉴于继承机制&#xff0c;Java把所有类都需要的方法放到了 Obiect类里面&#xff0c;其中就包含通知&#xff08;notify&#xff0c;notifyAll&#xff09;与等待(wait)系列函数。 1. wait()函数 当一个…

SpringBoot使用Redisson操作Redis及使用场景实战

前言 在SpringBoot使用RedisTemplate、StringRedisTemplate操作Redis中&#xff0c;我们介绍了RedisTemplate以及如何SpringBoot如何通过RedisTemplate、StringRedisTemplate操作Redis。 RedisTemplate的好处就是基于SpringBoot自动装配的原理&#xff0c;使得整合redis时比较…

【力扣C语言】每日一题—第387题,字符串中第一个唯一字符

题目&#xff1a; 给出一串字符串&#xff0c;找出其中第一个不重复的字符&#xff0c;返回它的索引 思路&#xff1a; 暴力求解&#xff1a; 1、算字符串长度 2、while循环作为外循环&#xff0c;for循环作为内循环&#xff0c;依次遍历&#xff0c;如果有相同的跳过&…

防火墙安全策略练习

目录 实验拓扑 实验要求 实验思路 实验步骤 1.配置交换机&#xff0c;划分接口的vlan&#xff0c;配置ISP 2.配置防火墙 3.接下来在WEB界面进行所有安全策略操作 配置接口 创建安全区域&#xff1a; 创建地址&#xff1a; 时间段&#xff1a; 安全策略部分&#xff…

地理信息科学在灾害管理中的应用:GIS构建防灾减灾的智慧防线

在全球气候变化与人类活动加剧的背景下&#xff0c;自然灾害频发&#xff0c;给社会经济发展带来了严峻挑战。本文将深入分析GIS在灾害预测、评估和响应中的核心作用&#xff0c;展示其如何为构建更加安全、韧性的社会提供智慧解决方案。 灾害预测&#xff1a;GIS的“先知”之…

JavaScript青少年简明教程:为何学习JavaScript及JavaScript简介

JavaScript青少年简明教程&#xff1a;为何学习JavaScript及JavaScript简介 JavaScript最初是为web浏览器&#xff08;前端开发&#xff09;设计的。它可以在所有现代浏览器中运行&#xff0c;包括Chrome, Firefox, Safari, Edge等。 这意味着JavaScript代码可以在任何能运行…

docker中mysql设置lower_case_table_names配置的坑

前沿 今天在使用flowable流程框架的时候&#xff0c;遇到一个问题。需要配置MySQL数据库以实现表名大小写不敏感。本以为这是一个简单的任务&#xff0c;却耗费了我两个多小时的时间。 docker容器中修改配置&#xff0c;重启不成功 我们前提是容器中的mysql中已经有很多数据…

FastAPI -- 第一弹(查询参数/路径参数/请求体参数)

Hello World 经典的 Hello World 安装 pip install fastapi pip install "uvicorn[standard]"main.py from typing import Unionfrom fastapi import FastAPIapp FastAPI()app.get("/") def read_root():return {"Hello": "World"}…

判断链表中是否有环(力扣141.环形链表)

这道题要用到快慢指针。 先解释一下什么是快慢指针。 快慢指针有两个指针&#xff0c;走得慢的是慢指针&#xff0c;走得快的是快指针。 在这道题&#xff0c;我们规定慢指针一次走一步&#xff0c;快指针一次走2步。 如果该链表有环&#xff0c;快慢指针最终会在环中相遇&a…

微调及代码

一、微调&#xff1a;迁移学习&#xff08;transfer learning&#xff09;将从源数据集学到的知识迁移到目标数据集。 二、步骤 1、在源数据集&#xff08;例如ImageNet数据集&#xff09;上预训练神经网络模型&#xff0c;即源模型。 2、创建一个新的神经网络模型&#xff…

大数据基础:Hadoop之Yarn重点架构原理

文章目录 Hadoop之Yarn重点架构原理 一、Yarn介绍 二、Yarn架构 三、Yarn任务运行流程 四、Yarn三种资源调度器特点及使用场景 Hadoop之Yarn重点架构原理 一、Yarn介绍 Apache Hadoop Yarn(Yet Another Reasource Negotiator&#xff0c;另一种资源协调者)是Hadoop2.x版…

LLM-向量数据库中的索引算法总结

文章目录 前言向量数据库介绍索引方法倒排索引KNN 搜索近似 KNN 搜索Product Quantization(PQ)NSW 算法搜索HNSW 前言 向量数据库是当今大模型知识库检索落地实践的核心组件&#xff0c;下图是构建知识库检索的架构图&#xff1a; 首先会将相关文档数据向量化嵌入到向量化数据…

Python Linux下编译

注意 本教程针对较新Linux系统&#xff0c;没有升级依赖、处理旧版本Linux的openssl等步骤&#xff0c;如有需要可以查看往期文章&#xff0c;例如&#xff1a;在Centos7.6镜像中安装Python3.9 教程中没有使用默认位置、默认可执行文件名&#xff0c;请注意甄别 安装路径&#…