motivation
在CV领域已有的预训练方法大多属于有监督,数据要求高。MAE基于自监督,且有效降低计算量。
算法流程
1、输入图像patch切分
2、encoder结构类似ViT,但是随机mask掉输入的75%的patch(mask服务分布保证以center为中心)
3、encoder输出+统一的mask patch embedding输入decoder
4、decoder网络很小,最后一层线性映射,每个token的channel等于patch像素点数,得到像素级重建
5、重建的loss为像素级的MAE
6、推理时,只是用encoder部分,输入全部的patch,获取整图的embedding
7、作为backbone,在分类、检测、分割等下游任务实验中表现优异
思考
1、与BERT的差异
MAE为了消除BERT训练mask推理无mask的GAP:在训练过程中,encoder直接去除了mask patch;decoder中输入统一的mask embedding,loss 计算也只计算mask patch。
2、和Swin transformer的差异
Swin transformer强调构建多层次结构;MAE强调低计算量的预训练
3、MAE和ViT的position embedding差异?
ViT的position embedding是一维可学习embedding,对推理时不同的patch长度采用2D 插值
MAE的position embedding使用sine-cosine全局编码
这里也体现出可学习position embedding和sine-cosine embedding的一个区别:
训练和推理不一致时,可学习的embedding将不再有效,需要插值使用;
sine-cosine embedding基于周期性的确定值,将可以直接使用
4、应用与小目标等边界场景?
MAE的网络中没有进行下采样,推测最终得到的feature map对小目标的检测更加有利