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

关于自监督学习、对比学习、聚类、度量学习和预训练的一些思考(在更新中…`)

先言:阅读数篇论文后,发觉自己基础不牢固,心生困惑无法解决,故再查阅整理相关内容发布于此。自监督的创新主要基于三个方面:1.基于代理任务的自监督学习三个阶段:Prediction-

先言:阅读数篇论文后,发觉自己基础不牢固,心生困惑无法解决,故再查阅整理相关内容发布于此。


自监督的创新主要基于三个方面:


1.基于代理任务的自监督学习


三个阶段:


  1. Prediction-based Tasks:

    基于预测的自监督学习任务属于视觉自监督学习中相对早期的工作。如patch relation prediction(预测图片中两个patch的相对位置),rotation prediction(判断图片旋转角度),color prediction(对灰色图片上色)

  2. Contrastive-based Tasks:

    如MoCo,simCLR等系列工作,通过对图片进行随机两种增强操作(裁剪,翻转等)构造正例对,拉近同一张图片不同形态的特征距离,拉远不同图片之间的特征距离。基于对比学习的方法虽然在ImageNet图片分类任务上取得不错的表现,但对于更细粒度的图片相关任务表现则欠佳,其更偏向于学习全局的图片语义特征。

  3. Generative-based Tasks:

    由于对比学习任务在细粒度知识表征学习方面存在缺陷,受NLP预训练模型的启发,近期很多工作将重点放在如何有效地将MLM任务迁移到CV自监督学习中。如mask region prediction, mask frame prediction等任务。

    基于MLM任务引申的视觉自监督表征学习工作:



    • MST: Masked Self-Supervised Transformer for Visual Representation

    • BEiT: BERT Pre-Training of Image Transformers

    • EsViT: Efficient Self-supervised Vision Transformers for Representation Learning

    • iBOT: Image BERT Pre-training with Online Tokenizer

    • Masked Autoencoders Are Scalable Vision Learners

    • PeCo: Perceptual Codebook for BERT Pre-training of Vision Transformers

    • Masked Feature Prediction for Self-Supervised Visual Pre-Training




2.基于对比学习的自监督学习

对比学习希望习得某个表示模型,它能够将图片映射到某个投影空间,并在这个空间内拉近正例的距离,推远负例距离。

如果从防止模型坍塌的不同方法角度,我们可大致把现有方法划分为四种:基于负例的对比学习方法、基于对比聚类的方法、基于不对称网络结构的方法,以及基于冗余消除损失函数的方法



  1. 基于负例的对比学习方法:

    image

    SimCLR系列及Moco系列;依靠负例(Uniformity属性)防止模型崩塌



  2. 基于对比聚类的方法:

    image

    SwAV;该方法要求某个投影点在超球面上,向另外一个投影点所属的聚类中心靠近,体现了Alignment原则;和其它聚类中心越远越好,这体现了Uniformity属性。SwAV面临模型坍塌问题,具体表现形式为:Batch内所有实例都聚类到同一个类里。所以为了防止模型坍塌,SwAV对聚类增加了约束条件,要求Batch内实例比较均匀地聚类到不同的类别中。本质上,它与直接采用负例的对比学习模型,在防止模型坍塌方面作用机制是类似的,是一种隐形的负例。



  3. 基于不对称网络结构的方法:

    image

    BYOL;只用正例来训练对比学习模型,靠上下分枝的结构不对称,防止模型坍塌。



  4. 基于冗余消除损失函数的方法:

    image

    Barlow Twins;既没有使用负例,也没有使用不对称结构,主要靠替换了一个新的损失函数,可称之为“冗余消除损失函数”,来防止模型坍塌。

    对比学习Paper都会涉及到的一些关键点:



    • 如何构造相似实例,以及不相似实例;

    • 如何构造能够遵循上述指导原则的表示学习模型结构;

    • 以及如何防止模型坍塌(Model Collapse);

    评判对比学习的标准:

    image

    对比学习在做特征表示相似性计算时,要先对表示向量做L2正则,之后再做点积计算,或者直接采用Cosine相似性。

    很多研究表明,把特征表示映射到单位超球面上,有很多好处。这里有两个关键,一个是单位长度,一个是超球面。首先,相比带有向量长度信息的点积,在去掉长度信息后的单位长度向量操作,能增加深度学习模型的训练稳定性。另外,当表示向量被映射到超球面上,如果模型的表示能力足够好,能够把相似的例子在超球面上聚集到较近区域,那么很容易使用线性分类器把某类和其它类区分开(参考上图)。在对比学习模型里,对学习到的表示向量进行L2正则,或者采用Cosine相似性,就等价于将表示向量投影到了单位超球面上进行相互比较。

    Alignment和Uniformity:

    image

    Alignment:指的是相似的例子,也就是正例,映射到单位超球面后,应该有接近的特征,也即是说,在超球面上距离比较近

    Uniformity:指的是系统应该倾向在特征里保留尽可能多的信息,这等价于使得映射到单位超球面的特征,尽可能均匀地分布在球面上,分布得越均匀,意味着保留的信息越充分。分布均匀意味着两两有差异,也意味着各自保有独有信息,这代表信息保留充分。

    (这不就避免了模型崩塌的问题?)

    模型坍塌(Collapse) :

    image

    Uniformity特性的极端反例,是所有数据映射到单位超球面同一个点上,所有数据经过特征表示映射过程后,都收敛到了同一个常数解,一般将这种异常情况称为模型坍塌(Collapse)。

    以SimCLR为例解释:

    见Reference:2(很不错,强推!)




3.基于掩码学习的自监督学习


自监督与预训练的关系:


1. image

2.常见的预训练方式分为生成式预训练与对比式预训练;

对比学习与聚类的关系:


声明:

本文中的所有参考内容均已在'Reference'中标注,仅供自己学习使用,如有侵权,立即删除。


Reference:



  1. 预训练中的自监督学习

  2. 对比学习(Contrastive Learning)在CV与NLP领域中的研究进展



2022-03-29 14:51:32 星期二



推荐阅读
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • 论文阅读:《Bag of Tricks for LongTailed Visual Recognition with Deep Convolutional Neural Networks》
    基于深度卷积神经网络的长尾视觉识别技巧包摘要近年来,挑战性长尾分布上的视觉识别技术取得了很大的进展,主要基于各种复杂的范式(如元学习)。除了这些复杂 ... [详细]
  • 【BERT】BERT的嵌入层是如何实现的?看完你就明白了
    作者:__编译:ronghuaiyang导读非常简单直白的语言解释了BERT中的嵌入层的组成以及实现的方式。介绍在本文中,我将解释BERT ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  • 本博文基于《Amalgamationofproteinsequence,structureandtextualinformationforimprovingprote ... [详细]
  • 【疑难杂症】allennlp安装报错:Installing build dependencies ... error
    背景:配置PURE的算法环境,安装allennlp0.9.0(pipinstallallennlp0.9.0)报错ÿ ... [详细]
  • 人工智能推理能力与假设检验
    最近Google的Deepmind开始研究如何让AI做数学题。这个问题的提出非常有启发,逻辑推理,发现新知识的能力应该是强人工智能出现自我意识之前最需要发展的能力。深度学习目前可以 ... [详细]
  • 干货 | 携程AI推理性能的自动化优化实践
    作者简介携程度假AI研发团队致力于为携程旅游事业部提供丰富的AI技术产品,其中性能优化组为AI模型提供全方位的优化方案,提升推理性能降低成本࿰ ... [详细]
  • CodeBERT理解
    1.动机大型的预训练模型,比如ELMo、GPT、Bert等提高了NLP任务的最新技术。这些预训练模型在NLP的成功驱动了多模态预训练模型,比如ViBE ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • 本文介绍了腾讯最近开源的BERT推理模型TurboTransformers,该模型在推理速度上比PyTorch快1~4倍。TurboTransformers采用了分层设计的思想,通过简化问题和加速开发,实现了快速推理能力。同时,文章还探讨了PyTorch在中间层延迟和深度神经网络中存在的问题,并提出了合并计算的解决方案。 ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
  • 基于移动平台的会展导游系统APP设计与实现的技术介绍与需求分析
    本文介绍了基于移动平台的会展导游系统APP的设计与实现过程。首先,对会展经济和移动互联网的概念进行了简要介绍,并阐述了将会展引入移动互联网的意义。接着,对基础技术进行了介绍,包括百度云开发环境、安卓系统和近场通讯技术。然后,进行了用户需求分析和系统需求分析,并提出了系统界面运行流畅和第三方授权等需求。最后,对系统的概要设计进行了详细阐述,包括系统前端设计和交互与原型设计。本文对基于移动平台的会展导游系统APP的设计与实现提供了技术支持和需求分析。 ... [详细]
  • 「爆干7天7夜」入门AI人工智能学习路线一条龙,真的不能再透彻了
    前言应广大粉丝要求,今天迪迦来和大家讲解一下如何去入门人工智能,也算是迪迦对自己学习人工智能这么多年的一个总结吧,本条学习路线并不会那么 ... [详细]
author-avatar
奔跑的饼干的饼干桶_698
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有