Search

'MLP-Mixer'에 해당되는 글 1건

  1. 2022.12.02 MLP-Mixer: An all-MLP Architecture for Vision (2021 NeurIPS)

안녕하세요. KDST팀 김유진입니다. 10월 21일에 진행했던 MLP-Mixer에 대한 세미나 내용을 간략하게 요약해보도록 하겠습니다. 

 

 

현재까지 Computer vision task를 수행하기위해 다양한 아키텍쳐가 제안되어 왔습니다. 그중에서도 MLP-Mixer는 기존의 CNN 기반의 아키텍쳐와 달리 MLP layer만을 활용하여 아키텍쳐를 구성한다는 특징이 있습니다. 

Computer Vision 분야를 위한 기존의 아키텍쳐 종류

MLP-Mixer는 기존 CNN기반의 아키텍쳐와 달리 레이어의 노드간 완전 연결을 통해, locality 현상을 극복하고 global feature를 학습할 수 있습니다. 또한 Vision Transformer가 추구하는 방향 (inductive bias문제 해결, self-attention을 활용하여 global feature를 학습) 과 유사한 방향을 추구하고 있습니다. 이러한 MLP-Mixer는 비록 ImageNet clasification 성능에서 SOTA를 달성하지는 못하지만 기존 CNN, ViT와 성능이 거의 유사하며, 기존의 아키텍쳐 대안으로 활용할수 있습니다.

 

MLP-Mixer 구조

MLP-mixer의 큰 특징으로는 1) Token Mixing Layer와 2) Channel Mixing Layer를 가진다는 점입니다. 

먼저 Token Mixing Layer는 입력으로 들어온 patch들에 대해서 "공간적"으로 정보를 섞어주는 역할을 수행합니다. 모든 patch를 Per-patch Fully-connected layer에 포워딩 시켜 얻게된 CxS 벡터를 transpose하여 SxC로 만들어주고, 메트릭스의 각 행을 MLP Layer의 입력으로 넣어주는 과정을 이야기합니다. 이때, 메트릭스의 한 행에 모든 패치에 대한 정보가 포함되어있으므로, patch들 사이의 공간적 정보를 학습할 수 있습니다. 두번째로 Channel Mixing Layer에서는 다시 SxC 매트릭스를 CxS형태로 transpose하여 한개의 패치 내에서 채널 정보를 mixing합니다. 이때, 하나의 패치 내의 locality 정보를 학습할 수 있습니다. 

 

MLP-Mixer 아키텍쳐 일반화 식
MLP-Mixer forwarding phase

마지막으로 MLP-Mixer에 데이터를 forwarding 하는 과정을 식으로 나타내면 위와 같습니다. 위의 U,Y 는 아래 MLP-Mixer forwarding phase 그림을 참고하시면, 도출해 낼 수 있습니다.

 

각 데이터셋에 대한 다양한 아키텍쳐의 성능 비교표

다양한 데이터셋에 대해서 Image classification 성능을 비교한 표를 보면, MLP-Mixer가 top-1 accuracy SOTA 성능을 달성하고 있지는 않지만 ViT나 CNN 아키텍쳐 대비 comparable한 성능을 달성한다는 것을 알 수 있습니다. 하지만 SOTA를 달성하고 있는 아키텍쳐 대비, Throughput은 높으며 TPU core per day는 낮은 것을 알수있습니다. 이를 통해 MLP-Mixer는 보다 효율적으로 SOTA성능에 가깝게 달성가능하다는 것을 알 수 있습니다. Top-1 accuracy와 computational resource 간의 trade-off가 발생할 수 있으므로, 사용자는 자신의 개발환경에 맞는 아키텍쳐를 선택해야 할 필요가 있습니다. 해당 논문의 저자들은 MLP-Mixer가 practical하게 CNN과 ViT를 대체할 수 있을것이라 기대하고있습니다. 

 

자세한 내용은 MLP-Mixer 논문을 참고해주세요. 감사합니다:)