深度学习CLIP

CLIP

Contrastive Language–Image Pre-training 2021/01/05

CLIP: Connecting text and images (openai.com)

在这里插入图片描述

# 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
  1. 图片和文本都分别过自己的编码器,之后proj到相同长度的向量空间并做归一化(BN)
  2. 图片和文本的embedding之间做dot得到相似度矩阵
    • 类似self-attention里的Q*K
  3. 相似度矩阵和标签之间计算CE loss
    • 相似度矩阵维度为(n, n)
    • 标签为(n, n)的对角矩阵
    • 对第一维和第二维都做CE之后求平均为总loss
    • 两维分别表示图片对文本的attn和文本对图片的attn
CE loss
Text
Text Encoder
T_f
Linear & BN
T_e
Image
Image Encoder
I_f
Linear & BN
I_e
dot
similarity matrix
label
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值