Kaiming He, Xinlei Chen, Saining Xie, Yanghao Li, Piotr Dollár, Ross Girshick
Meta (FAIR)
https://arxiv.org/abs/2111.06377
label없는 데이터의 문제 해결을 위해 NLP에서는 SSL 활용.
예를 들어 GPT와 같은 autoregressive language modeling 방법과 BERT와 같은 masked autoencoding 방법.
masked autoencoder는 CV에서도 많이 활용되지만 NLP 대비 성능이 뒤처짐.
그렇다면 masked autoencoder에서 vision와 language 간의 차이는 어디에서 기인하는 것일까.
3가지 관점
1) architecture 차이
Vision에서는 CNN 사용. 이는 간극이 발생. 그러나 최근 ViT로 일부 해결
2) Information density 차이
language는 highly semantic하고 information-desne signal이기에 문장의 중간중간 mask된 일부 단어에 대한 예측이 쉽다.
그러나 vision은 spatial redundancy가 많은 signal
이 때문에 전체적인 이해를 요구할 수 있고 중복성을 감소시키기 위해 random patch의 많은 부분을 masking하여 활용
3) Autoencoder의 decoder
vision에서는 decoder를 통해 pixel reconstruct하기 때문에 잠재 공간에서의 seantic level에서 중요한 역할을 하지만, language는 decoder를 통해 semantic 정보를 담은 단어를 예측한다. 이는 vision에 비해 상대적으로 사소하다.
저자들은 visual representation learning을 위해 간단하고, 효과적이며, scalable한 masked autoencoder(MAE)를 제안한다.
reduce overall pre-training time by x3 or more and likewise reduce memory consumption, enabling us to easily scale our MAE to large models.
achieves better results
Masked Language modeling
BERT, GPT
Autoencoder
Denoising autoencoder (DAE)
Masked image encoding
Vision : DAE, Context Encoder, ViT, BEiT
NLP : Transformer, iGPT
Self-supervised learning
pretext task, Contrastive Learning
간단한 autoencoder 구조
그러나 고전적인 방법과 달리 asymmetric design을 취함.
the encoder to operate only on the partial, observed signal (without mask tokens)
a lightweight decoder that reconstructs the full signal from the latent representation and mask tokens.
Masking
ViT
겹치지 않은 patch들을 uniform dist에 따라 교체 없이 random patch sample 진행 : random sampling
높은 masking 비율을 통해 이웃 patch들로 답을 추론할 수 있는 것을 방지하고 redundancy 제거.
uniform dist를 통해 center bias 방지.
MAE encoder
ViT encoder 사용
unmasked patch만 적용.
linear projection에 의해 patch embed, positional embedding 진행. Transformer block 통과
그러나 25%의 patch만 활용.
MAE decoder
encoded visible path와 mask token 모두 활용.
여기에 위치 정보를 위해 positional embedding을 모든 token에 더함.
MAE decoder는 image reconstruction을 위해 오직 pre-training동안 사용.
상대적으로 가벼운 decoder는 적은 리소스와 시간 소모
Reconstruction target
decoder 마지막 layer는 linear projection
pixel space에서의 원본 이미지와의 MSE loss fucntion
Simple implementation
간단 적용
First we generate a token for every input patch (by linear projection with an added positional embedding).
Next we randomly shuffle the list of tokens and remove the last portion of the list, based on the masking ratio.
After encoding, we append a list of mask tokens to the list of encoded patches, and unshuffle this full list (inverting the random shuffle operation) to align all tokens with their targets.
The decoder is applied to this full list (with positional embeddings added).
a single 224x224 crop
Baseline: ViT-Large (ViT-L/16)
fine-tuning is only for 50 epochs (vs. 200 from scratch)
Masking ratio
The ratio of 75% is good for both linear probing and fine-tuning.
Decoder design
Table 1a : A sufficiently deep decoder is important for linear probing.
Table 1b : 8 blocks and a width of 512-d
Mask token
Table 1c : If the encoder uses mask tokens, it performs worse
by skipping the mask token in the encoder, we greatly reduce training computation.
Reconstruction target
Table 1d: Using pixels with normalization improves accuracy.
Data augmentation
Table 1e :
Our MAE works well using cropping-only augmentation, either fixed-size or random-size (both having random horizontal flipping). Adding color jittering degrades the results
Mask sampling strategy
Training schedule
800-epoch pre-training
Comparisons with self-supervised methods
Comparisons with supervised pre-training
https://github.com/facebookresearch/mae
https://youtu.be/mtUa3AAxPNQ?si=lyizuHVDsa0keurR