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

Label Dependent Nose
样本选择(Sample Selection)
第一种很直接的想法,就是我们在样本集里,把那些‘噪声’找出来,然后直接过滤掉。但这里面的难点在于怎么找出哪些噪声。
人工经验:比如大学生一般是18岁-30之间,如果小于18岁,比如只有15岁就大概率不是。
规则:比如先走一遍已存在的比较靠谱的模型,将p比较低的直接过滤;
另一种想法,就是在模型训练的时候,进行样本选择。即对于每个batch,只选择clean样本的loss进行模型的更新。其中比较主流的方法时co-train系列。

Decoupling(《Decoupling “when to update” from “how toupdate”》)
核心思路:分别独立训练2个模型,对于每个batch,2个模型分别预测。对于预测结果不一致的数据,才会被选择用来更新模型的参数,又被称为「update by disagreement」
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)来控制。
Co-teaching+(ICML2019的《How does Disagreement Help Generalization against Label Corruption?》)
核心思路: 结合了Co-teach和decoupling的思路
正则化(Robust Regularization)
通过正则化的方法,防止模型过拟合岛噪声样本上。比如Dropout、BN等方法。
显式正则:比如Dropout、BN、权重衰减等。这里介绍一种bilevel learning
bilevel learning:使用一个干净的验证集,应用双层优化的方式来约束过拟合。通过调整权重,最小化在验证集上的错误。在每个mini-batch上,计算训练样本和验证集样本之间梯度的一致性,一致性高的训练样本对应的权重增大。
隐式正则:在不降低模型表示能力的前提下提升了泛化性能
adversarial training: 对抗训练,鼓励网络正确分类原始输入和扰动的输入;
label smoothing:标签平滑,防止过度自信,平滑分类边界,平滑标签是原始标签和其他可能标签的加权组合;
mixup: 数据线性插值,标签也线性插值
结构设计(Robust Architecture)
噪声自适应层(noise adaptation layer)
专门用噪声过渡矩阵来建模噪声转换,测试的去掉这一层。只针对实例无关的噪声。
Loss设计(Robust Loss)
首先我们介绍下对称损失(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)是等价的。

MAE
考虑2分类,l[fθ(x), y] + l[fθ(x), 1-y] = |1-fθ(x)| + |0-fθ(x)| = 1,所以MAE是对称损失。但MAE的性能比较差,跟CCE(categorical cross entropy)相比,训练的收敛时间更长。
GCE(generalized cross entropy)
CE/CCE不是对称损失。l[fθ(x), y] + l[fθ(x), 1-y]=C,要求各个损失项非负,且其和为定值,那么各个损失项必然是有界的。但在当fθ(x)接近于0或者1时,logfθ(x)或−log(1−fθ(x))是无界的。


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

其中幂次q为一个超参数,取值范围为(0, 1] 。当q = 1时,该指数项就蜕变为MAE的形式;当q→0时,由洛必达法则,该指数项将蜕变为CE的形式。
SCE(symmetric cross entropy):在CCE上结合了一个noise tolerance term。

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

Loss Adjustment
Loss Correction:和噪声自适应层类似,损失校正通过给模型输出结果乘上一个估计的标签转移矩阵来修改loss,不同之处在于,噪声转移矩阵的学习是和模型的学习解耦的。包括backward correction、forward correction等。
Loss Reweighting:计算loss时给假样本更小的权重,给真样本更高的权重。这类方法手动设计权重函数和超参。
Label Refurbishment:将网络的输出标签和噪声标签组合作为翻新后的标签:(a是噪声标签的置信度)

Meta Learning
Instance Dependent Noise
实际上在真实世界的数据集中,存在更多的是instance-dependent (feature-dependent) label noise,即特征相关的噪音标签。
SEAL(self-evolution average label)
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 制作第一步:生成 msm89xx-target_files-eng.XXX.zip1.2 Full OTA 制作第二步:Modem 等非 HLOS 加入升级包的方法1.3 Full OTA 制作第三步:生成 update.zip 升级包2. Incremental OTA 方式升级介…...
工作负载之DeployMent
DeployMent 无状态工作负载(Deployment):即kubernetes中的“Deployment”,无状态工作负载支持弹性伸缩与滚动升级,适用于实例完全独立、功能相同的场景,如:nginx、wordpress等。 也是公司中应…...
淘宝tmall页面数据获取,API接口对接程序
item_get-获得淘宝商品详情请求参数请求参数:num_iid652874751412&is_promotion1参数说明:num_iid:淘宝商品IDis_promotion:是否获取取促销价响应参数Version: Date:2022-04-04名称类型必须示例值描述itemitem[]1宝贝详情数据num_iidBigint152081325…...
基于粒子群优化算法的电动汽车充放电V2G研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
java并发编程原理2 (AQS, ReentrantLock,线程池)
一、AQS: 1.1 AQS是什么? AQS就是一个抽象队列同步器,abstract queued sychronizer,本质就是一个抽象类。 AQS中有一个核心属性state,其次还有一个双向链表以及一个单项链表。 首先state是基于volatile修饰&#x…...
研报精选230219
目录 【行业230219山西证券】煤炭行业周报:复工改善,港口价格企稳反弹【行业230219中航证券】农林牧渔行业周观点:一号文件落地,生物育种超势不改【行业230219华西证券】汽车行业周报:新车密集上市 自主转型提速【个股…...
【PPPoE】PPPoE拨号流程
简介 PPPoE(Point-to-Point Protocol over Ethernet)是一种在以太网上封装PPP协议的方式,常用于在宽带接入中进行拨号。 PPPoE的拨号原理如下: 客户端发起PPPoE Active Discovery Initiation (PADI)报文,广播到网络…...
django项目实战(django+bootstrap实现增删改查)
目录 一、创建django项目 二、修改默认配置 三、配置数据库连接 四、创建表结构 五、在app当中创建静态文件 六、页面实战-部门管理 1、实现一个部门列表页面 2、实现新增部门页面 3、实现删除部门 4、实现部门编辑功能 七、模版的继承 1、创建模板layout.html 1&…...
Lesson4---Python语言基础(2)
4.1 内置数据结构 4.1.1 序列数据结构(sequence) 成员是有序排列的每个元素的位置称为下标或索引通过索引访问序列中的成员Python中的序列数据类型有字符串、列表、元组 “abc” ≠ “bac” 4.1.1.1 创建列表和元组 Python中的列表和元组,…...
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++
题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 小明有一些矩形的材料,他要从这些矩形材料中切割出一些正方形。 当他面对一块矩形材料时,他总是从中间切割一刀,切出一块最大的正…...
Java线程池的创建以及原理
一、为什么要使用线程池 在外面的日常开发中,也使用了不少池化技术,比如线程池、数据库连接池、HTTP连接池等等都是对这个思想的应用。 池化技术的思想主要是为了减少每次获取资源的消耗,提高对资源的利用率。 线程池提供了一种限制和管理资…...
Java集合学习之Map
1.什么是Map Java里的Map接口是一个集合根接口,表示一个 键值对(Key-Value) 的映射。 简单来说就是键和值是一对的,每一个 Key都有唯一确定的 Value对应。 其中要求 键(Key) 唯一,因为是按照…...
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 是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态,其服务、支持和工具的使用范围相当广泛。 Kubernetes 这个名字源于希腊语,意…...
【go语言grpc之client端源码分析三】
go语言grpc之server端源码分析三newClientStreamnewAttemptLocked上一篇在介绍了grpc.Dial之后,然后再介绍一下后面的 //创建RPC客户端client : pb.NewGreetsClient(conn)//设置超时时间_, cancel : context.WithTimeout(context.Background(), time.Second)defer c…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...
Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...
群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...
从面试角度回答Android中ContentProvider启动原理
Android中ContentProvider原理的面试角度解析,分为已启动和未启动两种场景: 一、ContentProvider已启动的情况 1. 核心流程 触发条件:当其他组件(如Activity、Service)通过ContentR…...
【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验
Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...
C# winform教程(二)----checkbox
一、作用 提供一个用户选择或者不选的状态,这是一个可以多选的控件。 二、属性 其实功能大差不差,除了特殊的几个外,与button基本相同,所有说几个独有的 checkbox属性 名称内容含义appearance控件外观可以变成按钮形状checkali…...
Java后端检查空条件查询
通过抛出运行异常:throw new RuntimeException("请输入查询条件!");BranchWarehouseServiceImpl.java // 查询试剂交易(入库/出库)记录Overridepublic List<BranchWarehouseTransactions> queryForReagent(Branch…...
