Abstract
이 논문이 발표되기 까지는 트랜스포머는 자연어 처리 태스크에서는 표준 모델이라고 할 만큼 많이 사용되고 있었지만, 컴퓨터 비전 태스크에서는 많이 사용되지 않았다. 비전 분야에서는 Attention이 CNN의 일부로써 적용되어왔습니다. 놀라운 점은 CNN을 사용하지 않고도 이미지 패치의 시퀀스에 적용된 Transformer로만으로도 이미지 분류 문제에서도 좋은 성능을 보여주었다는 것입니다.
Introduction
What is Transformer? "Attention Is All You Need"
Transformer: Attention만 활용해 모델 구축
Transformer의 핵심 아이디어 : Self Attention
Self Attention을 설명하기 전에 Attention에 대해 먼저 간략히 알아봅시다.
Attention Mechanism(Seq2seq with Attention)
ㅇDecoder가 특정 시점 단어를 출력할 때 Encoder 정보 중 연관성이 있는 정보를 직접 선택합니다.
- 입력 시퀀스 데이터의 길이가 긴 문장의 기억을 돕기 위해 제안된 방법
- 디코더에서 i번째 단어를 예측할때 사용하는 이전 스텝의 디코더 정보와 인코더의 j번째 정보가 얼마나 유사한지를 산출
구체적으로 Attention 는 어떻게 구할까요?
Decoder의 첫 시점의 쿼리를 S1이라고 두면, 인코더의 각 토큰의 Key와 행렬곱을 하여 Attention score을 산출한다. 그 Attention score와 각 인코더의 value 값을 곱하여 Context Vector이라는 Attention을 만들어 냅니다.
즉, Context vector가 Attention으로서 Decoder의 특정 시점에서 봤을 때 Encoder의 특징을 추출한 벡터라고 볼 수 있습니다.
Attention vs Self Attention
- Attention (Decoder =>Query / Encoder => Key, Value)
- Encoder, Decoder 사이의 상관관계를 바탕으로 특징 추출
- Self attention (입력 데이터 => Query, Key, Value)
- 데이터 내의 상관관계를 바탕으로 특징 추출
Transformer vs CNN
- CNN: 이미지 전체의 정보를 통합하기 위해서는 몇 개의 layer통과해야한다. 예를 들어, 좌상단과 우상단의 빨간부분의 상관도를 관측하기 위해서는 3x3커널을 두번 거쳐야만 알 수 있습니다.
- Transformer: 하나의 layer로 전체 이미지 정보 통합이 가능하다. 전체 이미지를 1차원의 벡터로 풀어서 표현여 Self Attention을 수행하면 멀리 떨어진 정보들 간의 상관도를 구할 수 있습니다.
Inductive bias
Inductive bias: 새로운 데이터에 대해 좋은 성능을 내기 위해 모델에 사전적으로 주어지는 가정
SVM: Margin 최대화 / CNN: 지역적인 정보 / RNN: 순차적인 정보
- TransfomerWeight이 input에 따라 유동적으로 바뀜
- 1차원 벡터로 만든 후 Self Attention (2차원의 지역적인 정보 유지 X)
- CNN학습후 weight이 고정
- 2차원의 지역적인 특성 유지
- Transfomer: inductive bias 少, 모델 자유도 多
Method
Overview
이 리뷰에서는 Vision Transformer의 base 모델을 기준으로 설명(Vit base/16)
인풋 이미지를 16x16의 이미지의 패치로 만들면 위와 같이 쪼갤 수 있습니다. 각 패치는 3채널이기에 16x16x3의 shape을 가진다. 각 패치 1차원의 768vector 가 Linear Projection(Full conneted layer)을 통과하여 768차원을 가지는 Embedding로 표현가능합니다.
그 다음, Classification을 위해 사용되는 Classification token을 추가합니다. 이는 자연어 처리에서 사용되어지는 Classification token과 같은 목적이라고 말할 수 있습니다.(Bert) 추가적으로 Position Embedding이라는 Vector도 추가되어집니다. 이는 각 패치를 하나의 시퀀스라고 생각했을 때, 패치만 입력할 시 소실된 시퀀스 정보를 주기위한 장치라고 생각할 수 있습니다. 최종적으로, Calssification token, Patch embdding 그리고 Positional embedding이 transformer의 입력됩니다. (+추가사항: Classification token과 Patch embedding은 학습을 통해 결정!)
그 다음, 각 패치 임베딩(768차원)을 Layer Normalization을 하여 Multi-head Attention에 입력합니다. 선행연구에서 Transformer 에 Layer Normalzition을 진행할 경우 더욱 학습이 잘 되었다고 합니다.
일반적으로 Batch Normalization 같은 경우 학습의 안정성을 위해 데이터의 feature에 대하여 Nomalization을 진행하는 반면에 Layer Normalization같은 경우는 Instance단위로 Normalization이 이루어집니다.
Self-Attention은 다음과 같이 Normalizied Patch Embedding(Z)을 입력하여 쿼리, 키, 밸류에 대한 Weight Matrix와 행렬 곱을 하여 쿼리, 키 그리고 밸류를 만듭니다. 그 후 쿼리와 키의 행렬 곱에 softmax을 취한 attention weight을 연산하여 최종적이 value와 곱하여 attention output을 출력합니다.
이 계산을 각 Patch embedding들에 대해서 하게되면 하나의 패치에 대한 다른 패치들의 유사도(Attention Score)가 계산되게 됩니다.
특히, Multi-head Attention은 Self Attention을 여러번 하는 경우를 말합니다. 이 논문에서는 12번 진행하여 Multi-head Attention은 64x12=768차원의 벡터를 출력합니다. 이를 통해 입력 차원과 출력 차원이 동일함을 알 수 있습니다.
Multi-head attentio로부터 출력된 벡터들을 다시 layer normalization을 진행하고 MLP을 통과시킵니다. 여기서 사용된 MLP는 히든 레이어 하나의 Fully connected layer가 됩니다.
마지막, 클래스 분류를 진행합니다. 전체적인 흐름을 정리하자면, 처음 각 패치에 대한 Position embedding을 추가하여 Patch embedding vector로 Transformer encoder에 입력합니다. 각 패치에 대한 다른 패치들의 유사도 나오게 되지만, 이미지 전체에 대한 유사도는 나오지 않습니다. 이를 표현하기 위해 Classification token을 추가적으로 네트워크에 입력함으로서 이미지 전체에 대한 Attention output을 출력할 수 있게 됩니다. 이 값을 Normalization한후, 최종적인 MLP를 통과시켜 클래스 분류를 진행합니다.
Experiment
아래의 실험결과는 BiT(Big Transformer)라고 하는 transfer learning의 SOTA의 모델과 비교하고 있습니다.
결과를 보면 성능은 거의 비슷한 수준이지만 아래의 TPU 의 사용을 보면 보다 BiT보다 적은 자원으로 비슷한 성능을 보여주고 있다는 게 놀라운 점입니다.
Weekness
아래의 결과는 pre-train 데이터 수에 따른 성능을 보여주고 있습니다. 보다시피, 데이터 수가 많아야지 Transformer는 CNN이상의 성능을 가진다는 것을 알 수 있습니다. Introduction에서 언급한 것처럼, CNN에 비해 Inductive bias가 없기에 Inductive bias까지 학습하기 위해 많은 양의 데이터가 필요한다라는 단점이 존재합니다.
이 단점을 해결하기 위해 나온 논문이 "Data efficient image Transformer (DeiT)"입니다. 이 논문에서는 많은 데이터가 필요한 ViT 한계를 극복하기위해, Knowledge Distillation & Data Augmentation을 방법을 제안합니다.
'Computer Vision > Transformer' 카테고리의 다른 글
DeiT(Training Data-efficient Image Transformers & Distillation Trough Attention) (0) | 2022.08.21 |
---|---|
Transformer("Attention is all you need") (0) | 2021.05.06 |