Vision Transformer (ViT)
Vision Transformer(ViT)의 강력한 기능을 살펴봅니다. self-attention과 패치 토크나이제이션이 Ultralytics와 함께 CNN을 넘어 컴퓨터 비전을 혁신하는 방법을 알아봅니다.
Vision Transformer (ViT)는 원래 자연어 처리 (NLP)를 위해 설계된 self-attention 메커니즘을 적용하여 시각적 작업을 해결하는 딥러닝 아키텍처입니다. 전통적인 합성곱 신경망 (CNN)이 로컬 픽셀 그리드의 계층 구조를 통해 이미지를 처리하는 것과 달리, ViT는 이미지를 개별 패치의 시퀀스로 취급합니다. 이 접근 방식은 획기적인 연구 논문 "An Image is Worth 16x16 Words"을 통해 널리 알려졌으며, 이 논문은 순수 Transformer 아키텍처가 합성곱 레이어에 의존하지 않고도 컴퓨터 비전 (CV)에서 최첨단 성능을 달성할 수 있음을 입증했습니다. 전역 attention을 활용함으로써 ViT는 첫 번째 레이어부터 이미지 전체에 걸친 장거리 의존성을 포착할 수 있습니다.
Vision Transformer의 작동 방식#
ViT의 핵심 혁신은 입력 데이터를 구성하는 방식에 있습니다. 표준 Transformer와 호환되도록 이미지를 구성하려면, 모델은 언어 모델이 단어 시퀀스로 문장을 처리하는 방식을 모방하여 시각 정보를 벡터 시퀀스로 분해합니다.
-
패치 토큰화: 입력 이미지는 일반적으로 16x16 픽셀 크기의 고정된 정사각형 그리드로 나뉩니다. 각 정사각형은 벡터로 평탄화되어 시각적 토큰이 됩니다.
-
선형 프로젝션: 평탄화된 패치는 학습 가능한 선형 레이어를 통과하여 밀집 임베딩을 생성합니다. 이 단계에서는 원시 픽셀 값을 모델이 처리할 수 있는 고차원 공간으로 매핑합니다.
-
위치 인코딩: 이 아키텍처는 시퀀스를 병렬로 처리하며 순서나 공간에 대한 고유한 이해가 없으므로, 학습 가능한 위치 인코딩을 패치 임베딩에 추가합니다. 이를 통해 모델은 원본 이미지에서 각 패치가 속한 위치에 대한 공간 정보를 유지할 수 있습니다.
-
Self-Attention 메커니즘: 시퀀스는 Transformer 인코더로 입력되며, 여기서 self-attention을 통해 모든 패치가 동시에 서로 상호작용할 수 있습니다. 이를 통해 네트워크는 전역 컨텍스트를 학습하고, 왼쪽 위 모서리의 픽셀이 오른쪽 아래 모서리의 픽셀과 어떻게 연관되는지 이해할 수 있습니다.
-
분류 헤드: 이미지 분류와 같은 작업에서는 특수한 "클래스 토큰"을 시퀀스 앞에 추가하는 경우가 많습니다. 이 토큰의 최종 출력 상태는 이미지의 집계 표현으로 사용되며, 이후 다층 퍼셉트론 (MLP)과 같은 분류기에 입력됩니다.
Vision Transformer와 CNN 비교#
두 아키텍처 모두 시각 데이터를 이해하는 것을 목표로 하지만, 작동 철학은 크게 다릅니다. CNN에는 변환 불변성(translation invariance)이라는 강한 "귀납적 편향"이 있어, 위치와 관계없이 로컬 특징(예: 가장자리와 질감)이 중요하다고 본질적으로 가정합니다. 따라서 CNN은 더 작은 데이터셋에서도 데이터 효율성이 높고 효과적입니다.
반대로 Vision Transformer는 이미지에 특화된 편향이 더 적습니다. 따라서 JFT-300M이나 전체 ImageNet 데이터셋과 같은 방대한 양의 학습 데이터를 사용하여 공간적 관계를 처음부터 학습해야 합니다. 이로 인해 학습에 더 많은 컴퓨팅 리소스가 필요하지만, ViT는 놀라운 수준으로 확장할 수 있습니다. 충분한 데이터와 컴퓨팅 성능이 있으면 로컬 합성곱이 놓칠 수 있는 복잡한 전역 구조를 포착하여 CNN을 능가할 수 있습니다.
실제 적용 사례#
전역 컨텍스트를 이해하는 능력 덕분에 ViT는 특히 복잡하고 중대한 환경에서 유용합니다.
- 의료 영상 분석: 헬스케어 AI에서 ViT는 MRI나 조직병리 슬라이드와 같은 고해상도 스캔을 분석하는 데 사용됩니다. 예를 들어, 종양 검출에서 ViT는 조직의 미세한 질감 이상을 슬라이드 전반의 더 광범위한 구조적 변화와 연관시켜, 로컬 처리로는 놓칠 수 있는 악성 패턴을 식별할 수 있습니다.
- 위성 이미지 및 원격 감지: ViT는 객체 간 관계가 넓은 거리에 걸쳐 있는 위성 이미지 분석에서 뛰어난 성능을 발휘합니다. 예를 들어, 삼림 벌채 현장을 멀리 떨어진 벌목 도로와 연결하려면 지형의 "큰 그림"을 이해해야 하며, 이러한 작업에서는 ViT의 전역 attention이 표준 CNN의 제한된 수용 영역보다 우수합니다.
Ultralytics에서 Transformer 활용하기#
ultralytics 라이브러리는 Transformer 기반 아키텍처를 지원하며, 대표적인 예로 RT-DETR (실시간 검출 Transformer)이 있습니다. 대표 모델인 YOLO26은 엣지 디바이스에서 속도와 정확도의 균형이 뛰어나 자주 선호되는 반면, RT-DETR은 전역 컨텍스트를 우선시하는 시나리오에서 강력한 대안을 제공합니다.
다음 Python 예제에서는 사전 학습된 Transformer 기반 모델을 로드하고 추론을 실행하는 방법을 보여줍니다:
from ultralytics import RTDETR
# Load a pre-trained RT-DETR model (Vision Transformer-based)
model = RTDETR("rtdetr-l.pt")
# Run inference on an image source
# The model uses self-attention to detect objects globally
results = model("https://ultralytics.com/images/bus.jpg")
# Display the detection results
results[0].show()향후 전망#
ViT의 높은 컴퓨팅 비용을 해결하기 위한 연구가 빠르게 발전하고 있습니다. FlashAttention과 같은 기술을 통해 이러한 모델은 더 빠르고 메모리 효율적으로 개선되고 있습니다. 또한 CNN의 효율성과 Transformer의 attention을 결합한 하이브리드 아키텍처가 보편화되고 있습니다. 이러한 고급 워크플로를 관리하려는 팀을 위해 Ultralytics Platform은 데이터를 어노테이션하고, 클라우드를 통해 복잡한 모델을 학습하며, 다양한 엔드포인트에 배포할 수 있는 통합 환경을 제공합니다.









