再介绍一篇最新的Contrastive Self-supervised Learning综述论文(三)

简介: 再介绍一篇最新的Contrastive Self-supervised Learning综述论文(三)

使用 Momentum Encoder



为了解决 memory bank 的缺点,momentum encoder [14] 被提了出来。这种机制创建了一种特殊的字典,它把字典当作一个队列的keys,当前的batch进入队列,最老的batch退出队列。


Momentum encoder 共享了encoder Q的参数。它不会在每次反向传播后更新,而是依据query encoder的参数来更新:

θ k ← m θ k + ( 1 − m ) θ q \theta_k \leftarrow m\theta_k + (1-m)\theta_


a083d29577bb7e70ed34078df1ff04e9.png


特征表示聚类 Clustering Feature Representation


上面介绍的三种架构都是用某种相似度衡量来对比样本,使得相似样本相近,不相似样本变远,从而学习到好的表示。


本节介绍的机制使用两个共享参数的端到端架构,这种架构使用聚类算法来聚类相似样本表示。


387a026de5eeadec24f02c7aa218ae33.png


图十四:传统对比样本学习 vs 对比聚类学习


SwAV [13] 使用了聚类方法。其背后的idea在于,在一个嵌入空间中,猫的样本们应该和狗的样本们相近(都是动物),而与房子的样本们相远。


在基于样本的学习中,每个样本被当作一个数据集中的离散类。


离散类在连续的嵌入空间中(相似的样本表示相近)可能会有问题。


例如在一个batch里,正样本是猫,负样本们中也有猫,模型会让正样本的猫和负样本中的猫变远,不利于表示学习。


4.Encoders



在自监督学习中,Encoder非常重要,因为它们把数据样本遍历到隐空间中。


e116380bed7920d61065dd43d24c19bd.png


图十五:训练一个Encoder,然后迁移学习到下游任务


没有一个强大的encoder的话,模型可能难以学到有效的表示,从而执行分类任务。对比学习中的大多数模型都采用了ResNet或其变种。


5.训练



为了训练一个encoder,需要一个前置任务来利用对比损失来进行反向传播。


对比学习最核心的观点是将相似样本靠近,不相似样本靠远。


所以需要一个相似度衡量指标来衡量两个表示的相近程度。


在对比学习中,最常用的指标是cosine similarity。


94b21d0c745db6bb7975391a18c17d7f.png


Noise Contrastive Estimation (NCE) [38] 函数定义为:


32c3980772a739d8ac9641dd77226f0f.png


如果负样本的数量很多,NCE的一个变种 InfoNCE 定义为:


f2ab33c7a0b2aa0530441e1fb93fec5c.png


与其他深度学习模型类似,对比学习应用了许多训练优化算法。训练的过程包括最小化损失函数来学习模型的参数。


常见的优化算法包括 SGD 和 Adam 等。


训练大的 batch 的网络有时需要特殊设计的优化算法,例如 LARS。


6.下游任务



644d68be95ffc8786039abd0daa24c65.png


图十六:计算机视觉中的各种下游任务


一般来说,计算机视觉的自监督训练包括两个任务:


  • 前置任务


  • 下游任务


下游任务聚焦于具体的应用,在优化下游任务的时候,模型利用到了前置任务优化时期所学到的知识。这些任务可以是分类、检测、分割、预测等。图十七提供了一个迁移学习的流程。


bfcd060e77d27da42b6d9d2a1f0ab69a.png


图十七:计算机视觉中的下游任务


为了测试自监督学习中学习到的特征对下游任务的效果,一些方法,例如


  • kernel visualization


  • feature map visualization


  • nearsest-neighbor based approaches


被用来分析前置任务的有效性。


对 Kernels 和 特征图进行可视化



在这里,第一个卷积层的特征的kernels(分别来自于自监督训练和监督训练)被用来做比较。


类似地,不同层的 attention maps 也可以被用来测试模型的有效性。


2216480a96cb7863c022a62608c36558.png


图十八:AlexNet所训练的 attention map


最近相邻撷取



一般来说,相同类的样本在隐藏空间中的位置应该相近。对一个输入的样本,使用最近相邻方法,可以在数据集中使用 top-K 抽取来分析自监督学习的模型是否有效。


**7.基准**


最近,许多自监督学习模型挑战了监督模型的效果。在本章中,我们收集和对比了这些模型的效果,在下游任务上。对于图像分类,我们选择了ImageNet和Places数据集。类似的,对于目标检测,我们选择了Pascal VOC数据集。行为识别和视频分类我们选择了UCF-101,HMDB-51和Kinetics。


f2575244e9d6cf7fa72e4af14579756e.png50c44161f0190a2dd101fc3adc85090f.png


**8.结论**


这篇论文总结了各种流行的自监督对比模型。


我们解释了对比学习中不同的模块:


  • 如何选择正确的前置任务


  • 如何选择学习架构


  • 如何在下游任务上优化


基于对比学习的模型获得了非常好的实验效果。


本文最后总结了当前对比学习面临的问题。


相关文章
|
JSON 小程序 JavaScript
【微信小程序】-- 自定义组件 -- 创建与引用 &样式(三十二)
【微信小程序】-- 自定义组件 -- 创建与引用 &样式(三十二)
|
NoSQL Redis 索引
Filebeat收集日志数据传输到Redis,通过Logstash来根据日志字段创建不同的ES索引
Filebeat收集日志数据传输到Redis,通过Logstash来根据日志字段创建不同的ES索引
289 0
|
7月前
|
自然语言处理 DataWorks 数据挖掘
使用DataWorks Notebook实现智能图片标注,给你的图片加个“注释”
本文介绍如何使用DataWorks Notebook结合视觉识别模型RAM和自然语言处理模型BERT实现多模态图片标注,为智能内容生成和多模态数据分析的广泛应用提供支持。
|
存储 数据管理 API
Docker技术概论(3):Docker 中的基本概念
Docker技术概论(3):Docker 中的基本概念
420 12
|
人工智能 搜索推荐 UED
Bot 商店 + 一键优化提示词 Prompt,开启AI新体验!| Botnow上新
Botnow 迎来了重大更新,新增了 Bot 商店功能,并优化了 Bot 编排,提升了 AI 使用效率。用户可在 Bot 商店中轻松浏览和体验各类官方及用户发布的 Bots,并可一键发布或下架自己的 Bot。此外,还推出了一键优化 Prompt 功能,帮助用户生成清晰、精准的指令,提升对话质量。新老用户快来体验吧![链接]
490 5
|
机器学习/深度学习 TensorFlow 算法框架/工具
MTCNN(Multi-task Cascaded Convolutional Networks)
MTCNN(Multi-task Cascaded Convolutional Networks)
352 0
|
Shell 应用服务中间件 nginx
Docker命令集大全(Docker命令,一篇搞定)
【1月更文挑战第12天】 一、Docker容器命令: 二、Docker镜像命令 三、重启Docker命令 四、Docker数据卷命令 五、挂载数据卷
608 3
|
机器学习/深度学习 自然语言处理 前端开发
2024年3月最新的深度学习论文推荐
现在已经是3月中旬了,我们这次推荐一些2月和3月发布的论文。
785 0
|
Java 测试技术 开发工具
clion的使用扫坑记(建多个文件,没有运行三角等)
clion的使用扫坑记(建多个文件,没有运行三角等)
625 0
|
消息中间件 存储 SQL
RocketMQ 全链路灰度探索与实践
当链路请求中存在消息的时候,如何实现全链路灰度?一起来看看消息灰度的设计与实现吧!
769 0
RocketMQ 全链路灰度探索与实践