腾讯优图:带噪学习和协作学习,不完美场景下的神经网络优化策略

2020 年 5 月 15 日 机器之心

机器之心发布

机器之心编辑部

机器之心 CVPR 2020 线上分享第三期,讯优图实验室高级研究员 Louis为我们分享了论文《带噪学习和协作学习:不完美场景下的神经网络优化策略》,本文是对此次分享的回顾与总结。


神经网络的成功建立在大量的干净数据和很深的网络模型基础上。但是在现实场景中数据和模型往往不会特别理想,比如数据层面有误标记的情况,像小狗被标注成狼,而且实际的业务场景讲究时效性,神经网络的层数不能特别深。


腾讯优图不断迭代数据和模型缺陷情况下神经网络的有效训练方法,通过 noisy label learning 和 collaborative learning 技术,实现用比较浅的网络解决 noisy dataset 问题。相关技术已经在腾讯的众多业务场景上(行人重识别,内容审核等)落地。

近日,机器之心 CVPR 2020 线上分享第三期,我们邀请到腾讯优图实验室高级研究员 Louis 为我们分享主题《带噪学习和协作学习:不完美场景下的神经网络优化策略》,细致讲解数据和模型缺陷情况下神经网络的有效训练方法。


点击 「阅读原文」 ,获取此次分享 PPT。

刻画 noisy label 与任务目标

一般来讲,noisy label 是可以通过一个噪音转移矩阵 T 来刻画,也就是 noise transition matrix T。人为设计一个噪音转移矩阵 T,之后如果我们知道这个数据集中 clean label 的分布,将这个分布乘以 T 就可以得到 noisy label 的分布。有了 noisy label 分布和对应的数据集之后,就可以进行很多带噪方法的验证。

接下来用数学描述来刻画一下我们带噪学习的目标。对于一个分类任务,我们的目标可以写成下面的形式,x 和 y 代表样本和对应的 label, 在今天的语境下 F 是神经网络。我们的任务目标是在数据集下优化一个 loss function,使得在 noisy label 下训练得到的解,在性能上接近在 clean label 下训练得到的解,那么数学表达就是,f ̃是 f 的一个子集。


各显神通,主要带噪学习方法探索

关于带噪学习,近些年有一些重要论文。

NeurlPS 2018 上的一篇论文 (Generalized Cross Entropy Loss Training Deep Neural Networks with Noisy Labels) 提出GCE loss(Generalized Cross Entropy loss)。它的背景是,MAE 以均等分配的方式处理各个 sample,而 CE(cross entropy)会向识别困难的 sample 倾斜,因此针对 noisy label,MAE 比 CE 更加鲁棒,但是 CE 的准确度更高,拟合也更快。于是这篇文章提出 GCE loss,结合 MAE 与 CE 二者的优势。

还有的论文 (LDMI: A Novel Information-theoretic Loss Function for Training Deep Nets Robust to Label Noise, NeurlPS 2019)是基于信息论设计的 loss function,Deterministic information loss。它的 Motivation 是想寻找一个信息测度(information measure)I。假设在 I 下任意存在两个分类器 f、f',如果在噪音数据集下,通过 I, f 比 f'表现得更好,那么在干净数据集下,f 比 f'表现得也好,也就是说它在噪音数据集和干净数据集上满足一致性。如果在噪音数据集下它表现得好,通过一致性,在干净数据集下表现得也一定很好。

把时间往前推进一下,讲一些目前正在审稿中的文章 (Peer Loss Functions: Learning from Noisy Labels without Knowing Noise Rates (under review);Loss with Paired Samples: A Robust Learning Approach that Adapts to Label Noise (under review),关于 Peer loss。Peer loss 是由两个 loss function 的加权得到的,比如 l1, l2。α是一个超参数,衡量两个 loss 的权重大小。l1、l2 可以是任何分类导向的 loss function,比如 CE、MSE、MAE 都行。Loss 的构造主要是在于样本的构造上,我们看 l1 的样本,Xi 对应就是数据集中原始的样本和对应的 label。


为什么 peer loss 可以很好地解决 noisy label 问题?为了方便,这里先把 l1、l2 都定义成 CE loss,那么在第一项,它表现的像 positive learning,因为它就是一个传统的 CE function,而在第二项,它像 negative learning,也就是在标记错的时候,比如把狗标成汽车,如果用 positive learning 进行学习的话那就出现问题了,它是随机从一个 label 中进行抽取,希望让模型学到它不是一个鸟,狗不是一个鸟,它的语义关系首先是成立的,是正确的,这样一来,第二项对模型也能起到一个积极的导向作用。


更加有意思的是,单独训练第一项和单独训练第二项都不可能使模型达到理论上的最优,因为模型存在 noisy label。但是我们证明了它们两项联合训练,在统计上是可以让模型达到最优。

文章提出了一个主要定理,就是 noise 鲁棒性,我们证明了存在一个最优的超参数α,用 peer loss 在 noisy label 下进行优化,它得出的神经网络的解等价于用 l1 在 clean label 下进行优化,可以把 l1 理解成 CE loss。所以我们理论证明了 peer loss 的最优性。

看一下 peer loss 在数值方面的结果,这里使用的数据集是 CIFAR-10,存在着 40% 的 uniform noise,就是 symmetric noise。图中的蓝色代表 clean label 分布,橘黄色代表 noisy label 分布。通过 peer loss 优化后,我们画一下 clean label 和 noisy label 的分布,可以看到我们的网络把这两个完全分开了,证明 peer loss 是非常有效的。


接下来,在各个数据集上衡量 peer loss 的表现,我们在 MNIST、Fashion MNIST、CIFAR-10 上进行了实验,可以看到 MNIST 和 Fashion MNIST 上,用 peer loss 优化的结果超过了一些其他的结果,包括 DMI 的结果三四十个点,这是非常大的进步。在 CIFAR-10 上也超过将近 5 个点,四个多点左右这样的一个结果。而且,我们发现 peer loss 尤其对 Sparse,High 这种 noise type 表现得特别明显。


以上讲的方法主要是设计 loss function 的思路,让网络能够抵抗 noisy label。但其实还有很多其他方法,比如 samples selection 和 label correction,这两个方法是通过选择样本和对样本进行纠正来进行带噪学习训练。发表在 NeurlPS 2018 上的这篇论文 (Co-teaching: Robust Training of Deep Neural Networks with Extremely Noisy Labels) 就是关于 Co-teaching 的。它的基本假设是认为 noisy label 的 loss 要比 clean label 的要大,于是它并行地训练了两个神经网络 A 和 B,在每一个 Mini-batch 训练的过程中,每一个神经网络把它认为 loss 比较小的样本,送给它其另外一个网络,这样不断进行迭代训练。

接下来介绍腾讯优图在 2019 年底发表的一篇文章(Asymmetric Co-Teaching for Unsupervised Cross-Domain Person Re-Identification),解决一类特殊的 label noise。这类 label noise 不是人为标注产生的,而是在训练中产生,在模型的聚类过程中产生的。比如说有这样一批没有标记的样本,然后通过一个聚类算法得到 inliers 和 outliers,outliers 是聚类算法中认为这一点是孤立点或者是噪音点,它没法归到聚类算法的 ID 里面,就叫做 outliers,inliers 是聚类算法对这些样本进行聚类后得到一个个 cluster,但每一个 cluster 里面可能存在 noise。

腾讯优图提出了一个框架,叫 Asymmetric Co-teaching。因为聚类中存在 inlier 和 outliers,这两个不同源,所以用非对称的思想去解决 noise label 的问题。

具体来说,首先有很多 Target Data,经过模型聚类得到 Inliers 和 Outliers。然后通过 k 近邻将 outliers 进行 label。下面一步是比较关键的,和 Co-teaching 一样,我们也并行训练两个神经网络 C 和 M,但是我们往 C 和 M 送到的样本是非同源的,一个 inlier 一个 outliers。然后 C 和 M 互相发送他们认为 loss 比较小的样本进行迭代训练。每次训练之后,再进行聚类。不断重复这种迭代过程,最后我们发现 outliers 越来越少,Inlier 也是越来越多,Inlier 每个 ID 的 noise 也是越来越少。


Asymmetric Co-teaching 的结果不错,我们主要是在行人重识别这个问题上衡量方法的有效性,也就是 ReID。可以看我们这个 clustering-based 的方法在 Market 和 Duke 数据集中有不错的表现,比之前的一些方法也多了五六个点。

总结一下,关于 noise label 前面主要介绍了七个方法,这些方法可以归为 Feature independent noise 和 Feature dependent noise。值得注意的是,并不是一个方法去解决 Feature independent noise 就无法解决 Feature dependent noise,只是说一个方法它更适用于解决哪个问题。标线框的这两个是我们腾讯优图的工作。

我的介绍非常有限,如果你感兴趣希望读更多的研究,可以访问这个网址,里面有更多关于 noisy label learining 的文章: https://github.com/subeeshvasu/Awesome-Learning-with-Label-Noise


激活无效滤波器,提升神经网络性能

关于协作学习其实学术界没有统一的定义,一般来讲只要是多个模型互相协作,去解决一个或者多个任务,那就可以把这种学习范式叫做协作学习。

按照任务分,协作学习可以分成两个:一个是解决多个任务,有 dual learning 和 cooperative learning;一个是多个模型一起协作解决一个任务。因为 dual learning 和 cooperative learning 主要是解决自然语言处理的问题,自然语言处理涉及到比如说中文翻译成英文,英文翻译成中文,这是一个两个任务,是多个任务。我们这里主要是讲 CV 方面,所以说我们主要讲解决一个任务,接下来会介绍 co-training、deep mutual learning、filter grafting 和 DGD 这几个工作。


关于 Co-training 的这篇文章 Combining labeled and unlabeled data with co-training,非常古老,是 1998 年的,但是它的引用量已经好几千,它其实是解决了半监督的问题。

发表在 CVPR 2018 年的一篇论文 deep mutual learning。它的思想极其简单,我们都知道蒸馏的时候 teacher 是 fixed,然后对于学生进行监督,这篇文章的思想就是在蒸馏的过程中老师并不保持 fixed,也进行迭代的训练操作,也就是说老师教学生,学生也教老师。

时间再拉近一点,这是今年腾讯优图中稿 CVPR 2020 年的一篇文章(Filter Grafting for Deep Neural Networks)。这篇文章的 motivation 是什么呢?我们知道训练好的神经网络存在很多无效的 filter,filter pruning 技术主要对无效的滤波器进行移除使网络的推理速度增加。

与 pruning 相反,在这篇文章中,我们提出滤波器嫁接(filter grafting)技术。我们并不是移除网络的无效滤波器,而是将其他网络的有效滤波器的参数嫁接到无效滤波器上,通过引入外部信息的方法来激活无效滤波器,让它们重新变得有价值起来,来进一步提高网络的表达能力。

这篇文章有一个非常重要的发现是什么呢?我们训练的神经网络如果在初始化的时候不一样,在训练完之后,无效 filter 的位置是统计无关的。整个我们可以并行训练多个网络,多个网络之间互相进行这种操作,结束训练之后每个神经网络都会有更好的特征表达,而且测试的时候准确率性能也会更好。


可以看一下这个结果,对于在 CIFAR-10、CIFAR-100 上进行的实验,与 mutual learning、传统的 distillation、还有 RePr 相比较,Filter Grafting 效果还是不错的,对于一些大网络,特别是对于 CIFAR-100 有两个点的提升。


Grafting 是可以有效提高无效 filter,但是可能有效 filter 的信息量会减少。这篇还在审稿中的文章 DGD: Densifying the Knowledge of Neural Networks with Filter Grafting and Knowledge Distillation 是关于我们的新发现,就是传统的蒸馏可以解决这个问题,这是这篇文章的贡献。

我们在做 grafting 加权的时候,比如说 M1 和 M2 进行加权,M1 的 layer1 加到 M2 的 layer1 上面,虽然填补了 M2 中无效 filter 的空虚,但是 M2 有效 filter 可能也会受到影响。因为 M1 它本身也有无效 filter,它直接加到 M2 上,M2 的有效 filter 的信息量可能会减少,所以说我们就做了这样一个 DGD framework。


看一下 DGD framework 的结果。我们对比了传统的 filter grafting,还有 knowledge distillation,发现比 grafting distillation 都有不错的提升,比如在 CIFAR-100 上,各个网络基本都会比 baseline 提升两到三个点。


待解难题:如何进行更有效的滤波器嫁接

前面讲的是 noise label learning 和 collaborative leaning,那么基于这两个可以做什么呢?

第一个是设计一些 feature dependent noise 的 loss 形式。因为我认为现在对于 noisy label learning 领域,feature independent noise 可能解决得差不多了,准确率都很高了,接下来一个主要的点就是设计一些 loss 方式来解决 feature dependent 问题。而且,这个问题是真实的业务场景、真实的数据集上的 noise type 形式。

第二个是,我们知道 grafting 的 motivation 是来自于 pruning,那么我们是否可以用 grafting 的一些思想去指导神经网络来进行更有效的 pruning,这是一些未来大家有兴趣可以探索的一个点。

Q&A 精选

:主动学习和 noisy label learning 都涉及到选择数据,两者的区别是什么?

答:的确两者都涉及选择数据,但是关键在于要选择什么样的数据,选择数据的评价标准可能不太一样。noisy label learning 想选择干净的数据,而主动学习是想选择对解决的问题有效的数据。

这些选择方式和数据的分布息息相关的,也就是说我们讲各种算法的同时要了解数据的分布,抛开数据的分布去研究算法有时候是没有任何价值的。对于主动学习来讲,在数据集的分布不均匀的时候,要选择 loss 比较大的样本,这和 noisy label learning 有点相反,noisy label learning 是要选择 loss 比较小的样本。

问:noisy label 对自动标注数据有用吗?

答:这个是有用的,包括现在一些业务场景,我们用一些方法筛选出来哪些数据是值得标的,或者说我们通过 noisy label 的一些方法将 noisy label 的样本先检测出来,之后再进行有效的中心标注,所以 noisy label 对自动标注数据还是有业务价值的。

问:grafting 对于小型 network 的效果如何?

答:其实我们在做很多实验的过程中发现,grafting 对小型网络的提升是没有对于大型网络的提升高。因为无效 filter 的数量很可能出现在大型网络上的比较多,小型网络无效 filter 的数量比较少,我们的实验结果可以看到 grafting 是在大的数据网络上效果是比较明显的。

文为机器之心发布,转载请联系本公众号获得授权
✄------------------------------------------------
加入机器之心(全职记者 / 实习生):hr@jiqizhixin.com
投稿或寻求报道:content @jiqizhixin.com
广告 & 商务合作:bd@jiqizhixin.com
登录查看更多
0

相关内容

少标签数据学习,54页ppt
专知会员服务
192+阅读 · 2020年5月22日
【CVPR2020-百度】用于视觉识别的门控信道变换
专知会员服务
12+阅读 · 2020年3月30日
深度强化学习策略梯度教程,53页ppt
专知会员服务
175+阅读 · 2020年2月1日
专知会员服务
84+阅读 · 2020年1月20日
【斯坦福&Google】面向机器人的机器学习,63页PPT
专知会员服务
23+阅读 · 2019年11月19日
目标检测中边界框的回归策略
极市平台
17+阅读 · 2019年9月8日
真正的神经网络,敢于不学习权重
极市平台
4+阅读 · 2019年6月14日
【学界】虚拟对抗训练:一种新颖的半监督学习正则化方法
GAN生成式对抗网络
10+阅读 · 2019年6月9日
虚拟对抗训练:一种新颖的半监督学习正则化方法
人工智能前沿讲习班
8+阅读 · 2019年6月9日
深入机器学习系列之:高斯混合模型
数据猿
6+阅读 · 2019年1月10日
【学界】基于平行视觉的特定场景下行人检测
GAN生成式对抗网络
6+阅读 · 2018年1月15日
干货|浅谈神经网络中激活函数的设计
机器学习研究会
5+阅读 · 2017年10月28日
Arxiv
6+阅读 · 2018年3月12日
Arxiv
7+阅读 · 2018年1月21日
Arxiv
12+阅读 · 2018年1月12日
VIP会员
相关资讯
目标检测中边界框的回归策略
极市平台
17+阅读 · 2019年9月8日
真正的神经网络,敢于不学习权重
极市平台
4+阅读 · 2019年6月14日
【学界】虚拟对抗训练:一种新颖的半监督学习正则化方法
GAN生成式对抗网络
10+阅读 · 2019年6月9日
虚拟对抗训练:一种新颖的半监督学习正则化方法
人工智能前沿讲习班
8+阅读 · 2019年6月9日
深入机器学习系列之:高斯混合模型
数据猿
6+阅读 · 2019年1月10日
【学界】基于平行视觉的特定场景下行人检测
GAN生成式对抗网络
6+阅读 · 2018年1月15日
干货|浅谈神经网络中激活函数的设计
机器学习研究会
5+阅读 · 2017年10月28日
相关论文
Arxiv
6+阅读 · 2018年3月12日
Arxiv
7+阅读 · 2018年1月21日
Arxiv
12+阅读 · 2018年1月12日
Top
微信扫码咨询专知VIP会员