논문 읽기/Classification

[논문 읽기] MLP-Mixer(2021), An all-MLP Architecture for Vision

AI 꿈나무 2021. 7. 1. 22:08
반응형

 안녕하세요, 오늘 읽은 논문은 MLP-Mixer, An all-MLP Architecture for Vision 입니다.

 

 MLP-Mixer는 오직 MLP만을 사용합니다. MLP-Mixer는 두 타입의 레이어가 존재하는데, 하나는 channel-mixing MLP, 다른 하나는 token-mixing MLP 입니다. 이 두 타입의 레이어 블록을 반복적으로 적용합니다.

 

 channel-mixing MLP는 Xception에서 제안하는 1x1 conv로 채널간 연산을 수행하는 point-wise conv로 생각해볼 수 있습니다. 즉, CNN의 특별한 경우와 동일한 역할을 수행합니다. token-mixing MLP는 독립적인 채널에 1x1 conv를 spatial 에만 적용하는 depth-wise conv로 생각해볼 수 있습니다.

 

 정리하자면, channel-mixing MLP는 서로 다른 채널간의 communication을 허용하고, token-mixing MLP는 서로 다른 spatial location 사이에 communication을 허용합니다. 이 두 타입의 레이어를 반복적으로 적용한다면 최신 CNN 모델에서 사용하는 depth-wise convolution과 비슷한 연산을 수행할 것입니다.

 

 이 MLP-Mixer는 large dataset으로 pre-train한 결과 sota 성능에 근접합니다.

 

Mixer Architecture

 

 MLP-Mixer는 S개의 hidden dimension C를 지닌 image patches를 입력받습니다. 만약 기존 이미지가 H,W의 resolution을 지니고 있다면, 각 patch는 P,P의 resolution을 갖고, patch의 수는 S = HW/P^2가 됩니다. 모든 patch는 동일한 projection matrix에 의하여 선형적으로 projected 됩니다.

 

 MLP-Mixer는 동일한 size의 다수의 레이어로 구성되어 있으며, 각 레이어는 두 MLP block으로 이루어져 있습니다. 첫 번째는 token-mixing MLP입니다. 입력값 X의 각 column에 적용하는데, 이는 X를 전치하여 구현합니다. 각 column에 각각의 MLP를 적용합니다. 또한 MLP는 GELU, Residual connection, LayerNorm을 함께 이용합니다. 두 번째는 channel-mixing MLP block입니다. 이는 X의 row에 대하여 MLP 연산을 수행합니다.

 

 두 종류의 MLP block은 두 개의 FC layer와 그 사이에 비선형 함수를 row와 column에 독립적으로 적용합니다. 이는 depth-wise separable convolution과 상당히 유사하다는 것을 알 수 있습니다. 단지 차이점은 spatial location에 3x3 conv를 사용한다는 것과, MLP-mixer는 1x1 conv를 사용한다는 것(FC는 의미상 1x1 conv)입니다. 

 

 

column 차원은 patch size에 독립적이므로 MLP-mixer의 연산량은 이미지의 pixel 수에 선형적으로 증가합니다. 이는 일반적인 CNN과 동일합니다.

 

 CNN은 layer가 깊어질 수록 image의 resolution이 감소하지만 mlp-mixer는 유지됩니다. 또한 Position embedding을 사용하지 않습니다. 입력값의 column에 연산을 수행하는 token-mixing MLP가 이미 순서에 민감하기 때문입니다. Mixer는 마지막에 global average pooling과 같은 일반적인 classification head를 사용하여 물체를 분류합니다.

 

 모델을 학습할 때는 stochastic depty, dropout, mixup, RandAugment 등 정규화 기법을 사용합니다.

 

 MLP-Mixer의 초기 layer는 local 정보를 학습하고, 깊어질 수록 global 정보를 습득한다고 합니다. 또한 patch 순서를 변경하여도 성능에 큰 변화가 없습니다. 반면에 ResNet은 이미지 내의 pixel 위치를 변경하면 성능이 하락됩니다. 이는 MLP-Mixer가 global한 정보를 학습한다는 의미로 이해할 수 있습니다. MLP-Mixer는 dataset이 커질수록 ViT보다 더 많은 이득을 얻습니다. 이는 ViT에서 self-attention이 Mixer 구조에의해 발견된 근본적인 분포를 포착하지 못한다고 연구자는 추측합니다.

 

Expreiments

 

 

 

 


참고 자료

[1] https://arxiv.org/pdf/2105.01601.pdf

반응형