Vision Transformer에 익숙하지 않으신 분들은 다음 tutorial을 공부하는것을 추천드립니다.
Image classification with Vision Transformer.
간단하게 말씀드리면 영상(이미지)를 다루는데 기존의 convolution layer구조 가 아닌,
Transfomer architecture with self-attention을 Image patches의 sequence에 적용했다고 보시면 됩니다.
(Encoder, Decoder), (key, query, value), (multi-head, masked-head)등등의 복잡한 이름의 개념들이 있지만,
image patches(content information) + Sequence (position information)이 두가지를 동시에 학습한다고 이해하시면 편합니다.
Class Attention Image Transformers with LayerScale
Going deeper with Image Transformers by Touvron et al. 에서 사용된 CaiT (Class-Attention in Image Transformers)의 개념을 가볍게 코드로 가져가는 시간으로 활용해 주시면 감사하겠습니다.
Introduction
Depth Scaling
Neural Network model의 정확도와 일반화 성능이 depth를 깊게하면(layer를 많이 쌓으면) 높아지는것을 여러분도 아실 것 이라고 생각합니다.
그에대한 근거들로 아래 두 논문을 들 수 있겠습니다.
- EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks by Tan et al.
- Fast and Accurate Model Scaling by Dollár et al.
하지만
Neural Network에서 사용되던 depth scaling전략을 Vision Transformers에 적용했을 때는,
정확도가 너무 빨리 정체되는(더이상 상승하지 않는) 문제가 있어서 Neural Network에서만큼의 성능을 기대하기 어렵다고
An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale by Dollár et al. 해당 논문에서 주장하고 있습니다.
그래서
CaiT paper의 저자는, ViT (Vision Transformers) architecture에서 정확도 정체 현상을 완화하기 위해 두 가지의 modification을 제안합니다.
1. LayerScale
2. Class-attention layer
이번 튜토리얼은 3단계로 이루어져있습니다.
step 1. Implementation of the individual blocks of CaiT - CaiT에서 사용되는 개별적인 block들 구현 ★★★★★- Feed-forward Network, LayerScaleBlockClassAttention, LayerScaleBlock
step 3. pre-trained CaiT model 불러와서 이미지 예측해보고 model의 layer별로 결과 눈으로 확인하기! ★☆☆☆☆
- 하지만 매우 practical!!
'Have Done > Attention' 카테고리의 다른 글
[ViTs] Going deep with Image Transformers - Class Attention(3/4) (0) | 2022.10.27 |
---|---|
[ViTs] Going deep with Image Transformers - LayerScale(2/4) (0) | 2022.10.27 |
[Attention] Evolution of Attention - Version.2 (0) | 2022.09.14 |
[Attention] Evolution of Attention - Version_0,1 (0) | 2022.09.13 |
[Attention] Intro + Transformer Architecture (0) | 2022.09.13 |
댓글