对比学习——主流框架介绍

对比学习

声明

本文内容为理解后的原创,由于个人能力有限,知识点不一定准确!!!
欢迎探讨、指正!

前言

出现:当CLIP和Dalle出来之后,OpenAI把“对比学习”带火了。
背景:当前模型能力发挥不完全。如目标检测邻域中,提取特征的模型——Resnet模型,一般基于ImageNet 数据集,其有特定的分类数量,导致模型只能被这些现有的标签所“束缚”,从而不能发挥出模型的潜能。
特点:不需要标签。模型特征提的好,下游任务就能做得好。

通俗概念

人类幼年时期认识事物也是一个对比学习的过程,如人生中第一次有意识地见到场景A“猫”并被告知其类别,当下次同时见到场景B“猫、狗、小鸟”,不需要其他人告知这是“猫”——即打上标签,也会区别出B中“猫”类似A中“猫”。

SimCLR Framework

关键步骤

对比学习过程,找到正样本关系和负样本关系,判断正负样本的异同,让模型自主学习其中规律。

  • 定义正负样本
  • 特征提取模块
  • 损失函数基本思想
    1、定义正负样本
    基础概念:
    (1)标签如何定义:正负样本由系统自动生成,不标注。
    (2)如何表示特征:首先将样本表示成特征向量,如Resnet,还需定义相似度函数,来计算正负样本之间的距离。
    (3)正样本定义方式:
    在这里插入图片描述
    一张图像只做一次数据增强,得到一对正样本。图像经过图形转换模块T,生成反转Xi和色彩增强Xj,再通过Encoder(如Resnet)生成特征向量,该向量被Projection Head(MLP)转成新的向量,使用余弦函数计算两者相似度。目的是提升Encoder的泛化能力,将它生成的原生特征用于做下游任务(最擅长RedID)。
    (4)负样本定义方式:
    防止只学正样本导致的模型坍塌(模型掌握捷径,把样本都认为成正样本,提高相似度)。数据要包括正负样本,负样本比正样本多,原文中batch为8192个。
    (5)样本生成
    在这里插入图片描述
    两对正样本,四对负样本。不属于同一张图片增强出来的,即便是猫,也是负样本。
    2、特征提取模块
    Transformer比Resnet更为通用,除了提取图像特征还能提取文本特征。
    3、损失函数基本思想
    在这里插入图片描述
    对角线是同类的,会降低encoder的泛化能力,一般要去除对角线。损失函数类似交叉熵损失函数,其中分子为同类,分母为不同类,T为小于1的数,用于放大差异。

其他技巧

  • 数据增强
  • MLP
  • V2版本
    1、数据增强
    在这里插入图片描述
    右侧热度图中图像增强操作是个随机的过程。数值越高,效果越好。
    2、MLP
    在这里插入图片描述
    论文中指出加了MLP效果会很好,但是32和2048的向量维度效果几乎一样,大概率是Encoder的提取能力效果已经很好,导致MLP提升效果差异不明显。
    3、V2版本
    模型做得更大,加了一个蒸馏,没啥特别的了。

其他对比学习框架

Multiview Coding

在这里插入图片描述
趋势是多视角任务,相比于图像增强,该框架的特征角度差异更大,学习效果更好。

BYOL

在这里插入图片描述
上方的结果作为预测值,下方的作为目标值,上方无限接近下方,当成一个回归任务。
在这里插入图片描述
因为BN包括了8192中负样本中的均值和方差,试验表明去除MLP中的BN层,模型坍塌。所以并不是不包括负样本。

SimCSE Framework

在这里插入图片描述
左侧无监督,正样本通过DropOut来生成,负样本就是完全不同的句子。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值