비전 트랜스포머

IT 위키

비전 트랜스포머(Vision Transformer, 줄여서 ViT)는 이미지 처리를 위해 고안된 딥러닝 구조로, 전통적인 합성곱 신경망(CNN) 대신 트랜스포머(self-attention) 아키텍처를 활용하여 이미지를 “패치(patch)” 단위로 처리한다. [1]

정의[편집 | 원본 편집]

비전 트랜스포머는 이미지를 일정 크기의 패치로 나눈 다음, 각 패치를 토큰처럼 간주하여 순차(sequence) 입력으로 만들어 트랜스포머 인코더(transformer encoder)를 통해 처리함으로써 이미지의 특징(feature)을 학습하는 모델이다. 합성곱 신경망(CNN)에 비해 전역(global) 문맥(context)과 장거리(long-range) 상관관계(correlation)를 보다 직접적으로 포착할 수 있다. [2]

구성 요소 및 작동 원리[편집 | 원본 편집]

  1. 이미지 패치 분할 및 임베딩
    • 입력 이미지를 H×W 크기, C 채널(RGB 등)의 배열로 본다.
    • P×P 크기의 패치들로 분할하고, 각 패치를 평탄화(flatten)한 뒤 선형 투영(linear projection)을 통해 고정 차원 임베딩 벡터로 변환한다.
    • 패치의 순서를 알리기 위해 위치(position) 임베딩(position embedding)을 더한다. [3]
  1. 클래스 토큰 추가
    • 입력 시퀀스 앞에 특수 토큰 “[CLS]” 또는 유사 특수 토큰을 삽입한다.
    • 이 토큰은 트랜스포머 인코더의 마지막 층 출력에서 전체 이미지 정보를 요약하는 용도로 사용된다. [4]
  1. 트랜스포머 인코더 블록
    • 여러 개의 인코더 블록(transformer encoder layers)을 쌓는다.
    • 각 블록은 멀티헤드 셀프 어텐션(multi-head self-attention), 피드포워드 네트워크(feed-forward network), 레이어 정규화(layer normalization), 잔차 연결(residual connections) 등을 포함한다. [5]
  1. 분류 헤드 및 출력
    • 인코더의 출력에서 클래스 토큰 벡터 또는 모든 패치 토큰의 집계(예: 평균 풀링(global average pooling))을 취한다.
    • 이 벡터를 간단한 MLP(선형 레이어 + 활성함수 + softmax) 분류 헤드를 통과시켜 최종 클래스 예측을 한다. [6]

합성곱 신경망과의 차이점[편집 | 원본 편집]

비전 트랜스포머와 합성곱 신경망(CNN)은 이미지 처리에 있어 여러 면에서 다르다.

  1. 특징 추출 방식
    • CNN은 작은 커널(kernel, 예: 3×3, 5×5)을 이용해서 지역(local) 특징을 계층적으로 추출한다.
    • ViT는 패치들을 이용해 전역 관계(global relationships)를 직접 모델링하며, 공간(spatial)적으로 멀리 떨어진 패치 사이의 상호작용(interaction)을 어텐션(attention) 메커니즘으로 잡아낸다. [7]
  1. 지역성(inductive bias)
    • CNN은 필터 공유(weight sharing), 국소 수용 영역(local receptive field) 등의 구조적 편향(structural prior)이 있어서 적은 데이터에도 일반화할 수 있는 경향이 있다.
    • ViT는 이런 지역적 구조가 내재되어 있지 않기 때문에 더 많은 데이터와 정교한 정규화(regularization), 데이터 보강(data augmentation) 등이 필요하다. [8]
  1. 연산 복잡도 및 자원 요구
    • CNN의 합성곱 연산은 국소적(local)이며 스트라이드(stride), 풀링(pooling) 등을 통해 공간 크기를 줄임으로써 계산량을 관리한다.
    • ViT의 어텐션 연산은 토큰(token, 패치) 수의 제곱(quadratic)에 비례하여 연산 및 메모리 비용이 커지며, 특히 높은 해상도 이미지일수록 부담이 커진다.
  1. 표현력 및 일반화 성능
    • ViT는 충분히 큰 학습 데이터셋과 적절한 사전학습(pretraining)이 있을 경우, CNN보다 뛰어난 일반화(generalization) 및 표현력(capacity)을 보이는 경우가 많다. [9]
    • 그러나 데이터가 적거나 사전학습이 부족한 경우, CNN이 더 안정적(stable)이고 효율적(efficient)일 수 있다.

장단점 및 개선 과제[편집 | 원본 편집]

  • 장점
    • 전역(global) 관계 및 문맥 파악 용이
    • 모듈 구조(modular)로 다양한 크기의 패치, 깊이(depth), 폭(width) 조정 가능
    • 사전학습된 모델(pretrained model)의 전이 학습(transfer learning)에서 높은 성능
  • 한계
    • 데이터 효율성이 낮음 — 많은 양의 데이터 필요
    • 연산 및 메모리 비용 중요 — 특히 패치 수가 많거나 고해상도 입력 시 부담
    • 지역적 특징(local features)에 대한 초기 이해가 부족할 수 있음 — 작은 디테일(detail) 포착이 어려울 수 있음

같이 보기[편집 | 원본 편집]

참고 문헌[편집 | 원본 편집]

An Image is Worth 16×16 Words: Transformers for Image Recognition at Scale, Alexey Dosovitskiy et al., 2020

각주[편집 | 원본 편집]

  1. “An Image is Worth 16×16 Words: Transformers for Image Recognition at Scale”, arXiv:2010.11929, https://arxiv.org/abs/2010.11929
  2. “Vision Transformer: What It Is & How It Works”, V7labs, https://v7labs.com/blog/vision-transformer-guide
  3. “ViT Architecture Overview”, Viso.ai, https://viso.ai/deep-learning/vision-transformer-vit
  4. “ViT Documentation”, HuggingFace, https://huggingface.co/docs/transformers/en/model_doc/vit
  5. “An Image is Worth 16×16 Words: Transformers for Image Recognition at Scale”, arXiv:2010.11929
  6. “ViT Documentation”, HuggingFace, https://huggingface.co/docs/transformers/en/model_doc/vit
  7. “Vision Transformer: What It Is & How It Works”, V7labs, https://v7labs.com/blog/vision-transformer-guide
  8. “ViT Architecture Overview”, Viso.ai, https://viso.ai/deep-learning/vision-transformer-vit
  9. “An Image is Worth 16×16 Words: Transformers for Image Recognition at Scale”, arXiv:2010.11929