SimCLR 论文阅读

2024-02-29 09:50
文章标签 阅读 论文 simclr

本文主要是介绍SimCLR 论文阅读,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

SimCLR原文链接
1. 导读 :这篇文章通过严密的实验设计,系统的探究出了学习出一个好的对比学习的网络的一些必要因素。在本篇文章中,有以下三点:

  • Data argumentation 数据增强起到了至关重要的作用
  • 对比学习的损失函数和非线性映射也有很重要的影响
  • 更大的batch size和更多的迭代步骤能让对比学习的模型效果更好。(换句话说是不是说明收敛较慢呢?)

通过利用本文中实验验证的一些因素,作者设计出了一个新的对比学习的模型,称为SimCLR。通过在ImageNet上使用SimCLR进行自监督学习,作者达到了新的SOTA水平,最终达到了 76.5%/85.8%的Top1/Top5 Acc。
在这里插入图片描述

2. Method

  受到最近的一些对比学习的启发,作者通过计算一个图片在不同的数据增强下的特征一致性的损失值来评估模型所学到的特征表示的性能。

2.1 基本的对比学习框架如下图所示:

在这里插入图片描述
x \bold x x 代表的是任意一张图片, x i ~ \tilde{ \bold x_i} xi~ x j ~ \tilde{ \bold x_j} xj~ 就代表这个图片的不同的数据增强得到的结果。
在这个框架中,共有四个重要的组成部分:

  • 随机数据增强(包括随机裁剪,随机颜色失真,随机高斯模糊)
  • 神经网络的特征架构
  • 一个比较小的MLP的projection head
  • 一个对比损失函数

作者定义的损失函数如下:
在这里插入图片描述

在这里,作者随机采样 N \bold N N个图片作为一次训练的batch,通过数据增强后,会得到 2 N 2\bold N 2N个增强后的样本,在一个batch内,对某一个图片(固定作为参考),通过两两之间进行配对计算损失,那么共有 2 ( N − 1 ) 2(\bold N-1) 2(N1)个负样本。

2.2 更大的batch会有更好的效果

 通过上面设计的损失函数,更大的batch会有更明显的对比空间,通过把除了自身之外的样本都视为负样本,作者通过验证batch从256增大到8192,发现越大的batch size 会有更好的效果。

2.3 实验的一些基本参数

  Most of our study for unsupervised pretraining (learning encoder network f without labels) is done using the ImageNet ILSVRC-2012 dataset (Russakovsky et al., 2015).

  We use ResNet-50 as the base encoder network, and a 2-layer MLP projection head to project the representation to a 128-dimensional latent space. As the loss, we use NT-Xent, optimized using LARS with learning rate of 4.8 (= 0.3 × BatchSize/256) and weight decay of 1006. We train at batch size 4096 for 100 epochs. Furthermore, we use linear warmup for the first 10 epochs, and decay the learning rate with the cosine decay schedule without restarts (Loshchilov & Hutter, 2016).

3. 数据增强可以提升对比学习的效果

  首先,作者说明了SimCLR相比于之前方法的改进之处在于:SimCLR通过对同一张样本的不同表示来处理对比学习,而之前的方法在使用不同的网络架构处理同一个样本,通过不同的网络来学习物体的特征表示。

下面是一些数据增强的例子:
在这里插入图片描述

3.1 数据增强在对比学习中不可或缺

  因为ImageNet中的图片大小不一,为了尽量排除其余因素的影响,作者首先对所有的数据做相同的随机裁剪的操作,通过随机裁剪来避免大小的干扰。
  此外,由于某些类别的图片只通过颜色分布直方图就能够进行分类(见下图),仅仅通过随即裁剪并不能说明效果,因此作者又对所有的数据做了随机的色彩破坏(color distort)。通过这样的操作,排除了实验中的大量干扰。

在这里插入图片描述
然后,作者在上面的初始数据增强后,在2.1节的架构的分支部分,做分别处理,对一张图片做单一的某种数据增强,对另一个副本不做任何额外增强,以此来计算最终的损失函数,然后作者发现,仅仅通过单一的数据增强不足以学习到一个比较好的网络。
在这里插入图片描述

3.2 对比学习需要更强的数据增强

作者在这一节用试验说明需要进行组合的更强的数据增强才能使模型的效果更好。
在这里插入图片描述
作者通过调整color distort的强度,验证了在SimCLR中,数据增强的强度越高,效果越好,而在监督学习中,数据越完整,效果越好。因此相比于普通的神经网络,对比学习需要更强的数据增强。(也就是说,去迫使神经网络去学习更深层的特征,而不是仅仅停留在表面)

4. 特征提取Head设计

4.1 无监督学习需要深层网络

作者通过简单的实验发现,相比于监督学习,无监督学习的网络越大越深,特征提取的效果越好。
在这里插入图片描述

4.2 作者还发现非线性的projection head对网络性能也有影响

作者通过实验不同网络下,三种projection head 的效果,发现非线性的projection对性能的提升比较大。
在这里插入图片描述

5. Loss Functions and Batch Size

5.1. 作者发现Cross entropy的效果比较好

通过对不同的损失函数求导计算梯度,作者发现:与交叉熵不同,其他目标函数不会通过负数的相对硬度来权衡负数。 (unlike cross-entropy, other objective functions do not weigh the negatives by their relative hardness.)
在这里插入图片描述
此外,作者还说明了温度参数的重要性:without normalization and proper temperature scaling, performance is significantly worse.
在这里插入图片描述

5.2 更久的训练和更大的batch会使得网络性能更好

 &emsp在不同epoch下,当epoch处于一个比较小的值时,batch的大小很重要,但是当epoch比较大的时候,batch的重要性就降低了。(这里可以理解为数据的信息有限,需要一定的能力才能学习完这些信息,在epoch比较小的时候,需要更大的batch(悟性)让网络学习特征,而epoch比较大的时候,就已经熟能生巧,通过时间弥补了网络的悟性差距)
在这里插入图片描述
此外,作者还研究了epoch本身的影响:
在这里插入图片描述
随着epoch的增加,Acc会逐渐增加。

6.其他

最后作者秀了一波结果。
在这里插入图片描述

7. 总结

相比于其他方法,作者在这篇文章提出了一种新的对待对比学习的思路,但是也带来了更多的计算资源的要求。

这篇关于SimCLR 论文阅读的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/758366

相关文章

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

论文翻译:ICLR-2024 PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS

PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS https://openreview.net/forum?id=KS8mIvetg2 验证测试集污染在黑盒语言模型中 文章目录 验证测试集污染在黑盒语言模型中摘要1 引言 摘要 大型语言模型是在大量互联网数据上训练的,这引发了人们的担忧和猜测,即它们可能已

OmniGlue论文详解(特征匹配)

OmniGlue论文详解(特征匹配) 摘要1. 引言2. 相关工作2.1. 广义局部特征匹配2.2. 稀疏可学习匹配2.3. 半稠密可学习匹配2.4. 与其他图像表示匹配 3. OmniGlue3.1. 模型概述3.2. OmniGlue 细节3.2.1. 特征提取3.2.2. 利用DINOv2构建图形。3.2.3. 信息传播与新的指导3.2.4. 匹配层和损失函数3.2.5. 与Super

软件架构模式:5 分钟阅读

原文: https://orkhanscience.medium.com/software-architecture-patterns-5-mins-read-e9e3c8eb47d2 软件架构模式:5 分钟阅读 当有人潜入软件工程世界时,有一天他需要学习软件架构模式的基础知识。当我刚接触编码时,我不知道从哪里获得简要介绍现有架构模式的资源,这样它就不会太详细和混乱,而是非常抽象和易

BERT 论文逐段精读【论文精读】

BERT: 近 3 年 NLP 最火 CV: 大数据集上的训练好的 NN 模型,提升 CV 任务的性能 —— ImageNet 的 CNN 模型 NLP: BERT 简化了 NLP 任务的训练,提升了 NLP 任务的性能 BERT 如何站在巨人的肩膀上的?使用了哪些 NLP 已有的技术和思想?哪些是 BERT 的创新? 1标题 + 作者 BERT: Pre-trainin

[论文笔记]LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale

引言 今天带来第一篇量化论文LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale笔记。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 大语言模型已被广泛采用,但推理时需要大量的GPU内存。我们开发了一种Int8矩阵乘法的过程,用于Transformer中的前馈和注意力投影层,这可以将推理所需

【阅读文献】一个使用大语言模型的端到端语音概要

摘要 ssum框架(Speech Summarization)为了 从说话人的语音提出对应的文本二题出。 ssum面临的挑战: 控制长语音的输入捕捉 the intricate cross-mdoel mapping 在长语音输入和短文本之间。 ssum端到端模型框架 使用 Q-Former 作为 语音和文本的中介连接 ,并且使用LLMs去从语音特征正确地产生文本。 采取 multi-st