Vision Transformer
AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE
Google Research, Brain Team (Published as a conference paper at ICLR 2021)
ViT는 트랜스포머가 컴퓨터 비전의 기본 문제인 분류 문제를 얼마나 잘 푸는지 확인할 목적으로 [Vaswani2017]이 제안한 원래 트랜스포머 구조를 최대한 그대로 따라 실험한다. 원래 트랜스포머는 언어 번역을 위해 개발되었기 때문제 문장을 입력 받아 문장을 출력하는 구조, 즉 인코더는 입력 문장을 처리하고 디코더는 출력 문장을 처리하는 구조를 가진다. 문장은 단어가 순서대로 배열된 1차원 구조의 데이터인데 영상은 화소가 2차원 구조로 배열된 데이터이기 대문에 트랜스포머의 구조를 적절히 변경해야 한다.
- 본 연구에서는 NLP에서 사용되는 Standard Transforemr를 이미지로 그대로 적용하여 이미지 분류에 좋은 성능을 도출한 Vision Transforemr(ViT)를 제안함
- ViT는 이미지를 패치로 분할한 후, 이를 NLP의 단어로 취급하여 각 패치의 Linaer Embedding을 순서대로 Transforemr의 input으로 넣어 이미지를 분류함
- ViT를 ImageNet-1K에 학습했을 때, 비슷한 크기의 ResNet보다 낮은 정확도를 도출하는 것을 통해 ViT 가 CNN보다 inductive bias가 낮을 것을 알 수 있다
- 반면, imageNet-21k와 JFT-300에 pre-training한 ViT를 다른 image recognition task에 transfer learning했을 때, ViT가 SOTA 성능을 도출하는 것을 통해 Large scale 학습이 낮은 inductive bias로 인한 성능 저하를 해소시키는 것을 알 수 있다.
Vision Transformer 특징
- 이미지를 Patch로 분할 후 Sequence로 입력
→ NLP에서 단어(Word)가 입력되는 방식과 동일!
- ImageNet와 같은 Mid-sized 데이터셋으로 학습 시, ResNet보다 낮은 성능
- JFT-300M 사전 학습 후, Transfer Learning → CNN구조 보다 매우 좋은 성능
- Transformer는 inductive biases가 없음 = Locality와 Translation Equivariance 같은 CNN의 특성이 없음
- Transformer의 계산 효율성(Efficiency) 및 확장성(Scalability)
- 데이터셋이 크면 클수록 성능 향상
Abstract
Transformer 아키텍처는 자연어 처리 분야에서 널리 사용되어지고 있다. 이것은 컴퓨터 비전에서는 제한되어 있었다. 비전 안에서 Attention 은 CNN을 결합하거나 전체 구조를 유지하되 병목 구조에서 대체되는 것으로 사용되어졌다.
논문에서는 CNN은 필요하지 않으며, 이렇게 특정 구성 요소를 대체하는 것에 그치지 않고 이미지 패치의 시퀀스에 Transformer가 적용될 때 이미지 분류 작업에서 매우 우수한 성능을 봉준다는 것을 발견했다. 많은 양의 데이터를 pre-trained 되고 벤치마크 (ImageNet, CIFAR-100, VTAB, etc.) 등에서 Vit 은 SOTA(state-of-the-art convolutional networks) 와 비교해서 좋은 성능을 얻다.
자연어 처리에서 주로 사용되는 Transformer을 거의 그대로 이미지 분류 업무에 이용한 것이다.
- 완전히 Convolution과 안녕하고 SoTA를 달성했다
- Vision Transformer에서 중요한 것은 세 가지이다.
① 이미지 패치(patch)를 단어와 같이 다루었다.
② 아키텍처는 Transformer의 인코더(encoder) 부분이다.
③ 거대한 데이터 세트인 JFT-300M으로 사전학습했다.
- SoTA보다 뛰어난 성능을 약 15분의 1의 계산 비용만으로 얻을 수 있었다.
- 사전학습 데이터 세트와 모델을 더욱 크게 하여 성능을 향상시킬 수 있는 여지가 있다.
architecture
아키텍처는 거의 트랜스포머의 인코더 부분과 동일하다
Norm은 Layer Normalization(LN)을 의미한다. 위 그림을 보고 알 수 있듯이, 거의 오리지널의 인코더와 동일하다
Pre-Norm : Multi-Head Attention MLP의 전에 위치하고 있다
Tansforemr VS CNN
CNN : 이미지 전체의 정보를 통합하기 위해서는 몇 개의 Layer 통과
Transformer : 하나의 Layer로 전체 이미지 정보 통합 가능
patch embedding
classification token : classification을 위해 사용되는 token (BERT [CLS] token)
position embedding : patch의 취치 정보
(classification token, patch embedding ) + positional embedding = transformer encoder 입력
Residual Connection
- 특정 레이어를 건터 뛰어서 입력
- 초기의 모델 수렴 속도가 높아진다
- 입력 데이터와 self-Attention의 결과를 더함
Later normalization
- 각 레이어 값이 크게 변화하는 것을 방지해 모델을 더 빠르게 학습
- residual connection 결과에 대한 정규롸 진행
MLP
GELU(Gaussian Error Linear Unit)
https://arxiv.org/pdf/1606.08415.pdf
- dropout + zoneout + ReLU를 조합하여 쓰는 것에 영감을 받아서 개발한 성능 좋은 activation function
- 네크워크가 깊어질수록 adaptive dropout 형태로, 입력치에 가중치를 부여하여 zoneout 되는 형태
성능 비교
Pre-training 이미지 resolution(224*224) - Fine-tuning 이미지 resolution(384 * 384)
- Big Transfer보다 사용하는 자원 은 낮으며 / 성능은 높다 - 즉 효율적인 사전 학습이 가능하다
참조 : Inductive Bias
Inductive bias는 training에서 보지 못한 데이터 대해서도 적절한 귀납적 추론이 가능하도록 하기 위해 모델이 가지고 있는 가정들의 집합을 의미한다
DNN의 기본적인 요소들의 inductive bias는 아래과 같다
- Fully Connected : 입력 및 출력 element가 모두 연결되어 있으므로 구조적으로 특별한 Relational inductive bias를 가정하지 않음
- Convolutional : CNN은 작은 크기의 Kernel로 이미지를 지역적으로 보며, 동일한 Kernel로 이미지 전체를 본다는 점에서 locality와 transitional invariance 특성을 가짐
- Recurrent : RNN은 입력한 데이터들이 시간적 특성을 가지고 있다고 가정하므로 sequentiality와 temporal invariance 특성을 가짐
Transformer 는 CNN 및 RNN 보다 상대적으로 inductive bias가 낮음
'Machine-Learning > paper' 카테고리의 다른 글
[Paper] Faster RCNN (0) | 2022.10.06 |
---|---|
[Paper] RCNN (0) | 2022.10.06 |
[Paper] Attention (0) | 2022.09.15 |
[Paper] Fast RCNN (0) | 2022.08.23 |
[Paper] An overview of gradient descent optimization algorithms (0) | 2022.08.23 |
댓글