https://github.com/facebookresearch/mae

 

GitHub - facebookresearch/mae: PyTorch implementation of MAE https//arxiv.org/abs/2111.06377

PyTorch implementation of MAE https//arxiv.org/abs/2111.06377 - GitHub - facebookresearch/mae: PyTorch implementation of MAE https//arxiv.org/abs/2111.06377

github.com

 

1. Abstract

이 논문은 masked autoencoder를 통해 성능을 끌어올립니다. 대부분의 autoencoder는 encoder, decoder가 대칭적인데 반해, 여기선 비대칭입니다. 인코더에 비해 디코더는 파라미터가 적습니다. 인코더는 전체 이미지에서 마스크되지 않은 패치만 이용합니다. 디코더는 인코더를 통과한 feature과 mask token을 가지고 원래 이미지로 복구합니다. 마스크하는 비율은 75퍼센트로 꽤 높습니다.

 이 논문에선 masked autoencoding이 NLP task와 computer vision에서는 무엇이 다른지 분석합니다. Information density가 다르다고 말합니다. 언어는 사람에 의해 만들어진 신호입니다. 반면에,이미지는 spatial redudancy를 갖는 자연적인 신호입니다. 하나의 패치를 빼버리면, 주변 패치들이 이 정보를 어느 정도 커버 칠 수 있습니다. 이러한 점을 해결하기 위해 마스킹하는 패치의 비율이 상당히 높습니다.

 vision에서는 디코더가 픽셀을 reconstruct를 합니다. 따라서 output은 lower semantic elvel을 가지고 있습니다. 반면에 언어는 많은 semantic information을 가지고 빠진 단어를 예측한다고 합니다. 

 

2. Method

 왼쪽은 input, 중간은 decoder의 output, 오른쪽은 input 원본입니다.

마스킹은 랜덤하게 합니다. 이때 마스킹 비율은 상당히 높아야 합니다. 왜냐하면 앞에서 이야기 했다시피, 주변 패치만 가지고 예측을 할 수 없게끔 해야 하기 때문입니다.

 

MAE encoder

ViT 구조를 따릅니다. 여기서도 패치 임베딩을 할 때에 positional embedding을 해줍니다. MAE에서는 input size가 매우 작기 때문에, 연산량이 많이 줄어듭니다. 마스킹을 한 패치 전체는 decoder에서 이용합니다.

 

MAE decoder

 여기선 encoded visible  패치들과 mak token전부 이용합니다. mask token들도 전부 positional embedding을 해주어야 합니다. 하지 않으면, 이미지에서 어디에 위치한 지 알 수 없습니다. 여기서 장점은 encoder의 디자인과 전혀 상관없이 독립적이라는 점이 좋다고 논문에서는 강조합니다.

 

loss로는 MSE를 이용합니다.

반응형

+ Recent posts