热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

迁移学习resnet_Hinton组力作:ImageNet无监督学习最佳性能一次提7%,媲美监督学习...

机器之心报道机器之心编辑部如今,在ImageNet上的图像识别准确率的性能提升每次通常只有零点几个百分点,而来自图灵奖获得者GeoffreyHinton

机器之心报道

机器之心编辑部

如今,在 ImageNet 上的图像识别准确率的性能提升每次通常只有零点几个百分点,而来自图灵奖获得者 Geoffrey Hinton 等谷歌研究者的最新研究一次就把无监督学习的指标提升了 7-10%,甚至可以媲美有监督学习的效果。

98cb9e6b0756d96b55d461716a21c5fb.png

如今,在 ImageNet 上的图像识别准确率的性能提升每次通常只有零点几个百分点,而来自图灵奖获得者 Geoffrey Hinton 等谷歌研究者的最新研究一次就把无监督学习的指标提升了 7-10%,甚至可以媲美有监督学习的效果

细心的同学可能会注意到,许久不在社交网络上出现的深度学习先驱 Geoffrey Hinton 最近突然有了新动向。他领导的研究小组推出的 SimCLR 无监督方法瞬间吸引了人们的广泛关注:

c75d188a9e4f8e04f0ea1721621803a7.png

SimCLR 是一种简单而清晰的方法,无需类标签即可让 AI 学会视觉表示,而且可以达到有监督学习的准确度。论文作者表示,经过 ImageNet 上 1% 图片标签的微调,SimCLR 即可达到 85.8%的 Top-5 精度——在只用 AlexNet 1% 的标签的情况下性能超越后者。

d05428a719a09659f0d23bc5ebe3bc25.png

论文链接:https://arxiv.org/pdf/2002.05709.pdf

在这一工作中,研究者们构建了一种用于视觉表示的对比学习简单框架 SimCLR,它不仅优于此前的所有工作,也优于最新的对比自监督学习算法,而且结构更加简单:既不需要专门的架构,也不需要特殊的存储库。

7d2d3630dcafb43583bec9f6cff818ed.png

图 1. SimCLR 与此前各类自监督方法在 ImageNet 上的 Top-1 准确率对比(以 ImageNet 进行预训练),以及 ResNet-50 的有监督学习效果(灰色×)。

在这篇论文中,研究者发现:

  1. 多个数据增强方法组合对于对比预测任务产生有效表示非常重要。此外,与有监督学习相比,数据增强对于无监督学习更加有用;
  2. 在表示和对比损失之间引入一个可学习的非线性变换可以大幅提高模型学到的表示的质量;
  3. 与监督学习相比,对比学习得益于更大的批量和更多的训练步骤。

基于这些发现,他们在 ImageNet ILSVRC-2012 数据集上实现了一种新的半监督、自监督学习 SOTA 方法——SimCLR。在线性评估方面,SimCLR 实现了 76.5% 的 top-1 准确率,比之前的 SOTA 提升了 7%。在仅使用 1% 的 ImageNet 标签进行微调时,SimCLR 实现了 85.8% 的 top-5 准确率,比之前的 SOTA 方法提升了 10%。在 12 个其他自然图像分类数据集上进行微调时,SimCLR 在 10 个数据集上表现出了与强监督学习基线相当或更好的性能。

8a544ca2c4f2b10bcf5593711b005f6e.png

无监督学习的快速发展让科学家们看到了新的希望,DeepMind 科学家 Oriol Vinyals 表示:感谢对比损失函数,无监督学习正在逼近监督学习!

简化方法,但效果更好

受到最近对比学习算法(contrastive learning algorithm)的启发,SimCLR 通过隐空间中的对比损失来最大化同一数据示例的不同增强视图之间的一致性,从而学习表示形式。具体说来,这一框架包含四个主要部分:

  • 随机数据增强模块,可随机转换任何给定的数据示例,从而产生同一示例的两个相关视图,分别表示为 x˜i 和 x˜j,我们将其视为正对;
  • 一个基本的神经网络编码器 f(·),从增强数据中提取表示向量;
  • 一个小的神经网络投射头(projection head)g(·),将表示映射到对比损失的空间;
  • 为对比预测任务定义的对比损失函数。
190ba60fa0817499e372823eb50a9daa.png

在社交网络上,该论文的作者之一,谷歌资深研究科学家 Mohammad Norouzi 对这一学习算法进行了最简单化的总结:

  • 随机抽取一个小批量
  • 给每个例子绘制两个独立的增强函数
  • 使用两种增强机制,为每个示例生成两个互相关联的视图
  • 让相关视图互相吸引,同时排斥其他示例
71bc424e91e42ce6fe2b7408a0ff3484.png

SimCLR 的主要学习算法如下:

a2306dee8c78b0d2edfc54a5834fdee6.png

用更大的批大小进行训练

作者将训练批大小 N 分为 256 到 8192 不等。批大小为 8192 的情况下,增强视图中每个正对(positive pair)都有 16382 个反例。当使用标准的 SGD/动量和线性学习率扩展时,大批量的训练可能不稳定。为了使得训练更加稳定,研究者在所有的批大小中都采用了 LARS 优化器。他们使用 Cloud TPU 来训练模型,根据批大小的不同,使用的核心数从 32 到 128 不等。

数据增强

虽然数据增强已经广泛应用于监督和无监督表示学习,但它还没有被看做一种定义对比学习任务的系统性方法。许多现有的方法通过改变架构来定义对比预测任务。

本文的研究者证明,通过对目标图像执行简单的随机裁剪(调整大小),可以避免之前的复杂操作,从而创建包含上述两项任务的一系列预测任务,如图 3 所示。这种简单的设计选择方便得将预测任务与其他组件(如神经网络架构)解耦。

f98b08b190a4e2b6017f697b606a6fa4.png

多种数据增强操作的组合是学习良好表示的关键。图 4 显示了作者在这项工作中探讨的数据增强。

32f3deeee54a94724987302935ada9f2.png

为了进一步展示颜色增强的重要性,研究者调整了颜色增强的强度,结果如下表 1 所示。

fd05d0d92bf4fd97d01f3e685e68d332.png

编码器和投射头架构

如图 7 所示,增加深度和宽度都可以提升性能。监督学习也同样适用这一规律。但我们发现,随着模型规模的增大,监督模型和在无监督模型上训练的线性分类器之间的差距会缩小。这表明,与监督模型相比,无监督学习能从更大规模的模型中得到更多收益。

0d9ea5e62593b10b70bb60898a9f9a78.png

非线性的投射头可以改善之前的层的表示质量,图 8 展示了使用三种不同投射头架构的线性评估结果。

846aeecc4cf2a079a3174059c951fbca.png

损失函数和批大小

可调节温度的归一化交叉熵损失比其他方法更佳。研究者对比了 NT-Xent 损失和其他常用的对比损失函数,比如 logistic 损失、margin 损失。表 2 展示了目标函数和损失函数输入的梯度。

0259fcb95c39bd5ab5ebfbfd220c329e.png

对比学习(Contrastive learning)能从更大的批大小和更长时间的训练中受益更多。图 9 展示了在模型在不同 Epoch 下训练时,不同批大小所产生的影响。

86b2cbed47420f02e2f4372824964da7.png

与当前最佳模型的对比

线性估计

表 6 显示了 SimCLR 与之前方法在线性估计方面的对比。此外,上文中的表 1 展示了不同方法之间更多的数值比较。从表中可以看出,用 SimCLR 方法使用 ResNet-50 (4×) 架构能够得到与监督预训练 ResNet-50 相媲美的结果。

17aa5db5d5094775da0073d33b8781ec.png

半监督学习

下表 7 显示了 SimCLR 与之前方法在半监督学习方面的对比。从表中可以看出,无论是使用 1% 还是 10% 的标签,本文提出的方法都显著优于之前的 SOTA 模型。

045e314a4a6b96e38f6f27102067791c.png

迁移学习

研究者在 12 个自然图像数据集上评估了模型的迁移学习性能。下表 8 显示了使用 ResNet-50 的结果,与监督学习模型 ResNet-50 相比,SimCLR 显示了良好的迁移性能——两者成绩互有胜负。

bae8f53e74e7367d03525dc23d02ca98.png

华人一作

该论文的第一作者 Ting Chen 现就职于谷歌大脑,他 2013 年本科毕业于北京邮电大学,从 2013 年到 2019 年在美国东北大学和加州大学洛杉矶分校攻读计算机科学博士学位。2019 年 5 月,他正式入职谷歌大脑,成为研究科学家。此前他在谷歌有过两年的实习经历。

3af1549e93dc83a9da6f50f436f01e10.png

Ting Chen 的研究兴趣包括自监督表示学习,用于离散结构的高效深度神经网络以及生成模型。

048adff1a1325c485b10517c68752181.png

参考链接:http://web.cs.ucla.edu/~tingchen/



推荐阅读
  • 机器学习核心概念与技术
    本文系统梳理了机器学习的关键知识点,涵盖模型评估、正则化、线性模型、支持向量机、决策树及集成学习等内容,并深入探讨了各算法的原理和应用场景。 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 本题探讨了在大数据结构背景下,如何通过整体二分和CDQ分治等高级算法优化处理复杂的时间序列问题。题目设定包括节点数量、查询次数和权重限制,并详细分析了解决方案中的关键步骤。 ... [详细]
  • 本文介绍了如何在 C# 和 XNA 框架中实现一个自定义的 3x3 矩阵类(MMatrix33),旨在深入理解矩阵运算及其应用场景。该类参考了 AS3 Starling 和其他相关资源,以确保算法的准确性和高效性。 ... [详细]
  • 深入理解Java字符串池机制
    本文详细解析了Java中的字符串池(String Pool)机制,探讨其工作原理、实现方式及其对性能的影响。通过具体的代码示例和分析,帮助读者更好地理解和应用这一重要特性。 ... [详细]
  • Nginx 反向代理与负载均衡实验
    本实验旨在通过配置 Nginx 实现反向代理和负载均衡,确保从北京本地代理服务器访问上海的 Web 服务器时,能够依次显示红、黄、绿三种颜色页面以验证负载均衡效果。 ... [详细]
  • 本文深入探讨了SQL数据库中常见的面试问题,包括如何获取自增字段的当前值、防止SQL注入的方法、游标的作用与使用、索引的形式及其优缺点,以及事务和存储过程的概念。通过详细的解答和示例,帮助读者更好地理解和应对这些技术问题。 ... [详细]
  • Java项目分层架构设计与实践
    本文探讨了Java项目中应用分层的最佳实践,不仅介绍了常见的三层架构(Controller、Service、DAO),还深入分析了各层的职责划分及优化建议。通过合理的分层设计,可以提高代码的可维护性、扩展性和团队协作效率。 ... [详细]
  • 历经三十年的开发,Mathematica 已成为技术计算领域的标杆,为全球的技术创新者、教育工作者、学生及其他用户提供了一个领先的计算平台。最新版本 Mathematica 12.3.1 增加了多项核心语言、数学计算、可视化和图形处理的新功能。 ... [详细]
  • 深入解析Serverless架构模式
    本文将详细介绍Serverless架构模式的核心概念、工作原理及其优势。通过对比传统架构,探讨Serverless如何简化应用开发与运维流程,并介绍当前主流的Serverless平台。 ... [详细]
  • 1.执行sqlsever存储过程,消息:SQLServer阻止了对组件“AdHocDistributedQueries”的STATEMENT“OpenRowsetOpenDatas ... [详细]
  • 本文将详细介绍多个流行的 Android 视频处理开源框架,包括 ijkplayer、FFmpeg、Vitamio、ExoPlayer 等。每个框架都有其独特的优势和应用场景,帮助开发者更高效地进行视频处理和播放。 ... [详细]
  • PostgreSQL 最新动态 —— 2022年4月6日
    了解 PostgreSQL 社区的最新进展和技术分享 ... [详细]
  • 深入解析ESFramework中的AgileTcp组件
    本文详细介绍了ESFramework框架中AgileTcp组件的设计与实现。AgileTcp是ESFramework提供的ITcp接口的高效实现,旨在优化TCP通信的性能和结构清晰度。 ... [详细]
author-avatar
Re__my_雨言栋
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有