原文:论文阅读学习 - CurriculumNet: Weakly Supervised Learning from Large-Scale Web Images - AIUAI
论文:CurriculumNet: Weakly Supervised Learning from Large-Scale Web Images - ECCV2018 作者:Sheng Guo, Weilin Huang, Haozhi Zhang, Chenfan Zhuang, Dengke Dong, Matthew R. Scott, Dinglong Huang 团队:码隆科技 实现:<Github - research-curriculumnet - Caffe>
有效的处理大规模网络图像数据集中存在大量噪声标签和数据不均衡的问题.
基于课程学习的思想,其类似于人类的学习过程,模型从简单的问题开始学起,然后逐渐学习越来越复杂的任务问题.
CurriculumNet 中设计了一种无监督课程学习方法,如图 Fig.2,逐渐的增加噪声标签数据的数据量. 主要包括三步:
[1] - 初始特征生成(initial features generation);
首先,采用全部的训练数据,学习初始模型;然后,利用训练的模型计算训练数据集中每一张图像的深度特征表示(如,FC 层输出特征).
[2] - 课程设计(curriculum design);
训练的初始模型旨在粗略地将训练图像映射到特征空间,以挖掘每一类别内图像的潜在结构及潜在关系; 其提供了定义图像复杂度的有效方法.
对定义的图像复杂度进行分析,以设计学习课程. 其中,每一类别内所有图像,根据复杂度次序,被划分为多个子集.
[3] - 课程学习(curriculum learning).
基于设计的课程,进行课程学习. 即,
首先从包含全部类别的简单数据子集开始训练 CNNs 模型. 这里,假设在简单数据子集中包含更多的准确标签的干净图像.
然后,在训练过程中逐渐连续的添加复杂度越来越高的数据,来提升模型的识别能力.
Curriculum Learning - ICML2009 Yoshua Bengio
设计课程学习的目标是:能够以无监督的方式对训练图像由简单到复杂进行排序.
这里,采用基于密度聚类算法(density based clustering algorithm),根据数据分布密度(data distribution density) 评估训练样本的复杂度.
具体地,将全部训练数据集划分为多个数据子集,并将数据子集由简单到复杂进行排名,其中简单数据子集中包含更多标签更可靠的干净图像;而复杂数据子集则包含更多大量的噪声标签.
Clustering by fast search and find of density peaks - 2014Science
根据基于密度聚类算法,对每一类别图像数据集进行处理.
[1] - 首先,对全部训练数据集训练 Inception_V2 模型,作为初始模型;
对于每一类的图像数据集,生成三个聚类,并将每个聚类的图像作为数据子集.
由于,每个聚类都包含一个密度值来度量其数据分布,以及不同聚类间的关系(relationship). 因此,很容易定义每个数据子集的复杂度,给定课程学习的设计规则.
具有高密度值的数据子集中,所有的图像在特征空间中更彼此接近,表明这些图像具有更强的相似性. 故,定义该数据子集为干净的,具有更多正确的类别标签;
具有低密度值的数据子集中,所有的图像具有较大的视觉表征差异性,其可能包含更多不正确标签的不相关图像. 故,定义该数据子集为噪声的.
此时,既可以得到三个复杂度不同的数据子集:clean, noisy, highly noisy. 每个图像类别包含相同的数据子集数,将其所有图像类组合为最终的课程学习数据集. 如图 Fig.3(左)
设计的课程能够以无监督的方式,基于图像的视觉表征来挖掘潜在的数据结构.
这里,设计 multi-stage 学习方案,如图 Fig.3(右). 通过连续地混合从干净数据子集到高度噪声数据子集的三个阶段,训练 CNN 模型.
[1] - 首先,仅基于干净数据子集训练 Inception_V2 模型,其中,数据子集中,每一类别图像具有更接近的视觉表征,有助于模型学习图像的基本的,及干净的视觉信息,以作为后续处理的基础特征.
[2] - [1] 中 Inception_V2 模型训练收敛后,添加噪声数据,继续学习过程. 此时,图像包含更明显的视觉差异性,使得模型能够学习困难样本的更有意义和判别性更强的特征.
虽然噪声数据包含不正确的类别标签,但其仍粗略的保持着数据的主要结构,故有助于模型能力提升.
[3] - 继续添加 highly noisy 的噪声数据,进一步训练模型. highly noisy 的数据集中包含大量的类别标签不正确的视觉不相关图像.
前两个阶段 [1] 和 [2] 课程学习的深度特征能够挖掘数据的主要潜在结构.
论文作者发现,highly noisy 的数据子集并没有对学习的数据结构产生负面影响. 相反,其可以提高模型的泛化能力,使提供一种正则化方式,使得模型避免对于干净数据出现过拟合.
当最终模型训练收敛后,三个数据子集均被利用.
此外,在训练时,对于不同数据子集的样本,在 [2] 和 [3] 阶段的训练,设置类不同的 loss 权重,对于 clean, noisy 和 highly noisy 数据子集,权重分别为 1, 0.5, 0.5.
数据集:WebVision Datasets.
网络模型:Inception with batchnormalization(bn-inception).
训练参数:
对于 WebVision 数据集,存在严重的数据不均衡问题. 例如,对于很多大类别的图像数据样本超过 10000 张,而对于小类别的图像数据样本少于 400 张.
直接采用 CNN 模型进行训练,会导致模型偏向于样本较多的大类别.
对此,这里提出 two-level 数据均衡方法:subset-level balance 和 category-level balance.
[1] - subset-level balance
每个 mini-batch 中,对于 stage 1-3,训练样本的选择分别为:(256, 0, 0), (128, 128, 0) 和 (128, 64, 64).
[2] - category-level balance
每个 mini-batch 中,首先从 1000 个类别随机选择 256(stage1),128(stage 2 和 3) 个类别;然后,对于每个选择的类别,仅随机选取其中的一个样本.
注:category-level balance 仅在干净的数据子集上进行. 在噪声数据子集上进行时,模型表现会下降. 因为,从每一类别图像中随机选取一个样本,其很可能得到单个,但完全不相关的样本,其对于模型训练有负面影响.
在网络的第一个卷积层,采用了三种不同 kernel 尺寸:5x5, 7x7, 9x9. 然后,将三种 kernel 得到的卷积 maps 进行组合,以得到第一个卷积层的最终输出 feature maps.
Multi-scale 卷积核有助于在第一层增强 low-level 的特征,在 WebVision 数据上的 top-5 errors 有 0.5% 的精度提升.
基于 Inception_V2 模型,尝试了四种不同的训练策略:
[1] - Model-A - 直接在整个训练数据集进行模型训练;
[2] - Model-B - 仅在干净的数据子集进行模型训练;
[3] - Model-C - 采用提出的课程学习策略进行模型训练,只采用 2-subset 数据子集课程学习,clean
和 noisy
数据子集.
[4] - Model-D - 采用提出的课程学习策略进行模型训练,采用 3-subset 数据子集课程学习,clean
,noisy
和 highly noisy
数据子集.
Fig 4(右).
六种模型的集成结果.
Inception v2, Inception v3, Inception v4,Inception resnet v2模型.