On the journey of
[CSE URP]BEiT: BERT Pre-Training of Image Transformers (2) 본문
Experiences & Study/CSE URP' 29
[CSE URP]BEiT: BERT Pre-Training of Image Transformers (2)
dlrpskdi 2023. 8. 24. 23:142.4 From the Perspective of Variational Autoencoder
- BEIT 의 pre-training은 Variational Autoencoder 관점에서 설명할 수 있음
- 이를 분포를 기반으로 한 수식으로 나타내보면 아래와 같다.
이때 위 수식은 아래와 같이 변형될 수 있다.
- Stage 1 : dVAE에서 Image Tokenizer를 얻는 부분에 대한 Term
- Stage 2 : Masked Image가 주어졌을 때, Image Tokenizer를 얻는 것에 대한 Term
2.5 Pre-Training Setup
- BEIT 모델의 Pre-Training은 아래와 같이 설정되고 진행됨
- VIT-B(Base) 모델 설정과 비슷하게 설정되어 있음
- 12-layer Transformer with 768 hidden size
- 12 attention heads
- 16x16 patch size
- Image Tokenizer는 Dall-E [RPG+21] 에서 학습된 것을 사용하였고, visual tokens의 vocabulary size는 8192
- Training 데이터로 1.2M(120만 장) 갯수가 있는 ImageNet-1K를 사용함
- Data Augmentation : Random resized cropping, horizontal flipping, color jittering
- 해상도 및 패치 사이즈 : 224x224 resolution (14x14 image patches)
- Masking 패치의 개수는 전체 패치의 약 40%인 75개 까지
- Hyperparameter 설정
- 500k steps (=800 epochs)
- 2k(2,000) batch size
- Nvidia Tesla V100 32GB GPU 16개로 5일동안 돌림
- Adam Optimizer를 사용하였고, beta_1 = 0.9, beta_2 = 0.999
- learning rate = 1.5e-3, 10 epochs 동안 warmup, cosine learning rate decay
3. Experiments
3.1 Image Classification
- 기본 해상도 224x224 외에도 해상도를 384x384로 증가시킨 모델에 대해서도 실험
- ImageNet-1K로 Self-Supervised 사전 학습된 BEIT 모델이 다른 모델과 비교해서 비슷하거나 더 좋은 분류 성능을 보임
- scratch부터 학습하는 DeiT 모델과 비교했을 때, BEiT를 Fine Tuning 할 때 더 적은 Epochs에서 더 좋은 Top-1 Accuracy 결과가 나오는 것을 실험에서 확인함
3.2 Semantic Segmentation
- Transformer 모델에서 Image Segmentation을 수행하기 위해서 SETR-PUP [ZLZ+20] Rethinking semantic segmentation from a sequence-to-sequence perspective with transformers 에서 사용한 Downstream task layer를 사용함
- 다른 방법에 비해서 BEIT가 mIoU(Mean Intersection over Union) 성능이 더 좋음
- Intermediate Fine-Tuning은 Image Net으로 Fine-tuning을 하고, 다음에 ADE20K 로 한번 더 Fine-Tuning 한 것
BEiT 모델이 적용된 Self attention map을 확인하였을 때, 사람의 annotation 없이도 이미지 내에서 개별 물체의 구분이 잘 되는 것을 확인할 수 있음
3.3 Ablation study on classification, segmentation
- Visual token을 사용했을 때 classification, segmentation에서 성능이 좋음
- Blockwise Masking이 사용되었을 때 segmentation에서 성능이 좋아짐
- 300Epochs 보다 800 Epochs로 학습이 더 많이 되었을 때 성능이 좋음
4. Conclusion
- 이전 연구들(Contrastive learning, Self-distillation) 보다 BEIT 모델의 성능이 뛰어남
- Vision Transformer에서 BERT 모델과 같이 masked 처리 된 input을 사용하여 pre-training을 하였을 때 좋은 결과를 나오는 것을 보여줌
- 사전 Annotation 없이 Vision Transformer 모델을 통해서 Semantic Segmentation Task를 잘 수행하는 것을 확인 함
'Experiences & Study > CSE URP' 29' 카테고리의 다른 글
[CSE URP] Auto-Encoding Variational Bayes (ICLR 2014) (0) | 2023.08.25 |
---|---|
[CSE URP] ViT Self-Attention 구조 (0) | 2023.08.25 |
[CSE URP]BEiT: BERT Pre-Training of Image Transformers (1) (0) | 2023.08.24 |
230731 PyTorch를 활용한 딥러닝 구현, MCMC, 코드분석 (0) | 2023.08.07 |
[CSE] Generative Model 개괄 (2) (0) | 2023.07.07 |