当前位置: 首页 > news >正文

带噪学习-概述

在实际应用的时候,我们的样本不会是完全干净的,即存在噪声样本。那使用存在噪声的样本时,我们如何更有效的进行模型学习呢?

Label Dependent Nose

样本选择(Sample Selection)

  1. 第一种很直接的想法,就是我们在样本集里,把那些‘噪声’找出来,然后直接过滤掉。但这里面的难点在于怎么找出哪些噪声。

  1. 人工经验:比如大学生一般是18岁-30之间,如果小于18岁,比如只有15岁就大概率不是。

  1. 规则:比如先走一遍已存在的比较靠谱的模型,将p比较低的直接过滤;

  1. 另一种想法,就是在模型训练的时候,进行样本选择。即对于每个batch,只选择clean样本的loss进行模型的更新。其中比较主流的方法时co-train系列。

  1. Decoupling(《Decoupling “when to update” from “how toupdate”》)

核心思路:分别独立训练2个模型,对于每个batch,2个模型分别预测。对于预测结果不一致的数据,才会被选择用来更新模型的参数,又被称为「update by disagreement」

  1. Co-teaching(《Co-teaching: Robust Training of Deep Neural Networks with Extremely Noisy Labels》)

核心思路:对于2个模型f和g。对于每个batch,选择模型f中loss比较小的数据,计算这些数据在模型g上的损失并更新模型g的参数。同时选择模型g中loss比较小的数据,计算它们在f上的损失并更新模型f的参数。每个batch里选择多少个数据,由R(T)来控制。

  1. Co-teaching+(ICML2019的《How does Disagreement Help Generalization against Label Corruption?》)

核心思路: 结合了Co-teach和decoupling的思路

正则化(Robust Regularization)

通过正则化的方法,防止模型过拟合岛噪声样本上。比如Dropout、BN等方法。

  1. 显式正则:比如Dropout、BN、权重衰减等。这里介绍一种bilevel learning

bilevel learning:使用一个干净的验证集,应用双层优化的方式来约束过拟合。通过调整权重,最小化在验证集上的错误。在每个mini-batch上,计算训练样本和验证集样本之间梯度的一致性,一致性高的训练样本对应的权重增大。

  1. 隐式正则:在不降低模型表示能力的前提下提升了泛化性能

adversarial training: 对抗训练,鼓励网络正确分类原始输入和扰动的输入;

label smoothing:标签平滑,防止过度自信,平滑分类边界,平滑标签是原始标签和其他可能标签的加权组合;

mixup: 数据线性插值,标签也线性插值

结构设计(Robust Architecture)

  1. 噪声自适应层(noise adaptation layer)

专门用噪声过渡矩阵来建模噪声转换,测试的去掉这一层。只针对实例无关的噪声。

Loss设计(Robust Loss)

  1. 首先我们介绍下对称损失(Symmetric Loss),因为Symmetric Loss是理论可证明噪声鲁棒的。

我们这里考虑2分类任务。对于训练样本x,标签为y(y ∈ {0, 1}),fθ(x)为模型输出(θ为待优化的参数),损失函数为l。

a. 没有标签噪声的情况下,待优化的目标为l[fθ(x), y] (1);

b. 在考虑有噪声的情况下,x有概率ρ被误标为1-y,那么实际上的优化目标是(1−ρ)⋅l[fθ(x), y] + ρ⋅l[fθ(x), 1−y] (2)。

c. 对于目标函数(2),如果无论有无噪声,该优化问题都会得到同样的解。这时候损失函数L就是噪声鲁棒的。

d. 目标函数(2)可以转换为如下,整理后的第一项是目标函数(1)的一个固定倍数。而第二项是当样本标签等概率取遍所有可能值时,所产生的损失值。

e. 如果满足如下结果时(其中C是常数),那么l就是Symmetric Loss,即优化目标函数(2)和优化目标函数(1)是等价的。

  1. MAE

考虑2分类,l[fθ(x), y] + l[fθ(x), 1-y] = |1-fθ(x)| + |0-fθ(x)| = 1,所以MAE是对称损失。但MAE的性能比较差,跟CCE(categorical cross entropy)相比,训练的收敛时间更长。

  1. GCE(generalized cross entropy)

  1. CE/CCE不是对称损失。l[fθ(x), y] + l[fθ(x), 1-y]=C,要求各个损失项非负,且其和为定值,那么各个损失项必然是有界的。但在当fθ(x)接近于0或者1时,logfθ(x)或−log(1−fθ(x))是无界的。

  1. GCE可以兼顾MAE的鲁棒性和CE的性能。−log(fθ(x))项,替换成一个指数项

其中幂次q为一个超参数,取值范围为(0, 1] 。当q = 1时,该指数项就蜕变为MAE的形式;当q→0时,由洛必达法则,该指数项将蜕变为CE的形式。

  1. SCE(symmetric cross entropy):在CCE上结合了一个noise tolerance term。

  1. Focal Loss & GHM Loss

GHM可以认为是Focal Loss的一种优化。如下图所示,梯度模长在接近0时样本量最多,这部分是简单样本。随着模长增大,样本量迅速下降,在U字底部的部分可以认为是困难样本。在模长接近1时,数量又变多,这部分可以认为是极困难样本或者噪声样本。

最终根据这种分布设计梯度密度,来调整样本的权重。

  1. Loss Adjustment

  1. Loss Correction:和噪声自适应层类似,损失校正通过给模型输出结果乘上一个估计的标签转移矩阵来修改loss,不同之处在于,噪声转移矩阵的学习是和模型的学习解耦的。包括backward correction、forward correction等。

  1. Loss Reweighting:计算loss时给假样本更小的权重,给真样本更高的权重。这类方法手动设计权重函数和超参。

  1. Label Refurbishment:将网络的输出标签和噪声标签组合作为翻新后的标签:(a是噪声标签的置信度)

  1. Meta Learning

Instance Dependent Noise

实际上在真实世界的数据集中,存在更多的是instance-dependent (feature-dependent) label noise,即特征相关的噪音标签。

  1. SEAL(self-evolution average label)

  1. CORES(COnfidence REgularized Sample Sieve)

参考

Learning from Noisy Labels with Deep NeuralNetworks: A Survey

相关文章:

带噪学习-概述

在实际应用的时候,我们的样本不会是完全干净的,即存在噪声样本。那使用存在噪声的样本时,我们如何更有效的进行模型学习呢?Label Dependent Nose样本选择(Sample Selection)第一种很直接的想法,…...

Scratch少儿编程案例-多彩打地鼠

专栏分享 点击跳转=>Unity3D特效百例点击跳转=>案例项目实战源码点击跳转=>游戏脚本-辅助自动化点击跳转=>Android控件全解手册点击跳转=>Scratch编程案例👉关于作者...

为什么拔掉计算机网线还能ping通127.0.0.1?

前言 当我们在计算机上拔掉网线之后,发现我们仍然可以使用ping命令来ping通本机的IP地址127.0.0.1,这让很多人感到困惑,认为拔掉网线后计算机就无法与外界通信了,为什么还能ping通本机的IP地址呢? 本文的目的是通过对…...

Android kotlin 内、外部存储根目录及测试(可以实现仿微信未读消息数提示数字)

<<返回总目录 文章目录 一、内部存储与外部存储三、外部存储的写读测试(可以实现仿微信未读消息数提示数字)一、内部存储与外部存储 所有Android设备都有两个文件存储区域:内部存储空间(internal Storage)和外部存储空间(external Storage)。所以,Android系统从逻…...

Android 7.0 OTA升级(高通)

文章目录1. Full OTA 方式升级介绍1.1 Full OTA 制作第一步&#xff1a;生成 msm89xx-target_files-eng.XXX.zip1.2 Full OTA 制作第二步&#xff1a;Modem 等非 HLOS 加入升级包的方法1.3 Full OTA 制作第三步&#xff1a;生成 update.zip 升级包2. Incremental OTA 方式升级介…...

工作负载之DeployMent

DeployMent 无状态工作负载&#xff08;Deployment&#xff09;&#xff1a;即kubernetes中的“Deployment”&#xff0c;无状态工作负载支持弹性伸缩与滚动升级&#xff0c;适用于实例完全独立、功能相同的场景&#xff0c;如&#xff1a;nginx、wordpress等。 也是公司中应…...

淘宝tmall页面数据获取,API接口对接程序

item_get-获得淘宝商品详情请求参数请求参数&#xff1a;num_iid652874751412&is_promotion1参数说明&#xff1a;num_iid:淘宝商品IDis_promotion:是否获取取促销价响应参数Version: Date:2022-04-04名称类型必须示例值描述itemitem[]1宝贝详情数据num_iidBigint152081325…...

基于粒子群优化算法的电动汽车充放电V2G研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

java并发编程原理2 (AQS, ReentrantLock,线程池)

一、AQS&#xff1a; 1.1 AQS是什么&#xff1f; AQS就是一个抽象队列同步器&#xff0c;abstract queued sychronizer&#xff0c;本质就是一个抽象类。 AQS中有一个核心属性state&#xff0c;其次还有一个双向链表以及一个单项链表。 首先state是基于volatile修饰&#x…...

研报精选230219

目录 【行业230219山西证券】煤炭行业周报&#xff1a;复工改善&#xff0c;港口价格企稳反弹【行业230219中航证券】农林牧渔行业周观点&#xff1a;一号文件落地&#xff0c;生物育种超势不改【行业230219华西证券】汽车行业周报&#xff1a;新车密集上市 自主转型提速【个股…...

【PPPoE】PPPoE拨号流程

简介 PPPoE&#xff08;Point-to-Point Protocol over Ethernet&#xff09;是一种在以太网上封装PPP协议的方式&#xff0c;常用于在宽带接入中进行拨号。 PPPoE的拨号原理如下&#xff1a; 客户端发起PPPoE Active Discovery Initiation (PADI)报文&#xff0c;广播到网络…...

django项目实战(django+bootstrap实现增删改查)

目录 一、创建django项目 二、修改默认配置 三、配置数据库连接 四、创建表结构 五、在app当中创建静态文件 六、页面实战-部门管理 1、实现一个部门列表页面 2、实现新增部门页面 3、实现删除部门 4、实现部门编辑功能 七、模版的继承 1、创建模板layout.html 1&…...

Lesson4---Python语言基础(2)

4.1 内置数据结构 4.1.1 序列数据结构&#xff08;sequence&#xff09; 成员是有序排列的每个元素的位置称为下标或索引通过索引访问序列中的成员Python中的序列数据类型有字符串、列表、元组 “abc” ≠ “bac” 4.1.1.1 创建列表和元组 Python中的列表和元组&#xff0c…...

NCHW - NHWC - CHWN 排列

TensorFlow有两种数据格式NHWC和NCHW,默认的数据格式是NHWC,可以通过参数data_format指定数据格式。这个参数规定了 input Tensor 和 output Tensor 的排列方式。 1、data_format 设置为 “NHWC” 时,排列顺序为 [batch, height, width, channels] 设置为 “NCHW” 时,排…...

2019蓝桥杯真题矩阵切割(填空题) C语言/C++

题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 小明有一些矩形的材料&#xff0c;他要从这些矩形材料中切割出一些正方形。 当他面对一块矩形材料时&#xff0c;他总是从中间切割一刀&#xff0c;切出一块最大的正…...

Java线程池的创建以及原理

一、为什么要使用线程池 在外面的日常开发中&#xff0c;也使用了不少池化技术&#xff0c;比如线程池、数据库连接池、HTTP连接池等等都是对这个思想的应用。 池化技术的思想主要是为了减少每次获取资源的消耗&#xff0c;提高对资源的利用率。 线程池提供了一种限制和管理资…...

Java集合学习之Map

1.什么是Map Java里的Map接口是一个集合根接口&#xff0c;表示一个 键值对&#xff08;Key-Value&#xff09; 的映射。 简单来说就是键和值是一对的&#xff0c;每一个 Key都有唯一确定的 Value对应。 其中要求 键&#xff08;Key&#xff09; 唯一&#xff0c;因为是按照…...

java 基于maven多模块合并打包部署

项目环境 jdk 1.8spring 2.7.xmaven 3.6 项目结构 模块功能 client – 对外service common – 共用工具切面等 main – 启动类 goods – 子模块具体实现 模块间依赖关系 client – 无依赖 common – 无依赖 main – client、common、goods goods – client、common 具体P…...

Kubernetes是个什么东东?

Kubernetes 是一个可移植、可扩展的开源平台&#xff0c;用于管理容器化的工作负载和服务&#xff0c;可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态&#xff0c;其服务、支持和工具的使用范围相当广泛。 Kubernetes 这个名字源于希腊语&#xff0c;意…...

【go语言grpc之client端源码分析三】

go语言grpc之server端源码分析三newClientStreamnewAttemptLocked上一篇在介绍了grpc.Dial之后&#xff0c;然后再介绍一下后面的 //创建RPC客户端client : pb.NewGreetsClient(conn)//设置超时时间_, cancel : context.WithTimeout(context.Background(), time.Second)defer c…...

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…...

JavaSec-RCE

简介 RCE(Remote Code Execution)&#xff0c;可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景&#xff1a;Groovy代码注入 Groovy是一种基于JVM的动态语言&#xff0c;语法简洁&#xff0c;支持闭包、动态类型和Java互操作性&#xff0c…...

Xshell远程连接Kali(默认 | 私钥)Note版

前言:xshell远程连接&#xff0c;私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

基于Uniapp开发HarmonyOS 5.0旅游应用技术实践

一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架&#xff0c;支持"一次开发&#xff0c;多端部署"&#xff0c;可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务&#xff0c;为旅游应用带来&#xf…...

网络编程(UDP编程)

思维导图 UDP基础编程&#xff08;单播&#xff09; 1.流程图 服务器&#xff1a;短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式&#xff0c;然后找到相应的网卡&#xff08;可以查看自己本机的网络连接&#xff09; windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置&#xff0c;选择刚才配置的桥接模式 静态ip设置&#xff1a; 我用的ubuntu24桌…...