论文解读(7)-CLIP

  • 这一篇需要有Transformer的基础,所以建议先了解Transformer相关的内容再看CLIP

参考内容:

CLIP原文:Learning Transferable Visual Models From Natural Language Supervision (arxiv.org)
GitHub:openai/CLIP: CLIP (Contrastive Language-Image Pretraining), Predict the most relevant text snippet given an image (github.com)

1. 什么是CLIP?

CLIP是OpenAI在2021年2月发表的一篇文章,其全称为Contrastive Language-Image Pre-training,即一种基于对比文本-图像对的预训练方法。

  1. Text Encoder:用于将文本转换为低维向量表示-Embeding。
  2. Image Encoder:用于将图像转换为类似的向量表示-Embedding。

CLIP在zero-shot learning的效果很好。

1.1 那什么是zero-shot?

零次学习(Zero-Shot Learning,简称ZSL)假设斑马是未见过的类别,但根据描述外形和马相似、有类似老虎的条纹、具有熊猫相似的颜色,通过这些描述推理出斑马的具体形态,从而能对斑马进行辨认。零次学习就是希望能够模仿人类的这个推理过程,使得计算机具有识别新事物的能力,如下图所示。
在这里插入图片描述

  • 就是如何在没有对应的样本的情况下去进行推测

2. CLIP结构

CLIP一共有三个阶段:
Contrastive pre-training:预训练阶段,使用图片 - 文本对进行对比学习训练;
Create dataset classifier from label text:提取预测类别文本特征;
Use for zero-shot predictiion:进行 Zero-Shoot 推理预测;

在这里插入图片描述

2.1 Contrastive pre-training

在这里插入图片描述

  • 首先,输入数据是图像-文字对,然后图像传入Image Encoder,文本传入Text Encoder

步骤:
1)将一批大小为32768的图像和文本配对,分别通过文本编码器和图像编码器生成它们的向量表示。
2)训练过程中,通过在整个批次中搜索每个图像对应的最接近的文本表示,来最大化实际图像和文本对之间的余弦相似度。这意味着将实际图像与最相关的文本进行匹配。
3)同时,通过最小化实际图像与其他所有文本之间的余弦相似度,使得实际图像与其他文本区分开来。这样可以确保实际图像在向量空间中远离其他文本。
4)最后,通过对之前计算的相似度分数进行优化,使用对称交叉熵损失来训练模型。这个损失函数可以确保实际图像与其相关文本之间的相似度高,而与其他文本之间的相似度低。
(就是加强绿色部分,减弱橙色部分)

通过这个对比预训练阶段,CLIP算法能够学习到图像和文本之间的关联性,并生成能够将它们统一起来的向量表示。

图像编码器Image Encoder
两种架构:
1)ResNet50
2)Vision Transformer(ViT)

文本编辑器Text Encoder
文本编辑器和图像编辑器类似,都是基于transformer架构。

等训练好了,然后进入前向预测阶段。首先需要对文本类别进行一些处理,拿 ImageNet 数据集的 1000 个类别来说,原始的类别都是单词,而 CLIP 预训练时候的文本端出入的是个句子,这样一来为了统一就需要把单词构造成句子,怎么做呢?可以使用 A photo of a {object}. 的提示模板 (prompt template) 进行构造,比如对于 dog,就构造成 A photo of a dog.,然后再送入 Text Encoder 进行特征提取,就 ImageNet 而言就会得到一个 1000 维的特征向量,整个过程如下:
在这里插入图片描述

最后就是推理见证效果的时候,怎么做的呢。这个时候无论你来了张什么样的图片,只要扔给 Image Encoder 进行特征提取,会生成一个一维的图片特征向量,然后拿这个图片特征和 1000 个文本特征做余弦相似度对比,最相似的即为我们想要的那个结果,比如这里应该会得到 A photo of a dog.,整个过程如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值