# VIT
将 transform 思想运用于视觉问题
# 核心
- 将图片切为 patch,对应 token
- 增加可学习的位置编码
- 头部增加 token,类似 cls,用于分类
# 关于结果
-
patch size 越小,序列越长,效果越好
-
数据集越大,效果越好
-
比 resnet 快!成本低节省算力
# 关于 embedding
- 用 1024 个卷积核为每个 patch 卷积
由于 cnn 操作本身就会带来归纳偏置,及:
- 局部性
- 平移不变性
所以 VIT 比 resnet 学的慢
# CLIP
训练一个模型对任意类别预测,不用人工标注
使用 image encoder 和 text encoder,然后将两个向量对齐
使用图文配对任务训练
# 关于 image encoder
- 模型深度、宽度,图像分别率同时增加计算量更好,不要光增加一个维度
# 关于推理
- nlp 生成 label text

- prompt ensembling,多个 label 模板分别计算相似度,最后取平均

# MOCO
# 对比学习
使用正例对、负例对学习样本的特征表示
因为构造方法简单,所以是无监督的
如果希望效果好,需要
- 负例尽可能多
- 负例尽可能一致
# 核心
-
使用 EMA 作为动量模型(教师模型),用来生成 key
-
损失函数为 InfoNCE
-
使用温度系数,温度高 softmax 后越平均;温度低 softmax 后越差异
# ALBEF
根据前人工作,我们总结了多模态理想框架的要求:
- 图像、文本应该分别先编码
- 图像编码器的参数量应该比文本大,因为 token 附带更多语义
- 融合编码器不能太简单
# 核心

- 对于 encoder 获取的特征,先使用 clip 思想对齐
- 使用 moco 思想,用动量模型生成负例,进行对比学习(特征对齐损失 ITC)
- 用难负例(相似度最高的负例对)进行
图片文本比配任务(ITM) - 引入
带掩码的语言模型任务(MLM)
# 动量蒸馏
有时训练数据的 label 不一定最合适,
不光考虑采集数据中的 label,更考虑动量模型的结果
把动量模型看作教师模型
# BLIP
- 又检索(encoder)又生成
- 解决图文对数据的质量问题(噪声)
# 核心

- label smoothing,答案是土豆,但是也可以是马铃薯,可以是洋芋;用 探索,让答案不那么唯一

- captioner 生成、filter 判断,两个模型对抗,用更好的数据结果重新训练一遍
# Flamingo
few-shot 模型
利用已有视觉模型与大语言模型
# 核心

- 通过 perceiver resampler,将视觉 encoder 的结果作为 kv 喂给 cross attention,最后输出长度为 64 的视觉 token
- 用 tanh gating 的 decoder 逐渐从 0 给文本生成器注入视觉信息
# BLIP2
