内容简介:我们日常进行的大多数图像搜索行为,获取的结果中都充满了噪声。比如,当你搜索“酒”的时候,可能就会发现一些奇怪的东西……这样搜索出的数据集,要用来训练一个识别“酒”的模型,在大多数人的认知里是很难的。因为要训练出一个高性能的 CNN 模型,需要大批量经过人工标注的纯净数据。所谓“人工智能”的“先人工,后智能”,前期大规模的人力和时间投入都在对图像的人工标注上。而尤其在需要比较专业的数据集时,无论是图片收集还是人工标注,都需要相当的专业知识作为支撑。
我们日常进行的大多数图像搜索行为,获取的结果中都充满了噪声。比如,当你搜索“酒”的时候,可能就会发现一些奇怪的东西……
这样搜索出的数据集,要用来训练一个识别“酒”的模型,在大多数人的认知里是很难的。因为要训练出一个高性能的 CNN 模型,需要大批量经过人工标注的纯净数据。所谓“人工智能”的“先人工,后智能”,前期大规模的人力和时间投入都在对图像的人工标注上。而尤其在需要比较专业的数据集时,无论是图片收集还是人工标注,都需要相当的专业知识作为支撑。
对此,码隆科技创新地提出了“弱监督学习”算法 CurriculumNet,在数据没有或者只有少量人工标注和清洗的情况下,仍然能利用这些噪声数据训练出一个高性能的深度学习模型。在包括WebVision、ImageNet、Clothing-1M 和 Food-101 的四项基准测试中,码隆的方法都获得了最优的性能。该论文发表于最近的 ECCV 2018。
目录
1 摘要
2 引言
3 方法介绍
4 实验
4.1 实验数据集
4.2 实验结果
5 总结
1、 摘要
我们提出一种简单且有效的弱监督学习方法,它能够在大规模的互联网图像上训练高性能的深度卷积神经网络。这些互联网图像是通过使用粗略地文本查询从互联网上抓取的,且没有任何人工清洗或者标注。我们在课程学习的理论基础上设计了一种新的学习策略,能够有效处理这些含有大量带错误标签的互联网图片数据。我们通过使用特征空间中的分布密度评估数据的复杂性来设计新的学习课程,并以无监督的方式对这些数据按照复杂性进行排序。这样就可以在大规模网络图像中有效地实施课程学习,从而训练一个高性能的 CNN 模型,有效地降低噪音标签数据的负面影响。更重要的是,我们通过实验证明,那些含有大量噪声标签的图像数据可以被看成一种正则化,用来提高 CNN 模型的泛化能力。
我们的方法在四个基准数据库的测试中都获得了最优的性能,包括 WebVision、ImageNet、Clothing-1M 和 Food-101。对于多种模型的融合,我们在 1000 种类别图像分类任务的 WebVision 2017 挑战赛中以 5.2% 的 Top-5 错误率获得了冠军。这个成绩比第二名高出 2.5%,优势明显。
2、 引言
深度卷积网络正在促进许多计算机视觉任务的快速发展,并且在图像分类、目标检测、语义分割等方向取得非常好的效果。之前的方法都是利用全监督学习方法来学习大规模人工标注的数据,如ImageNet、MS-COCO 和 PASCAL VOC 等,从而使网络学习到强大的深度视觉特征。 因此,大规模且经过人工标注的纯净数据对于训练一个高性能 CNN 模型是至关重要的。但是,获取大量且干净的标注数据是非常昂贵且耗时,这使得深度模型的能力受到数据集大小的制约。另外,对于一些比较专业的数据集的收集和标注是非常困难的,它对标注者的专业知识有一定的要求,而且由于不同标注者的之间思维差异性,他们所提供的标签可能不一致。
一种常用的解决方案是使用网络作为数据和监督的来源,通过输入查询信息(如文本信息),可以从互联网自动收集大量网络图像。这些查询信息可被视为图像的自然标签并对收集的数据提供弱监督信息,这是一种近乎可以无限增加数据集规模的低成本方法。但是,这些标注是非常不可靠的,并且通常包含大量错误的标签。过去的工作表明,这些噪声标签可能会严重影响深度神经网络在图像分类上的性能。
另一种解决方案是设计噪声清理方法,旨在消除或纠正训练数据中样本的错误标注。 然而,噪声清理方法经常会遇到难以区分噪声样本与难样本的问题,而难样本对于提高模型性能是至关重要的。此外,半监督学习方法则通过使用少量手动标记的数据,然后将在该少量数据上训练的模型推广到没有人工标注的大数据集。
与这些方法不同,我们的方法不去清除或者矫正这些错误标签。 相反,我们通过设计新的学习训练策略来提升标准卷积神经网络模型的性能。
在这项工作中,我们研究卷积网络如何从含有大量噪声标签的大规模图像中学习高性能深度学习模型的问题,例如 WebVision 2017 挑战赛,这是一个与ImageNet类别相同的 1000 类图像识别任务,但标签仅由ImageNet的 1,000 个语义概念生成的查询文本提供,没有任何人工清理和标注。 图 1 给出了几个图像和类别示例。
图 1 来自于 WebVision 数据集的四个类图像样:Carton、Dog、Taxi 和 Banana
我们的目标是提供一种能够有效处理大量噪音标签和数据不平衡的解决方案。在训练图像的数量足够大的情况下,我们设计了一系列实验来研究噪声标签对深度网络性能的影响。我们设计一个简单且非常高效的训练策略,它能够利用含有大量噪声的标签来提高卷积神经网络模型的泛化能力和识别性能。我们从实验发现,在使用我们的方法时,同时使用干净和含有噪声的数据来训练 CNN, 比仅使用干净的数据来训的效果要好。
这项工作的主要贡献有以下三点:
(1) 我们利用课程学习原理,提出 CurriculumNet 模型。 这使我们能够利用含有大量噪声标签的网络图像来训练高性能 CNN 图片识别模型,这些标签是在没有任何人工标注和清理的情况下获得的。
(2) 我们通过使用分布密度聚类算法,以无监督的方式对数据复杂性进行排序,并以此来设计一个新的学习课程。这可以通过直接探索含有大量噪声的标签来有效实施针对此任务的课程学习。
(3) 我们设计的CurriculumNet很多公开基准数据集上进行实验和测试。这些公开数据集包括WebVision、ImageNet、Clothing1M 和 Food101。CurriculumNet 在这几个评测集上都获得了最优的识别结果。 最近,用CurriculumNet 的方法训练多个模型,在多种模型组合的情况下,我们以 5.2% 的 Top-5 错误率在 CVPR 2017 的 WebVision 挑战赛上获得最佳性能,并且结果大幅超越其他参赛队伍。
3、 方法介绍
我们的流程如图 2 所示。它包含三个主要步骤:(i)初始特征生成;(ii)课程结构设计;(iii)课程学习。 首先,我们使用整个训练数据库来学习一个初始模型,然后用它来提取训练集中每张图像的深度表示 [ 例如,全链接层(Fully-Connected Layer)特征 ]。这个初始模型旨在粗略地将所有训练集图像映射到某个特征空间,可以发现每个类别中图像在特征空间中潜在的结构和关系,从而提供了一种定义图像复杂性或者标注准确性的方法。我们通过这种定义的复杂性规则来设计课程学习的策略和流程,其中每个类别的所有图像都按照不同的复杂程度排列成多个子集(比如,3个子集在我们的实验中)。
在设计好的课程的基础上,我们采用课程学习的方法来训练CNN分类模型。 首先,我们从一个简单的子集开始训练 CNN,这个子集是通过我们复杂性规则定义出来相对干净的数据。然后,通过逐渐增加复杂度越来越高的数据到训练过程中,来不断提升模型的性能。
图 2
课程学习方法最初是 Bengio 在 2009 年提出的,它最近被应用于处理噪声等异常情况。这种学习想法的主要作用之一是为我们的任务设计一个高效的课程。设计的课程应该能够发现有意义的大规模噪声数据的局部结构,我们的目标是设计一个有效的课程,能够以无监督学习的方式将训练图像按照从简单到复杂的顺序排列在特定的特征空间中。我们应用基于密度的聚类算法,使用数据分布密度来评价训练样本的复杂性。这与之前开发的用于处理小规模或中等规模数据集中的噪声标签的方法不同,我们设计了一种新的课程结构,让我们的训练策略可以应用于标准的 CNN 架构,在大规模图像数据集上获得很好的性能,例如,WebVision 数据库包含超过 2,400,000 张带有大量错误标签的网络图像。
具体而言,我们的目标是将整个训练集分割成多个子集,这些子集从具有干净的图像和更可靠标签的简单子集到包含大量含噪声或者错误标签的图像进行排序。 受到最近一些聚类算法的启发,我们在数据库的每个类别中执行以下步骤。
我们使用初始模型的全连接层特征将每个类别中的所有图像投影到一个深度特征间,这是一个在整个训练集上训练的 Inception\_v2 结构,对每张图像计算 ,然后我们计算欧几里得距离矩阵 按照:
其中 n 是当前类别的图像数量, 表示 和 的相似度(一个较小的 意味着 和 相似度更大)。然后我们对每张图的特征 计算局部密度 :
其中
其中为了确定 首先将 个在 中的距离从小到大排序,然后选择排在第 k% 的数作为 。当 k 介于 50 到 70 之间时结果不受影响,我们在之后的所有实验中根据经验固定 k=60。 是与 i 的距离小于 的样本个数。假设一组具有正确标签的干净图像通常具有相似的视觉外观,并且这些图像被映射成彼此紧密靠近,这就自然地形成了一个较大的局部密度。 相反,噪声图像通常具有显着的视觉多样性,那么它们就形成了密度值较小的稀疏分布。
然后我们对每个图像特征 定义一个距离 :
如果存在一个特征 使 , 等于 其中 是在所有数据中距离 i 最近的,如果 是所有密度中的最大值, 是 i 和距离 i 最远点之间的距离。并且具有最大局部密度的点就具有最大的 ,这个点被选为这一类的聚类中心。由于我们已经计算出该类别的聚类中心,因此与聚类中心的数据点越近,拥有正确标签的置信度就越高。因此,我们简单地进行 k 均值算法,根据数据点到聚类中心的距离 ,将数据点分成若干簇,其中 c 是聚类中心。图 3 是来自 WebVision 数据集 中Cat 的类别的所有图像的 图。
图 3 来自 WebVision 数据集的 Cat 类别中所有图像的 图
在我们的实验中,每个类别都生成三个聚类,并将每个聚类中的图像用作子数据集。由于每个聚类都有一个密度值来衡量其内的数据分布,以及不同聚类之间的关系。这很自然地提供了一种直接的方式来定义子集的复杂性,为设计课程结构提供了一个简单的规则。首先,具有高密度值的子集表示所有图像在特征空间中彼此接近,说明这些图像具有高度的统一性。我们假设这个子集中大多数标签是正确的,并将这个子集定义为干净数据。其次,密度值较小的子集意味着图像的视觉特征差异较大,这可能包括很多与这个类别不太相关的图像。这个子集被认为是噪声数据,通常含有大量的错误标签。因此,我们在每个类别中生成三个子集,按照干净、噪声到高噪声排列,数据的复杂程度越来越高。每个类别都有相同数量的子集,我们将它们组合到所有类别中,这就形成了我们的最终课程结构,在干净、嘈杂和高度嘈杂的子集上依次训练。图 3 显示来自 WebVision 2017 数据集中猫类别的三个子集的数据分布,以及样本图像。可以发现,来自干净子集的图像具有非常相近的视觉特征,而高度嘈杂的子集包含许多与干净子集完全不同的随机图像。
深度学习的过程通过遵循数据本身的结构来执行。 设计的课程结构能够以无监督的方式发现基于视觉特征的基础数据结构。 我们设计了一种依赖于这种直觉的学习策略:学习和训练任务按难度越来越大排序,深度学习模型在轻松的任务得到处理后,才再进入训练更困难的任务。 我们设计一个多阶段的学习策略,可以有效地训练标准的神经网络,并且增强了处理大量错误标签的能力。
图 4 课程学习模型训练流程图
图 4 描述了课程学习的详细过程,整个模型训练过程通过逐渐增加训练子集的数据复杂度,分三个阶段进行训练。
首先,使用标准的CNN结构,例如 Inception_v2。该模型开始仅使用干净的数据子集进行训练,每个类别中的图像都具有非常相近的视觉特征。这使得模型可以从每个类别中学习基本且清晰的视觉信息,为之后的训练过程提供基本模型。
其次,当第一阶段训练的模型收敛后,我们通过添加具有更强视觉多样性的噪声数据来继续模型的训练,允许模型从难样本中学习具有更强区别性的视觉特征。虽然噪声数据可能包含不正确的标签,但它大致保留了数据的主要结构,并且难样本通常含有更强的差异性特征,从而提升模型性能。
再次,使用包含大量不正确标签,且视觉不太相关图像的高噪声数据来进一步训练该模型。通过前两阶段的训练,模型能够学到深层特征已经能够捕捉数据的基本结构。我们观察到,在最后阶段添加的高噪声子集数据不但不会对学习的数据结构产生负面影响。相反,它提高了模型的泛化能力,并且通过正则化的方式避免模型对干净数据的过度拟合。第三阶段训练收敛后,获得最终的深度模型。
4、实验
4.1 实验数据集
我们在四个公开数据集上评估了我们的方法。这四个数据集分别为 WebVision、Clothing 1M、Food101 和ImageNet。在我们的实验中,我们采用BN-Inception 网络结构作为我们 CurriiculumNet 的基准网络结构。我们在 BN-Inception 上比较了 多种训练方案的性能。 此外,我们将 CurriculumNet 的性能 与最新的学术方法进行了比较,其中包括 CleanNet、FoodNet 和 MentorNet,这些方法基本都是研究怎么从噪音标签数据中训练高性能 CNN 模型。
4.2 实验结果
我们在四个标准的数据集进行了实验来验证我们的 CurriculumNet 性能,并与当前其他方法最好的结果进行了对比。其中 为了验证我们 CurriculumNet 处理噪声数据的能力,我们将 Food101 中 20%的样本标签重构成噪声标签。实验结果如表 1,可以发现我们的 CurriculumNet 在与其他方法对比的时候有明显优势。
表 1 我们在四个公开数据集中的实验结果
为了验证我们这个方法在更大数据集上的性能,我们将 WebVision 和ImageNet两个数据库合并成一个包含 300 万以上样本的噪声数据。我们在这个合并数据库上验证我们的 CurriculumNet 性能。实验结果如表 2 所示,CurriculumNet 不仅在 WebVision 这种噪声数据集上获得很好的性能,在 WebVision+ImageNet这种加入大量标注数据以后的数据集也有不错的效果。
表 2 我们探讨模型在 WebVision 和ImageNet上合集的效果
5、总结
我们提出了一种新的训练策略 CurriculumNet,它能够在大规模没有人工标注的弱监督数据集上训练出高识别率的 CNN 模型。我们利用课程学习的思想,提出了利用聚类密度测量数据复杂度的新型学习策略。我们通过实验表明,我们所提出的方法 CurriculumNet 具有强大的能力来处理大量噪声标签数据。该方法不仅减小了噪声标签的负面影响,还能利用高噪声数据来提高模型泛化能力。我们提出的 CurriculumNet 在 WebVision、ImageNet、Clothing 1M 和 Food-101 四个基准数据集上实现了当前最好的识别结果。我们方法通过模型融合在 WebVision Challenge 2017 中获得了 5.2%的 Top 5 错误率,其性能大大优于其他参赛队伍。
以上所述就是小编给大家介绍的《CurriculumNet:基于大规模网络图像的弱监督学习算法》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 直面算法霸权:大规模造福工具还是大规模杀伤性武器?
- 如何优化大规模推荐?下一代算法技术 JTM 来了
- 从算法到工程,解读阿里巴巴大规模图表征学习框架Euler
- 实战大规模敏捷
- 大规模微服务实战经验
- 大规模知识图谱数据存储实战
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
VISUAL BASIC 6.0 WINDOWS API讲座
王国荣 / 人民邮电出版社 / 1999-06-01 / 76.00元
本书全面介绍了在Visual Basic 6.0中如何调用Windows API的技术,特别是结合读者在应用中经常遇到的具体问题编写了许多应用范例,书中还给出了API函数的速查表。本书主要内容包括: Windows API的基本概念和调用方法,资源文件的使用,Windows的消息系统及其应用,API在绘图中的应用,多媒体文件的播放,特殊命令按钮的制作等。 本书适用于已熟悉Visual Basic的一起来看看 《VISUAL BASIC 6.0 WINDOWS API讲座》 这本书的介绍吧!