비전 트랜스포머(ViT) 활용 시 주의사항과 권장 사항
이 글은 Vision Transformer(ViT)에 관한 학습 교훈을 정리하여, 유도 편향(inductive bias)을 포함해 무엇이 효과적이고 무엇이 아닌지 이해하고 흔한 함정을 피할 수 있도록 돕습니다. 이 문서는 AI 번역본입니다. 오역이 의심되는 부분은 댓글로 자유롭게 알려주세요.
Created on September 15|Last edited on September 15
Comment
수차례에 걸쳐 입증되었듯이 트랜스포머 멀티모달 방법의 백본으로 적합할 수 있는데, 그 핵심 이유 중 하나는 토큰(이미지의 패치, 비디오의 큐브, 스펙트로그램, 단어 등)을 다루기 때문이다.
한동안 트랜스포머가 왜 시각 분야에서 바로 잘 작동하지 않는지 불분명했지만, 이후 Original Vision Transformer Paper가 나오면서 핵심이 분명해졌습니다. 바로 JFT‑300M/2B 같은 거대 규모 데이터셋으로부터의 전이 학습이 성능 향상에 크게 기여한다는 점이었습니다.
이 글은 ViT 활용 시의 해야 할 일과 하지 말아야 할 일을 정리하여, 우리의 시행착오에서 배울 수 있도록 돕습니다.
다음 내용을 다룹니다:
목차(클릭하여 펼치기)
바로 시작해봅시다!
트랜스포머: 간단명료한 정리
트랜스포머를 다시 한번 간단히 정리해 보겠습니다:
- 가장 강력한 요소는 self-attention입니다. 기본 아이디어는 모든 토큰이 다른 모든 토큰과 어떤 방식으로든 관계를 맺게 하는 것입니다. 이렇게 하면 각 토큰이 다른 모든 것에 대해 학습하게 됩니다. 즉, a 완전한 수용 영역. 여러 시퀀스를 서로 이어 붙인 뒤 Cross-Attention을 활용할 수도 있습니다. 이렇게 하면 병렬화가 쉬워지고, 잘 알려진 질감 중심 표현과 달리 객체 중심 표현을 유도합니다. 합성곱 신경망.
- 로짓을 추가로 처리하기 위한 여러 개의 피드포워드 레이어
- 레이어 정규화와 잔차 연결의 미화
충분한 데이터(3억 개 샘플)가 주어지면, Vision Transformer는 합리적인 규모에서도 좋은 성능을 낼 수 있습니다. 이후에는 작은 규모의 데이터셋을 다루기 위해 여러 공학적 기법을 적용한 합성곱 기반 변형들이 등장했습니다.
💡
Vision Transformer 실전 가이드: 해야 할 것과 하지 말아야 할 것
옵티마이저
- 단순한 확률적 경사하강법은 항상 통하지 않습니다. ViT가 아무리 작아도 합리적인 성능으로 수렴할 가능성은 매우 낮습니다.
- Adam은 사용합니다 메모리 사용량이 많습니다. 따라서 연산 자원에 부담이 될 수 있습니다.
- AdaFactor는 사용합니다 . 메모리 사용량이 적다고 해서 실제로 잘 동작하는 것은 아닙니다.
- 일반적인 규모의 실험에는 AdamW 또는 LARS가 현재 최선의 선택입니다. 초대규모 실험에서는 Shampoo가 더 우수한 것으로 밝혀졌습니다.
Shampoo가 왜 효과적인지 더 잘 이해하���면 이 보고서 모음을 참고하세요.
귀납 편향에 대한 참고 사항
바닐라 트랜스포머는 합성곱의 귀납 편향이 없어, 복잡한 기하 구조를 다루는 데 매우 유용하고 타당한 선택이 됩니다. DETR 계열의 하이브리드 모델이 도움이 되는 것으로 입증되었습니다.
요약
이 글에서는 Vision Transformer와 관련해 무엇이 잘 작동하고 무엇이 그렇지 않은지에 대한 여러 팁과 요령을 살펴봤습니다. 이 게시물은 새로 알게 된 세부 사항과 미묘한 차이를 수시로 업데이트해 담는 살아 있는 가이드입니다. 제안할 내용이 있다면 언제든지 댓글로 남기거나 연락해 주세요!
W&B의 모든 기능 모음을 보려면 다음을 확인하세요 짧은 5분 가이드수학적 내용과 스크래치 코드 구현을 더 다룬 보고서를 원하신다면, 아래 댓글이나 저희의 채널에서 알려주세요. 포럼 ✨!
추천 읽을거리
How Do Vision Transformers Work ?
An in-depth breakdown of 'How Do Vision Transformers Work?' by Namuk Park and Songkuk Kim.
Paper Reading Group: Vision Transformers
The paper reading groups are supported by experiments, blogs & code implementation! This is your chance to come talk about the paper that interests you!
An Introduction to Attention
Part I in a series on attention. In this installment we look at its origins, its predecessors, and provide a brief example of what's to come
On the Relationship Between Self-Attention and Convolutional Layers
Our submission to ML Reproducibility Challenge 2020. Original paper "On the Relationship between Self-Attention and Convolutional Layers" by Jean-Baptiste Cordonnier, Andreas Loukas & Martin Jaggi, accepted into ICML 2020.
PyTorch Dropout for regularization - tutorial
Learn how to regularize your PyTorch model with Dropout, complete with a code tutorial and interactive visualizations
How To Use GPU with PyTorch
A short tutorial on using GPUs for your deep learning models with PyTorch, from checking availability to visualizing usable.
Add a comment
Have you tried using SAM vs. Shampoo? Does it help in ConvNets-ViT Hybrids too?
Reply