논문 링크 : https://arxiv.org/abs/2111.06377
저자 : Kamming He
인용 : 2170 (2023.06.22)
소속 : FaceBookAI Research (MetaAI)
학회 : CVPR2022
Summarize
- 아래의 왼쪽 이미지가 이 논문의 처음이자 끝이다. 이미지를 일정한 크기의 Patch로 자른 후, 손상되지 않은 부분만 입력으로 넣어, 원본 이미지로 복구 시키는 방법을 사용한 Pre-train model을 만든다. 그 후 Downstram task에 적용한다.
하단의 우측 이미지가 이 논문의 결과이다. 왼쪽이 masking 된 이미지, 중간이 이 논문이 복구한 이미지, 오른쪽이 원본.
Abstract
- Masked Autoencoders (MAE)를 Self-supervised Learning을 활용하여 Computer vision 분야로 확장시킨 논문이다.
- 이미지를 랜덤한 Patch 조각으로 자른 다음, 일부 패치를 없앤 후 입력으로 넣어, 원본 이미지로 복구시키는 것이 목표
- Encoder와 Decoder의 구조가 다른 asymmetric한 구조를 가지며, 75%의 높은 masking을 바탕으로, 입력으로는 손상되지 않은 (회식이 아닌) 패치 (25%)를 넣어준다. Decoder에서는 masking 된 부분 (회색부분, 75%)를 원상복구 시킨다.
- 위의 방법을 바탕으로한 방법론은 큰 모델(ViT-Huge)을 Efficiently & Effectively 하게 만들어준다. (3배 이상의 학습 속도)
Introduction
- AlexNet → ResNet → Transformer로 이어지는 딥러닝 모델의 구조는 기능 및 용량이 상승하고 있다. 또한 하드웨어 장치의 급속한 성장은 큰 데이터를 다를 수 있게 됌.
- 데이터 사용에 대한 욕구는 NLP 분야에서 self-supervised learning에서 아래와 같은 해결책으로 나타나게 된다.
ex) autoregressive language* modeling in GPT and masked autoencoding in BERT.
autoregressive modeling* : RNN에서 하나의 셀 or Transformer의 Deocder 구조처럼, 이전 층의 출력 값을 다음 층의 입력으로 활용하는 것.
- GPT와 BERT의 공통점은, 데이터의 일부를 지운 후, 지워진 부분을 학습하는 것. 그리고 이러한 방법은 큰 성능 향상을 가져옴.
- NLP 분야에서 성공을 가져온 masked autoencoding 방식은 왜 Vision에서 성공하지 못했을까? 그리고 vision과 language 분야에서의 masked autoencoding의 차이는 무엇인가?
1. Vision 분야의 cnn은 규칙적인 격자 구조를 가지고 있기에 masked token, positional embedding과 같은 "indicator"로 합쳐지기 어렵다. (하지만 나중에 나온 ViT에서는 패치 단위로 나누어서 사용하며 문제해결.)
2. information density의 차이
- Language는 인간이 만들어낸 신호로, highly semantic and information-dense하다. 정보의 밀도가 높으며 각각의 단어가 중요한 의미를 가진다.
- Image 분야는 heavy spatial redundancy하여, 일부 패치가 없어져도, 주위 패치들로 정보 파악이 가능하다.
- 따라서 본 논문에서는, 이를 극복하기 위해 masking ratio를 75%로 매우 높인 random masking 기술으로 redundancy를 줄이고 전체적인 이미지의 이해를 요구한다.
3. autoencoder의 decoder는 latent representation을 입력으로 되돌리는 역할을 한다.
- Vision 분야에서는 lower semantic 수준의 pixel 단위로 재구축을 한다.
- 각각의 단어가 rich semantic 정보를 가진 language task에서 masking된 단어를 예측하는 것과 차이가 존재한다.
- BERT의 Decoder는 MLP를 사용하여 매우 단순하지만, image에서는 latent representation의 semantic level을 학습하는 decoder를 구성하는 방법이 매우 중요하다. → asymmetric한 Encoder-Decoder 구조를 채택한 이유이다.
정리:
1. masking된 부분을 제외하고 입력으로 넣는 방식을 통해 연산량을 크게 줄일 수 있었다.
2. win-win scenario: 25% 패치 만으로도 정확하게 최적화 + 3배 이상의 pre-training time 감소 + 메모리 사용량 감소.
3. ViT Huge를 사용하여 87.8% (IN-1k)
Related Work.
1. Masked Ianguage modeling
- autoregressive 한 모델들 (BERT, GPT)는 missing word를 찾아내는 방식, pre-train을 통한 downstream으로 확장이 가능하기에 NLP에서 큰 성공을 거두었다.
BERT도 요약해서 정리를 올려야겠다. GPT는 시리즈를 묶어서 올려아하나.. 근데 GPT-3 few shot learners가 좀 긴데.. 흠.. 아무튼
2. Autoencoding
- MAE는 Denosing Autoencoder의 형태 중 하나, 하지만 기존의 Classical DAE와는 차이가 있다.
3. Masked Image encoding.
- Stacked denoising autoencoder를 시작으로, 이미지에 masking 처리 후, 복원하려는 시도가 이어졌다.
- iGPT, BEiT, ViT 등에서 Masked image encoding을 시도한 사례가 있다. (ViT를 self-supervised에서 쓸때)
4. self-supervised learning
- pretext를 활용하여 task를 self-supervised learning으로 해결한 논문들에 대해서 언급하였다.
- 최근에는 이미지의 similarity, dissimiarity를 비교하는 Contrastive Learning이 유명해지기 시작했다. (DrLIM, Moco, SimCLR 등) 또한 최근 밝혀진 특징은 Data Augmentation이 중요하다는 것이다. (SimCLR, BYOL, Siamese)
- 하지만 우리가 하고자 하는 Autoencoding과는 범위가 멀기 때문에 PASS
아래 카테고리 페이지에 해당 논문에서 언급한 Contrastive Leaning의 시초 및 Moco에 대해 정리해 두었다. 다 읽어두고 정리를 안했네...
Approach
- 주어진 masking 이미지를 토대로 원래 이미지를 재구축 하는 것이 목표
- Classical한 autoencoder와 다른 점은, asymmetric design을 사용했다는 점이다.
masking
- masking 방식은 ViT와 동일하게 균일한 패치 단위로 나눈 후, .Random하게 패치를 고르는 Random sampling을 실시.
- 75%에 대해 Masking을 시도하여, 이미지의 여분을 많이 제거 → 이는 주위 패치를 가지고 복원하는 과정에서 더욱 어렵게 만듬으로써 효과적인 Encoder를 만들 수 있게 된다.
- Uniform distribution이 아닌 Random distribution을 사용하여 패치가 중앙에 몰리는 것을 방지.
MAE Encoder
- Mask 토큰이 아닌을 사용하지 않은 25% 부분의 조각만 사용함으로써 메모리와 연산량을 줄일 수 있다.
- ViT와 같이 Linear projection 후, Postiional Embedding을 하여 입력으로 들어간다.
MAE decoder
- Decoder의 입력은 masked token + visible patch가 들어간다. 이 때 masked token은 Share parameter! (Figure 1참조)
Experiment
- 마스킹 비율에 따른 성능은 위의 사진과 같다. (fine-tune vs linear probing)