[리뷰] Scaling Vision Transformers
작년 11월, Google Research Brain Team은 Vision에 Transformer를 적용한 Vision Transformer 를 발표하여 Top 1 Accuracy(88.55%)에서 SOTA를 달성하였다. 비록 그 이후 EfficientNet 기반 Meta Pseudo Labels에 SOTA의 자리를 다시 내주었지만 Vision에서 Transformer가 CNN을 대체할 수 있는 알고리즘으로 인식되기 시작하였다.
Google Research Brain Team은 2021년 6월 “Scaling Vision Transformer” 논문을 발표하고 Image Classification — Top 1 Accuracy에서 90.45%를 기록하며 다시 SOTA 를 달성하였다. Scaling Vision Transformer의 저자인 Xiaohua Zhai , Alexander Kolesnikov , Neil Houlsby, Lucas Beyer는 모두 이전 Vision Transformer 논문(“An Image is worth 16x16 word: Transfomers for Image Recognition at Scale”)의 공저자이다. (이들은 또한 예전에 소개했던 MLP-Mixer의 공저자이기도 하다.)
1.Scaling Vision Transformer 소개
Vision Transformer 논문의 4.4 Scaling Study에서 저자들은 다음과 같이 Vision Transformer가 시도해본 범위 내에서 포화되지 않아 향후 Scaling을 통한 Vision Transformer의 후속 연구를 진행할 것임을 밝혔다.
“Vision Transformers appear not to saturate within the range tried, motivating future scaling efforts”
Scaling Vision Transformer는 language model의 scaling law를 vision transformer에 적용하여 파라미터 수, 데이터셋 사이즈, 컴퓨팅 budget를 크게 늘리면서 Vision Transformer의 성능을 측정하여 2B 모델을 사용하여 SOTA 90.45%를 달성하였다.
Scaling Vision Transformer의 테스트 조건
- 파라미터: 5M ~ 2B
- 데이터셋: 30M ~ 3B
- 컴퓨팅 budget(TPUv3 core day): 1 ~ beyond 10K
그 밖에 개선 사항
- 개선된 large-scale training recipe을 개발하여 매우 강력한 few-shot learning 기법을 통해 1-shot: 69.5%, 10-shot: 84.86%을 달성
- HW-specific architecture 변경 및 다른 optimizer를 사용하여 Memory footprint를 절감
2.Core Results
아키텍처 사이즈, 학습 이미지의 개수, 학습 기간을 조정하면서 테스트했으며모델이 학습한 representation의 품질을 평가하기 위해 다음을 측정하였다.
- 1) few-shot transfer via training a linear classifier on frozen weights
- 2) transfer via fine-tuning the whole model on all data
Compute, Model, Data를 모두 Scaling up한 결과
1.Compute, model, data를 함께 scaling up하는 것은 representation 품질을 개선한다
Largest size, dataset size & compute를 가진 모델이 오류율이 가장 낮다
2.Representation 품질은 모델 사이즈에 의해 bottleneck이 생길 수 있다
용량 제한 때문에, 소형 모델은 largest dataset 또는 compute resource을 사용해도 이득이 되지 못한다.
3.대형 모델은 1B 이미지 이상의 추가 데이터를 활용할 수 있다.
모델 크기를 scaling-up 할 때 더 작은 데이터셋으로 인해 representation 품질이 제한될 수 있다
30M–300M 조차 대형모델을 포화시키기 충분하지 않다.
- 30M 데이터셋 + L/16 → 27% error rate
- 300M 데이터셋 + L/16 → 19% error rate
데이터셋의 크기를 늘릴 때, 큰 모델에서는 성능이 향상되지만 작은 모델에선 성능이 향상되지 않는다.
- 가장 큰 모델(ViT-G/14): 데이터셋 사이즈를 1B 에서 3B으로 올릴 경우, 성능이 향상됨 (아래 그림의 오른쪽 아래 그림)
- 작은 모델 (ViT-Ti/16 또는 B/32): 데이터셋 크기를 늘려도 도움이 되지 않음. 예를들어 ViT-Ti/16의 모든 곡선은 데이터 사이즈에 관계없이 같은 성능을 보이고 있음 (아래 그림의 왼쪽, 중간 그림)
Big model이 더 효율적인 샘플임
위의 그림은 Pre-training 동안, “보인”(seen) 총 이미지수(배치크기 x steps 수)에 대한 representation 품질을 보여준다.
- 3가지 fine-tuning : Imagenet 10-shot, Imagenet, Imagenet V2
- 3개의 ViT 모델은 모두 3B 이미지로 pre-trained 됨
더 큰 모델은 더 적은 이미지로 동일한 수준의 오류율에 도달하는데 더 효율적인 샘플임을 관찰된다.
- 10-shot의 경우, Ti/16 모델은 L/16 모델의 표현 품질과 일치하기 위해 거의 100x 더 많은 이미지를 봐야함
- Fine-tuning 시, 그 factor가 100 → 20으로 감소함
- 충분히 큰 데이터를 사용하여 더 작은 단계로 더 큰 모델을 학습하는 것이 바람직함
ViT-G/14 결과
Scaling Vision Transformer 논문에서는 2B 파라미터의 ViT-G/14를 학습하고 SOTA 알고리즘(SimCLR v2, BYOL)과 few-shot learning 결과(on Imagenet)를 비교하였다.
ViT-G/14 vs ViT-H/14
- ViT-G/14는 ViT-H/14보다 5%이상 더 높은 정확도를 기록함
- 10 examples per class: 84.86%
Vit-G/14 vs SimCLR v2, BYOL
- SimCLR v2, BYOL는 SOTA Self-supervised learning 모델임
ViT-G/14 vs 이전 SOTA
- Imagenet: ViT-G/14는 90.45% top-1 accuracy를 달성함
- Imagenet-v2: Noise Student(EfficientNet-L2기반)보다 3% 정도 높음
- Imagenet ReaL: ViT-H/14와 BiT-L에 비해 약간 우수함 → 이는 Imagenet 분류 task가 포화점에도달했을 가능성이 있음
- ObjectNet: BiT-L 보다 큰 차이로 우수. CLIP보다 약 2.0% 낮음
3. 결론
- 충분한 학습데이터를 가진 Vision Transformer 모델은 성능-컴퓨트 프론티어는 power law를 따른다.
- 결정적으로 이 프론티어를 유지하려면 총 컴퓨팅과 모델 크기를 동시에 scale-up해야 한다.
- 가용한 추가 컴퓨팅이 있을 때, 모델의 크기를 늘리지 않는 것은 Sub-optimal이다.
- 더 큰 모델이 훨씬 더 효율적인 샘플이며 훌륭한 few-shot learner이다.
- 단, 위 결론은 이 논문에서 관찰했던 스케일을 초과하여 일반화되지 않을지 모르며, ViT 모델군을 넘어 일반화되지 않을지 모른다. (may not)
- 이 논문의 scaling study는 더 적은 컴퓨트 리소스로 모델을 디자인할 수 있는 근거를 제공한다.
4.레퍼런스
[1] Scaling Vision Transformers
[2] An Image is Worth 16x16 Words: Trnasformers for Image Recognition at Scale
[3] MLP-Mixer: An all-MLP Architecture for Vision
[4] Scaling Laws for Neural Language Models