CLIP(Contrastive Language–Image Pre-training)论文阅读

1. 简介

CLIP(Contrastive Language–Image Pre-training)是OpenAI第一篇关于多模态的论文,在2021年1月跟DALL・E一起发布。其中DALL・E用于文本生成图像,CLIP用于图像分类。CLIP跟之前常用的有监督图像分类相比不同,学习中结合了文本的语义信息(natural language supervision),可以实现类似GPT-3的zero-shot的能力。

CLIP有以下两个优势:

  • 大幅降低标注成本。之前标注都需要人手工标注大量高质量样本,现在通过搜索引擎自动构建4亿条图像-文本对用于训练。
  • 迁移泛化能力强。做为预训练模型,跟特定任务解耦(task-agnostic),可以实现类似zero-shot的效果。

2. 实现思路

2.1 数据构建

通过搜索引擎进行了500000次query,产生了4亿条图文对(image-text pair), 平均每个query产生20000条图文对。

2.2 网络构建

在这里插入图片描述

  1. 针对图像和文本分别构建一个Image-EncoderText-Encoder, 使用对比学习(Contrastive Learning)来进行训练。给定一个batch为N的图像-文本对(image, text),CLIP尝试预测NxN个可能的关系, 图中蓝色部分就是要预测的部分。这种深度度量学习(deep metric learning)最早是在multi-class N-pair loss中引入。
  2. 基于分类标签字段(car/dog)和prompt模版(a photo of a {obj})创建分类标签句子文本, 通过Text-Encoder进行向量编码
  3. 图像通过Image-Encoder进行图像编码,计算跟文本向量距离,得到分类结果
  4. 伪码如下:
# image_encoder - ResNet or Vision Transformer
# text_encoder - CBOW or Text Transformer
# I[n, h, w, c] - minibatch of aligned images
# T[n, l] - minibatch of aligned texts
# W_i[d_i, d_e] - learned proj of image to embed
# W_t[d_t, d_e] - learned proj of text to embed
# t - learned temperature parameter
# extract feature representations of each modality
I_f = image_encoder(I) #[n, d_i]
T_f = text_encoder(T) #[n, d_t]
# joint multimodal embedding [n, d_e]
I_e = l2_normalize(np.dot(I_f, W_i), axis=1)
T_e = l2_normalize(np.dot(T_f, W_t), axis=1)
# scaled pairwise cosine similarities [n, n]
logits = np.dot(I_e, T_e.T) * np.exp(t)
# symmetric loss function
labels = np.arange(n)
loss_i = cross_entropy_loss(logits, labels, axis=0)
loss_t = cross_entropy_loss(logits, labels, axis=1)
loss = (loss_i + loss_t)/2

2.3 细节说明

  1. 没有使用ImageNet的权重初始化Image-Encoder
  2. 论文借鉴Contrastive Learning of Medical Visual Representations from Paired Images and Text,但不同的是删除了文本转换函数; 简化了图像转换函数
  3. 使用linear-projection(线性映射)将encoder表示映射到multi-modal向量空间
  4. 替换global average pooling为attention pooling机制
  5. 使用adam优化器,temperature参数初始为0.07
  6. Image-Encoder分别尝试了ResNet-50和ViT
  7. Text-Encoder为Transformer, 最大长度为76

2.4 效果

在这里插入图片描述
在这里插入图片描述

3. 参考文档

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MLTalks

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值