【技术实现步骤摘要】
基于带有闭集噪声和开集噪声标签的鲁棒学习方法
[0001]本专利技术涉及一种基于带有闭集噪声和开集噪声标签的鲁棒学习方法。
技术介绍
[0002]深度神经网络(DNN)在各种任务中取得了显著的成功,例如图像分类、物体检测、语音识别和机器翻译。但需要注意的是,这样的成功主要归因于大量高质量注释的数据,而在实践中收集这些数据是昂贵甚至不可行的。事实上,现有的大部分基准数据集都是从搜索引擎或网络爬虫中收集的,这不可避免地涉及到噪声标记。
[0003]鉴于DNN的强大学习能力,模型最终将过度拟合噪声标记,导致泛化性能差。为了缓解这个问题,开发能够学习噪声标记的强大模型具有重要意义,而在存在闭集噪声的同时也存在开集噪声,因此,在这个问题中对开集噪声的处理至关重要。
[0004]曾有研究表明模型在训练过程中面对开集样本的行为,并观察到一些开集类别与多个闭集类别集成在一起,称之为Class Expansion。具体来说,对带标记的闭集样本进行训练,并对开集示例生成伪标记以促进学习,这种方法不会损害模型学习,甚至一些特定的开放集类别的示例得到了很好的分类。此外,其他开集示例均匀分布在多个封闭集类别中。另外,在训练过程中添加适当的开集示例甚至可以提高模型的性能。
技术实现思路
[0005]本专利技术的目的在于提出一种基于带有闭集噪声和开集噪声标签的鲁棒学习方法,该方法针对数据集中存在闭集噪声和开集噪声的问题,旨在最大限度地减少闭集错误标记示例的负面影响的同时,最大化有用的开集示例对模型学习过程中带来的收
【技术保护点】
【技术特征摘要】
1.基于带有闭集噪声和开集噪声标签的鲁棒学习方法,其特征在于,包括以下步骤:步骤1. 获取带有闭集噪声和开集噪声的数据集 ;其中,D表示由图像x
i
以及对应的噪声标记y
i
组成的数据集,N为D中的样本总数,i=1,
…
,N;步骤2. 开始预训练,并初始化当前预训练次数t0和预训练总次数T0;确定干净样本挑选方法,并初始化干净样本筛选率参数ρ和λ;步骤3. 搭建深度学习模型M0以及损失函数L
ce
;步骤4. 将数据集D中图像x
i
和对应的标记y
i
输入到模型M0进行预训练,训练T0轮,在预训练阶段样本输入模型后获得对应的输出,并结合标记计算出样本的交叉熵损失;步骤5. 判断当前预训练次数t0是否达到预训练总次数T0;若当前预训练次数t0未达到预训练总次数T0,返回步骤4继续训练;否则进行如下处理:对得到的数据集D上所有样本的交叉熵损失从小到大进行升序排列,然后根据干净样本挑选方法选择干净样本参与训练,并为非干净样本打上伪标记;将干净样本作为有监督数据集D
clean
,将非干净样本作为无监督数据集D
dirty
;步骤6. 将干净样本标记与非干净样本的伪标记结合,获得数据集D上的更为精确的标记以及修正记录T,用于下述步骤8中的优化训练阶段;步骤7. 重新搭建深度学习模型M1以及分类损失L
cls
、对比损失L
cont
;其中,分类损失L
cls
用于帮助模型分类,对比损失L
cont
用于帮助模型获得更优的表征学习能力;步骤8. 开始优化训练,并初始化当前训练次数t1和训练总次数T1,利用干净样本生成类别原型;并根据原型做开集决策;并维持一个动量队列;步骤9. 判断当前训练次数t1是否达到训练总次数T1;若当前训练次数t1未达到训练总次数T1,则返回步骤8继续训练;否则转到步骤10;步骤10. 模型训练完成后,得到能够在数据集上执行分类预测任务的深度学习模型M1,利用该训练好的深度学习模型M1对输入图像进行类别预测。2.根据权利要求1所述的基于带有闭集噪声和开集噪声标签的鲁棒学习方法,其特征在于,所述步骤2中,干净样本挑选方法包括CSS以及MHCS样本选择方法。3.根据权利要求1所述的基于带有闭集噪声和开集噪声标签的鲁棒学习方法,其特征在于,所述步骤2中,ρ用于控制每类挑选样本数量均衡,λ为挑选样本的置信度阈值。4.根据权利要求1所述的基于带有闭集噪声和开集噪声标签的鲁棒学习方法,其特征在于,所述步骤4中,深度学习模型M0包括特征提取器F以及分类器G;对深度学习模型M0进行预训练的过程如下:步骤4.1. 将数据集D中的图像x
i
输入特征提取器F中得到高维特征f
i
;其中,f
i
=F(x
i
);步骤4.2. 将高维特征f
i
输入分类器G中,得到类别预测结果p
i
=G(f
i
),再利用交叉熵函数L
ce
计算类别预测结果p
i
和与图像x
i
对应的噪声标记y
i
之间的交叉熵损失l
i
;;其中,p
i
是深度学习模型M0对图像x
i
的类别预测结果;是步骤6中获得的标记中对应
的标记,p
ic
是深度学习模型M0对图像x
i
在类别c上的预测概率值,是步骤6中获得的标记关于图像x
i
的独热编码在类别c上的值,C表示数据集D中的类别总数,c∈[1,C]。5.根据权利要求1所述的基于带有闭集噪声和开集噪声标签的鲁棒学习方法,其特征在于,所述步骤6具体为:利用干净样本训练模型,再对非干净样本打上已知类伪标记,将干净样本的标记以及非干净样本的伪标记结合,记录为数据集D的标记;同时记录样本的标记是否被更改,得到修正记录T,用于表示数据集中每个样本标记是否被修改,其表达式如下:;其中,表示数据集中样本x
i
的修正记录;的取值为0或1;当=0时,表明样本x
i
被视为了干净样本,其标记没被修改;当=1时,表明样本x
i
标记被模型修改过。6.根据权利要求1所述的基于带有闭集噪声和开集噪声标签的鲁棒学习方法,其特征在于,所述步骤7具体为:搭建深度学习模型M1,对于每个输入深度学习模型M1的样本标记对(x, ),通过随机数据增强函数分别生成两个视图,即query视图a1(x)和key视图a2(x);其中,x表示输入模型的样本,表示步骤6中获取的样本对应的标记;再将query视图a1(x)和key视图a2(x)分别送入backbone网络g和backbone网络g'中;其中,网络g后面分别接了一个多层感知机qn和一个分类头ch,网络g'后面接了一个多层感知机kn,从而产生一对L2规范化的嵌入向量q=qn(g(a1(x)))和k=kn(g'(a2(x)));其中,g'是由g动量更新而来,kn是qn由动量更新而来;将qn
·
g称为query分支,将kn
·
g'称为key分支;使用动量更新方法来更新key分支网络;维护一个动量队列queue,按时间顺序存储最近的键嵌入向量,并不断地在训练过程中以先入先出的方式更新该动量队列queue;结合深度学习模型M1当前训练batch中的嵌入向量以及动量队列queue中维护的嵌入向量,得到对比嵌入向量池:A=B
q
∪B
k
∪queue;其中,B
q
和B
k
分别表示对当前训练batch中query视图的嵌入向量和key视图的嵌入向量,A表示B
q
和B
k
以及维护的动量队列的并集;将query视图的嵌入向量简称query嵌入向量,将key视图的嵌入向量简称key嵌入向量;对于样本x,每个样本x输入深度学习模型M1所获得的对比损失由将其query 嵌入向量与对比嵌入向量池A进行对比,以获得监督对比损失。7.根据权利要求6所述的基于带有闭集噪声和开集噪声标签的鲁棒学习方法,其特征在于,所述步骤8具体为:步骤8.1. 将有监督数据集D
clean
中的图像x
i
的弱增强版本a1(x
i
)和强增强版本a2 (x
i
)分别输入query网络和key网络,分别得到q
i
=qn(g(a1 (x
...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。