Skip to main content

비전 트랜스포머(ViT) 활용 시 주의사항과 권장 사항

이 글은 Vision Transformer(ViT)에 관한 학습 교훈을 정리하여, 유도 편향(inductive bias)을 포함해 무엇이 효과적이고 무엇이 아닌지 이해하고 흔한 함정을 피할 수 있도록 돕습니다. 이 문서는 AI 번역본입니다. 오역이 의심되는 부분은 댓글로 자유롭게 알려주세요.
Created on September 15|Last edited on September 15
수차례에 걸쳐 입증되었듯이 트랜스포머 멀티모달 방법의 백본으로 적합할 수 있는데, 그 핵심 이유 중 하나는 토큰(이미지의 패치, 비디오의 큐브, 스펙트로그램, 단어 등)을 다루기 때문이다.
한동안 트랜스포머가 왜 시각 분야에서 바로 잘 작동하지 않는지 불분명했지만, 이후 Original Vision Transformer Paper가 나오면서 핵심이 분명해졌습니다. 바로 JFT‑300M/2B 같은 거대 규모 데이터셋으로부터의 전이 학습이 성능 향상에 크게 기여한다는 점이었습니다.
이 글은 ViT 활용 시의 해야 할 일과 하지 말아야 할 일을 정리하여, 우리의 시행착오에서 배울 수 있도록 돕습니다.
다음 내용을 다룹니다:

목차(클릭하여 펼치기)



바로 시작해봅시다!

트랜스포머: 간단명료한 정리

트랜스포머를 다시 한번 간단히 정리해 보겠습니다:
  • 가장 강력한 요소는 self-attention입니다. 기본 아이디어는 모든 토큰이 다른 모든 토큰과 어떤 방식으로든 관계를 맺게 하는 것입니다. 이렇게 하면 각 토큰이 다른 모든 것에 대해 학습하게 됩니다. 즉, a 완전한 수용 영역. 여러 시퀀스를 서로 이어 붙인 뒤 Cross-Attention을 활용할 수도 있습니다. 이렇게 하면 병렬화가 쉬워지고, 잘 알려진 질감 중심 표현과 달리 객체 중심 표현을 유도합니다. 합성곱 신경망.
  • 로짓을 추가로 처리하기 위한 여러 개의 피드포워드 레이어
  • 레이어 정규화와 잔차 연결의 미화
충분한 데이터(3억 개 샘플)가 주어지면, Vision Transformer는 합리적인 규모에서도 좋은 성능을 낼 수 있습니다. 이후에는 작은 규모의 데이터셋을 다루기 위해 여러 공학적 기법을 적용한 합성곱 기반 변형들이 등장했습니다.
작은 데이터셋에서도 Vision Transformer를 작동하게 만드는 방법에 대한 자세한 내용은 다음을 참고하세요 이 글.
💡

Vision Transformer 실전 가이드: 해야 할 것과 하지 말아야 할 것

옵티마이저

  • 단순한 확률적 경사하강법은 항상 통하지 않습니다. ViT가 아무리 작아도 합리적인 성능으로 수렴할 가능성은 매우 낮습니다.
  • Adam은 사용합니다 3M\large 3M 메모리 사용량이 많습니다. 따라서 연산 자원에 부담이 될 수 있습니다.
  • AdaFactor는 사용합니다 M+O(1)\large M + O(1). 메모리 사용량이 적다고 해서 실제로 잘 동작하는 것은 아닙니다.
  • 일반적인 규모의 실험에는 AdamW 또는 LARS가 현재 최선의 선택입니다. 초대규모 실험에서는 Shampoo가 더 우수한 것으로 밝혀졌습니다.
Shampoo가 왜 효과적인지 더 잘 이해하���면 이 보고서 모음을 참고하세요.


귀납 편향에 대한 참고 사항

바닐라 트랜스포머는 합성곱의 귀납 편향이 없어, 복잡한 기하 구조를 다루는 데 매우 유용하고 타당한 선택이 됩니다. DETR 계열의 하이브리드 모델이 도움이 되는 것으로 입증되었습니다.


요약

이 글에서는 Vision Transformer와 관련해 무엇이 잘 작동하고 무엇이 그렇지 않은지에 대한 여러 팁과 요령을 살펴봤습니다. 이 게시물은 새로 알게 된 세부 사항과 미묘한 차이를 수시로 업데이트해 담는 살아 있는 가이드입니다. 제안할 내용이 있다면 언제든지 댓글로 남기거나 연락해 주세요!
W&B의 모든 기능 모음을 보려면 다음을 확인하세요 짧은 5분 가이드수학적 내용과 스크래치 코드 구현을 더 다룬 보고서를 원하신다면, 아래 댓글이나 저희의 채널에서 알려주세요. 포럼 ✨!
다음 주제에 대한 다른 보고서도 확인해 보세요 완전 연결 GPU 활용과 모델 저장과 같은 다른 기본 개발 주제도 다룹니다.

추천 읽을거리



이 글은 AI가 번역한 기사입니다. 오역이 있을 수 있으니 댓글로 알려주세요. 원문 보고서는 다음 링크에서 확인하실 수 있습니다: 원문 보고서 보기
Neel Gupta
Neel Gupta •  
Have you tried using SAM vs. Shampoo? Does it help in ConvNets-ViT Hybrids too?
Reply