https://arxiv.org/abs/2201.09792
Vision분야와 Transformer를 결합한 Vision Transformer가 좋은 성능이 나온다. ViT는 Transformer 내부의 self-attention layer를 사용하기 위해 Patch를 사용한 모델이다. 저자는 ViT가 좋은 성능을 내는데에는 Transformer가 사용되었기 때문이 아니라 Patch 때문일 것으로 추측한다.
ViT에서 self-attention layer를 사용하기 위해 Patch를 사용한 이유는 무엇일까? NLP에서는 attention 하나 당 단어 하나에 매칭시켜 계산하면 됐었지만 Vision에서는 이론상 픽셀마다 매칭시켜야 해서 계산량이 너무 커지는 것이 문제이기 때문이었다.
이렇게 하면 attention 레이어의 크기가 작아져 계산이 빨라진다.
저자는 ConvMixer라는 간단한 모델을 고안했다. 이러한 면에서 ViT와 유사하다:
하지만 ConvMixer는 MLP-Mixer와 달리 기본적인 Convolution은 사용하였다.
ConvMixer는 엄청 간단한데도 ResNet의 파라미터 수를 가지는 기본적인 Convolutional 네트워크를 능가하고 ViT나 MLP-Mixer만큼 성능이 잘 나온다. 특히 작은 데이터셋에서 성능이 좋다.
ConvMixer는 다음과 같은 단계로 이루어진다.
Patch Embedding
Patch크기 p, Embedding dimmension h라 할 때 Patch embedding은 커널 크기가 (p, p)이고 stride가 p이며 output channel이 h인 Convolution layer를 통과시킴으로써 계산한다.
Convolutional blocks
depthwise, pointwise convolution을 반복하여 구성된다. 각 convolution layer 뒤에 activation function과 batch normalization이 붙는다.
특이하게도 depthwise convolution에서 커널 사이즈가 커야 성능이 가장 좋았다.
Classifier
Global Pooling layer를 통과시킨 뒤 Softmax Classifier를 사용한다.
이러한 ConvMixer는 4가지 조절가능한 파라미터가 있다.
저자는 MLP-Mixer 논문에서 영감을 많이 받았다고 한다.
멀리 떨어진 정보와 섞을 수 있다는 것은 receptive field가 그만큼 넓어질 수 있음을 의미하기 때문에 큰 해상도의 입력으로도 좋은 성능을 낼 수 있다.
이러한 점에서 꼭 기존의 피라미드형 구조의 Convolutional 네트워크만을 고집할 필요는 없다는 걸 알 수 있다.
Isotropic architecture(기존의 downsampling의 반복을 통한 피라미드형 구조가 아닌, Patch embedding을 통한 크기가 유지되는 구조의 모델)에 관한 연구
Patch Embedding을 개선시키는 방향으로의 연구
CNN와 ViT를 결합시키는 연구
ConvMixer와 같은 isotorpic architecture로 sementic segmentation, object detection하기
ConvMixer를 Wightman이 Resnet의 성능을 끌어올리기 위해 적용했던 방법처럼 로우레벨에서 최적화하기