【深度学习:SimCLR 】利用 SimCLR 推进自监督和半监督学习

【深度学习:SimCLR 】利用 SimCLR 推进自监督和半监督学习

    • SimCLR框架
    • 表现
    • 代码和预训练模型

最近,自然语言处理模型,如BERT和T5,已经表明,通过首先在大型未标记数据集上进行预训练,然后在较小的标记数据集上进行微调,可以在较少的类标签下获得良好的结果。同样,对大型未标记图像数据集进行预训练也有可能提高计算机视觉任务的性能,如Exemplar-CNN、Instance Discrimination、CPC、AMDIM、CMC、MoCo等所证明的那样。这些方法属于自监督学习的范畴,这是一系列通过从未标记的数据集创建代理标签将无监督学习问题转换为有监督学习问题的技术。然而,目前图像数据的自我监督技术很复杂,需要对架构或训练过程进行重大修改,并且尚未得到广泛采用。

在“ A Simple Framework for Contrastive Learning of Visual Representations”中,我们概述了一种方法,该方法不仅简化而且改进了先前的图像自监督表征学习方法。我们提出的框架,称为SimCLR,显着推进了自监督和半监督学习的最新技术,并在有限数量的分类标记数据下实现了图像分类的新记录(使用ImageNet数据集上1%的标记图像,前5名准确率为85.8%)。我们方法的简单性意味着它可以很容易地整合到现有的监督学习管道中。接下来,我们首先介绍SimCLR框架,然后讨论我们在开发SimCLR时发现的三件事。

SimCLR框架

SimCLR首先在未标记的数据集上学习图像的通用表示,然后可以使用少量标记的图像进行微调,以实现给定分类任务的良好性能。通用表示是通过同时最大化同一图像的不同转换视图之间的一致性和最小化不同图像的转换视图之间的一致性来学习的,遵循一种称为对比学习的方法。使用这种对比目标更新神经网络的参数会导致对应视图的表示相互“吸引”,而非对应视图的表示相互“排斥”。

首先,SimCLR从原始数据集中随机绘制示例,使用简单增强(随机裁剪、随机颜色失真和高斯模糊)组合对每个示例进行两次转换,创建两组相应的视图。单个图像的这些简单变换背后的基本原理是:(1)我们希望鼓励在变换下对同一图像进行“一致”表示,(2)由于预训练数据缺乏标签,我们无法先验地知道哪个图像包含哪个对象类,以及3)我们发现这些简单的变换足以让神经网络学习良好的表示,尽管也可以采用更复杂的变换策略。

然后SimCLR使用基于ResNet架构的卷积神经网络变体来计算图像表示。然后,SimCLR使用全连接网络(即MLP)计算图像表示的非线性投影,这放大了不变特征,并最大限度地提高了网络识别同一图像不同变换的能力。我们使用随机梯度下降来更新CNN和MLP,以最小化对比目标的损失函数。在对未标记的图像进行预训练后,我们可以直接使用CNN的输出作为图像的表示,或者我们可以用标记的图像对其进行微调,以获得良好的下游任务性能。

在这里插入图片描述

拟议的SimCLR框架的说明。同时训练CNN和MLP层,以产生对同一图像的增强版本相似的投影,而对不同的图像则不同,即使这些图像属于同一类对象。经过训练的模型不仅可以很好地识别同一图像的不同变换,而且还可以学习类似概念的表示(例如,椅子与狗),之后可以通过微调将其与标签相关联。

表现

尽管简单,SimCLR极大地推动了ImageNet上自监督和半监督学习的发展。在SimCLR学习的自监督表示之上训练的线性分类器达到了76.5% / 93.2%的top-1 / top-5准确率,而之前的最佳(CPC v2)为71.5% / 90.1%,与较小模型ResNet-50的监督学习性能相匹配,如下图所示。

在这里插入图片描述

用不同的自监督方法(在ImageNet上预训练)学习表征训练线性分类器的ImageNet top-1精度。灰色叉表示有监督的ResNet-50。

当仅对1%的标签进行微调时,SimCLR达到63.0% / 85.8%的前1 /前5准确率,而之前的最佳(CPC v2)为52.7% / 77.9%。也许令人惊讶的是,当对100%的标签进行微调时,预训练的SimCLR模型仍然可以显著优于从头训练的监督基线,例如,微调SimCLR预训练的ResNet-50(4倍)在30个epoch中达到80.1%的前1准确率,而从头训练它在90个epoch中获得78.4%的准确率。

理解表征的对比学习

SimCLR对以前方法的改进不是由于任何单一的设计选择,而是由于它们的组合。下面总结了几个重要的发现。

  • 发现1: 用于生成相应视图的图像转换组合是至关重要的。

由于SimCLR通过最大化相同图像的不同视图的一致性来学习表示,因此组合图像转换以防止琐碎的一致性形式非常重要,例如颜色直方图的一致性。为了更好地理解这一点,我们探索了不同类型的转换,如下图所示。

在这里插入图片描述

应用于原始图像的随机变换示例。

我们发现,虽然没有单一的变换(我们研究的)足以定义产生最佳表示的预测任务,但有两种变换脱颖而出:随机裁剪和随机颜色失真。虽然裁剪和色彩失真本身都不能带来高性能,但组合这两种转换可以带来最先进的结果。

为了理解为什么将随机裁剪与随机颜色失真相结合是重要的,考虑一下在同一图像的两个裁剪之间最大化一致性的过程。这自然包含两种类型的预测任务,可以实现有效的表示学习:(a)从更大的“全局”视图(作物B)预测局部视图(例如,作物a),以及(B)预测邻近视图(例如,作物C和作物D之间)。

在这里插入图片描述

最大化不同作物之间的一致性导致了两个预测任务。左:全局视图与局部视图。右:相邻视图。

然而,同一图像的不同作物通常在色彩空间中看起来非常相似。如果颜色保持不变,模型可以通过简单地匹配颜色直方图来最大化作物之间的一致性。在这种情况下,模型可能只关注颜色,而忽略其他更一般化的特征。通过独立地扭曲每个作物的颜色,可以去除这些浅层线索,并且模型只能通过学习有用的和可推广的表示来达成一致。

  • 发现2: 非线性投影很重要。

在SimCLR中,在计算对比学习目标的损失函数之前,采用基于mlp的非线性投影,这有助于识别每个输入图像的不变特征,并最大限度地提高网络识别同一图像不同变换的能力。在我们的实验中,我们发现使用这种非线性投影有助于提高表示质量,将在simclr学习的表示上训练的线性分类器的性能提高了10%以上。

有趣的是,将作为MLP投影模块输入的表示与投影输出的表示进行比较,发现早期阶段的表示在使用线性分类器进行测量时表现更好。由于对比目标的损失函数是基于投影的输出,所以投影前的表示更好,这有点令人惊讶。我们推测,我们的目标导致网络的最后一层对可能对下游任务有用的特征(如颜色)保持不变。有了额外的非线性投影头,投影头之前的表示层能够保留更多关于图像的有用信息。

发现3: 扩展可以显著提高性能。

我们发现(1)在同一批处理中处理更多的示例,(2)使用更大的网络,以及(3)更长的训练时间都会导致显著的改进。虽然这些似乎是显而易见的观察结果,但这些改进在SimCLR中似乎比在监督学习中更大。例如,我们观察到有监督的ResNet的性能在90到300个训练epoch之间达到顶峰(在ImageNet上),但是SimCLR即使在800个epoch的训练之后也可以继续提高。当我们增加网络的深度或宽度时,情况似乎也是如此——SimCLR的增益继续增加,而监督学习的增益开始饱和。为了优化扩展训练的回报,我们在实验中广泛使用了Cloud TPU。

代码和预训练模型

为了加速自监督和半监督学习的研究,我们很高兴与更大的学术社区分享SimCLR的代码和预训练模型。它们可以在GitHub存储库中找到。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/334095.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第三节课作业

复现: 对mmagic的理解

JAVA:解析Event事件机制与应用举例

1、简述 Java事件机制是一种基于观察者模式的设计模式,用于处理对象之间的松耦合通信。本篇技术博客将深入探讨Java事件机制的原理,并通过实际应用举例展示如何在项目中灵活利用该机制。 2、基本原理 Java事件机制基于观察者模式,包含以下…

2、UML类图

UML(Unified Modeling Language)统一建模语言,用来进行设计软件的可视化建模语言。 2.1 类图概述 类类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及他们与其他类的关系等。类图是面向对象建模的主要组成部分。 2.…

Git分支学习

Commit 每次 Commit ,都会多一个节点,C1是C2的父节点,在C1的基础上产生。 使用 git commit 提交代码分支。 Branch 根据逻辑分解工作到不同的分支,在将分支和提交记录结合起来后,我们会看到两者如何协作。 在 mai…

【YOLO系列】 YOLOv4思想详解

前言 以下内容仅为个人在学习人工智能中所记录的笔记,先将目标识别算法yolo系列的整理出来分享给大家,供大家学习参考。 本文未对论文逐句逐段翻译,而是阅读全文后,总结出的YOLO V4论文的思路与实现路径。 若文中内容有误&#xf…

JD商品详情实时数据的采集item_get-获得JD商品详情

京东商品详情的实时数据可以通过京东商品详情接口进行获取。这些数据实时更新,确保电商企业获取到最新的商品数据。这对于价格变动频繁、库存紧张的热销商品尤为重要,可以帮助电商企业及时调整销售策略,避免库存积压和浪费。 此外&#xff0…

文件夹重命名方法:文件夹名称随机数字命名,提高文件管理效率的秘诀

在数字时代,每天都会创建、接收和存储大量的文件。那如何有效地管理和查找这些文件?下面云炫文件管理器用简单的方法使用随机数字给文件夹命名。掌握方法可以快速识别和分类文件,提高工作效率。 文件夹随机数字命名前后效果图。 文件夹名称…

视频号小店和抖音小店相比,新手做哪个比较好?

我是电商珠珠 抖音小店在19年被抖音所发展,在这过程中,抖音小店通过自身的不断完善,从兴趣电商到全域兴趣电商模式,从直播电商到商城的出现,凭借着门槛低流量高的优势,让很多商家尝到了红利。 尤其是在20…

zabbix部署

zabbix部署 部署zabbix服务被监测主机部署zabbix-agent2 使用版本 组件版本centos7.9zabbix5.0php7.2.24MariaDB5.5.68 部署zabbix服务 关闭防火墙和selinux [rootnode ~]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemonLoaded: …

亚马逊鲲鹏自动测评系统:提升店铺流量与销售的利器

在跨境电商领域,提升店铺流量、排名以及销售业绩一直是卖家们关注的焦点。近期,亚马逊鲲鹏自动测评系统的推出备受关注,成为卖家们提升竞争力的得力工具。据真实客户反馈,该系统不仅能够全自动化批量操作,而且内置了防…

免 费 搭 建 多模式商城:b2b2c、o2o、直播带货一网打尽

鸿鹄云商 b2b2c产品概述 【b2b2c平台】,以传统电商行业为基石,鸿鹄云商支持“商家入驻平台自营”多运营模式,积极打造“全新市场,全新 模式”企业级b2b2c电商平台,致力干助力各行/互联网创业腾飞并获取更多的收益。从消…