📌 본 내용은 논문 입문자가 개인적으로 필기한 내용입니다. 내용에 오류나 피드백이 있으면 말씀해주시면 감사히 반영하겠습니다.📌
😊 개인 기록용 포스트입니다
딥러닝이 핫해지고 하드웨어들이 발전하면서 거대한 모델들이 엄청나게 많은 데이터를 overfit하게 학습하게 되었고 수 백만의 labled 이미지를 필요로 하게 되었다.
NL에서는 autoregressive 언어 모델인 GPT와 masked autoencoding 모델인 BERT가 성공했는데,
매우 simple한 아이디어: 데이터의 일부를 지우고, 지운 내용 예측하도록 모델 학습
NLP: highly semantic & information-dense
CV: sptial redundancy (이웃 패치로부터 missing 패치가 충분히 회복될 수 있음)
⇒ 해당 차이점은 높은 비율의 마스킹을 통해 충분히 완화될 수 있다.
위와 같은 차이점들을 고려하여 본 연구는 MAE의 간단하고, 효과적이고, Scalable한 형태로 visual 표현학습을 할 수 있도록 제안한다.
모델 구조
- 모델의 구조는 아래와 같이 인코더와 디코더가 비대칭적인 형태를 띈다.
**인코더**는 **마스크 토큰이 없는 visible한 패치**만 처리하게 되고,
**디코더**는 훨씬 가벼운 형태로 **마스크 토큰과 함께 latent representation을 사용**하여 재구축하게 된다.
Contribution
NLP에서의 성공적인 사전학습 모델인 BERT와 GPT가 대표적이다.
입력 시퀀스의 일부를 지우고, 지워진 부분을 재복원할 수 있도록 학습하는 전략이다.
오토인코더는 인코더에서 입력 데이터를 잠재 표현에 매핑하고, 디코더에서 재복원하는 모델이다.
DAE는 입력 신호를 망가뜨리고, 재복원 시에 온전한 신호로 복원하는 방법이다.
픽셀을 마스킹하는 방법이나 색상 채널을 제거하는 방법이 DAE의 일종이라고 볼 수 있다.
마스킹에 의해 망가뜨려진 이미지로부터 표현을 추출하는 방법이다.
DAE에서의 노이즈의 일부로 마스킹을 보는 것이다.
초기 연구로는 iGPT, BEiT 등이 있다.
사전학습을 위해 여러 pretext task 집중하는 방법이다.
최근에는 대조학습이 제일 유명하긴 한데 이는 data augmentation에 너무 의존한다는 단점이 있다.
오토인코더를 활용하는 것은 개념적으로 다른 방향을 추구하는 것이고, 제시하고자 하는 행동 또한 다르다.
모델의 구조는 앞서 계속 언급했듯, 오토인코더의 형태를 띈다.
인코더는 입력 데이터를 잠재 표현으로 매핑하고, 디코더는 잠재 표현으로부터 입력 데이터를 복원한다.
하지만 일반적인 오토인코더와는 다르게, MAE의 인코더는 마스킹이 되지 않은 부분만을 입력으로 사용하고, 디코더는 마스크 토큰과 잠재 표현 모두를 사용해서 입력 신호를 복원한다.
그리고 디코더는 인코더보다 훨씬 가벼운 형태를 띈다.
사전학습은 ImageNet-1K 데이터셋을 사용했다.
Baseline 모델은 ViT-Large를 사용했는데, 이는 굉장히 크기 때문에 오버피팅 문제가 존재한다.
하지만 제안하는 MAE를 사용하면 지도학습 방식으로 사전학습 시키는 것보다 오버피팅 문제가 적기에 훨씬 성능이 좋다.
scratch, our impl은 규제 term을 하나 추가해서 성능을 높인 것이다.
Ablation study의 시작은 마스킹 비율에 관한 실험으로, 75%가 가장 좋은 성능을 얻음을 확인할 수 있다.
실제 이미지 예시를 살펴봐도 75%를 마스킹했을 시에는 상당히 괜찮게 복원하지만, 이보다 더 많은 비율을 마스킹하면 복원이 힘든 것을 볼 수 있다.
위 표들은 Ablation study의 각 결과들이다.
Decoder depth, width를 보면 그렇게 깊게 혹은 넓게 쌓을 필요가 없음을 알 수 있다.
인코더에서는 masked token을 사용하지 않을 때가 더 좋은 성능에 더 빠른 연산 속도를 보였다.
Reconstruction target을 여러 시나리오로 구성 가능한데, 정규화한 픽셀 값을 복원할 때가 성능이 가장 좋았다.
Data augmentation에 있어서는 꽤나 강건한 것을 알 수 있다.
Mask sampling은 랜덤하게 할 때가 가장 좋았다.
오히려 랜덤하게가 아니라 다른 규칙을 기준으로 하면 많은 부분을 마스킹할 수 없게 되고, 많은 부분을 마스킹하면 왜곡된 결과가 나오는 것을 알 수 있다.
대조학습 모델 MoCo나 지도학습 기반 BEiT 같은 모델을 활용해서 사전학습하는 것보다 MAE가 더 뛰어났다.
Fine-tuning 할 수록 성능이 더 좋아지긴 하는데, 큰 차이가 없기 때문에 어느 정도는 Freeze 시키고 뒤 쪽만 Fine-tuning하는 것이 더욱 좋은 전략일 것이다.
Semantic segmentation Task에서도 MAE로 사전학습 시켰을 때 mIoU가 가장 좋았다.
다른 이미지 데이터셋에 대한 분류 실험에서도 MAE가 제일 좋았다.
Reconstruciton target을 픽셀로 할 것이냐, Token으로 할 것이냐 고민할 수 있는데,
대부분의 전이학습 상황에서 픽셀로 할 때 성능이 더 우수했다.
NLP에서 성공적이었던 자기지도학습 방법 BERT를 성공적으로 컴퓨터 비전에 접목시켰다고 할 수 있다.
그치만 논하고자 하는 것은 NLP에서는 결국 Semantic한 단어를 가리게 되는데,
비전에서의 패치가 Semantic하냐는 것이다. 그렇다면 픽셀도 Semantic 한가?
그래서 사실 Semantic 한 것을 가리려면 객체(Object)를 가리는 것이 더욱 논리적일 것이다.
하지만 그러기에는 어려우니까 저자는 높은 마스킹 비율을 사용해서 대부분을 가려버리면 비슷한 효과가 있지 않을까 주장하는 것이다.