论文链接
网络
网络整体架构与普通autoencoder类似,但有一些优化。
Masking
首先,作者将图像的像素点划分为多个没有重合的小块(patch),然后遵从均匀分布(防止选择的小块趋向于图片中心),从这些小块中随机选择一定比例的小块,然后去除剩余的小块(mask),而被选择出的小块就是encoder的输入。
Encoder
encoder的主体是ViT,模型的输入是上一部分选择出的未被mask的部分,对输入做一个线性映射后再加一个位置编码,然后就可以把它输入到transformer里了。
Decoder
这一部分的输入不仅仅是上一部分encoder的输出,还包含第一部分(masking)mask的小块。对于这些小块,模型赋予它们一个相同的、可学习的特征向量。
对decoder的输入,仍然要加上一个位置编码,因为decoder也是一个transformer。
这一部分只有在预训练的时候才需要,当模型实际使用时,只需要encoder部分就可以了。
Loss
loss是MSE,loss只计算被mask的部分的重构误差。
一个变种是对每个小片(patch),计算它的均值和标准差,做一个标准化后再计算误差,效果会有所提升。
实验
实验部分讲解了模型相关参数的设置,如果需要使用这个模型的话可以详细分析,这里就不赘述了。
BS3_1 12th