CLIP探索笔记

CLIP探索笔记

记录CLIP的流水账,训练和推理是如何完成的?
每一次阅读都有不同的领悟和发现,一些简单的想法。

官方信息

  • Code
  • Paper
  • Blog
  • 只有预测代码+模型,没有训练代码

它想干嘛?

他想做一个分类任务,一个模糊分类的任务;
他还可以做图文匹配;

训练阶段

  • Text Encoder不需要训练,直接拿现成的文本模型来用就可以了,比如GPT,提取文本特征

    • Text Encoder可以是Bert, GPT
    • 作者统一采用GPT-2里的Transformer结构; 对于base size model,使用63M-parameter 12-layer 512-width model with 8 attention heads; model width则随着image encoder的size增加而增加。 输入句子的最大长度为76。
  • Image Encoder需要训练,提取图片特征

    • Image Encoder模型可以是vgg,resnet,vit等
    • 代码中用的是CNN,resnet结构
  • 计算余弦相似度

    • 论文中给出了伪代码,文本特征和图像特征,分别和真实标签特征做相似度计算,然后再求平均
  • 对角线是正样本

CLIP探索笔记_第1张图片
计算LOSS的伪代码
CLIP探索笔记_第2张图片

推理阶段

  • 对一张图,给出预设文本提示(任意n个),预设答案n个
    • 预设的文本提示很重要,影响特征值对比
    • 文本的预测是模糊预测的,比如:一只猪 或 有一头猪,和之前的VGG,resnet直接输出label值不同;
    • 以前咱们是直接预测是猫或是狗,CLIP说 我们不这样干,不做精准的文本预测,我们考虑做相关性预测
  • 计算图像数据的特征
  • 计算图像特征和文本特征的相似度,相似度最高的就是答案

CLIP探索笔记_第3张图片

实验对比

CLIP探索笔记_第4张图片

代码测试

Hugging Face

代码复现

Flickr30k图像标注数据集下载及使用方法

交流群

CLIP探索笔记_第5张图片

CLIP探索笔记_第6张图片

你可能感兴趣的:(机器学习,CLIP)