논문

10. An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale

정일균 2024. 3. 31. 22:06

Transformer를 Computer Vision에 활용한 즉 VIT논문에 대해서 정리를 해보려고 한다.

숙제가 있는 삶... 시간이 너무 빨리간다.............ㅜ

 

바로 직전에 Transformer에 대해서 정리를 했다..

2024.03.31 - [논문] - Attention Is All You Need

 

Attention Is All You Need

4주차 수업 내용인 Attention Is All You Need에 대해서 정리를 하려고 한다. 많은 사람들이 이미 알고 있겠지만 리마인드 느낌으로 정리를 해보자! 현재의 시퀀스 변환 모델은 복잡한 순환 또는 합성곱

jik9210.tistory.com


본 연구에서는 Transformer 아키텍처가 자연어 처리(NLP) 과제에서 주로 사용되어 왔지만, 컴퓨터 비전 분야에서의 적용은 제한적이라는 점을 지적합니다. 비전 분야에서는 주로 Attention이 CNN과 함께 사용되거나, CNN의 특정 구성 요소를 대체하는 용도로 활용되었습니다. 본 연구는 CNN에 의존하지 않고, 이미지 패치의 시퀀스에 직접 적용된 순수한 트랜스포머가 이미지 분류 과제에서 매우 우수한 성능을 발휘할 수 있음을 보여줍니다.

이미지를 분류하는 작업은 컴퓨터에게 주어진 이미지가 어떤 카테고리에 속하는지를 판단하게 하는 과정
예를 들어, 사진에 고양이가 있으면 "고양이"라고 분류하고, 강아지가 있으면 "강아지"라고 분류하는 것이죠. 전통적으로 이 작업은 CNN이라는 특수한 구조의 인공 신경망을 사용하여 수행되었습니다.
CNN은 이미지의 지역적 특성을 잘 파악하고 이해하는 데 매우 유용합니다.
그러나 최근에는 NLP분야에서 뛰어난 성능을 보인 'Transformer'라는 구조를 이미지 분류 작업에 적용하는 새로운 방법이 제안되었습니다. 이 방법은 'Vision Transformer(ViT)'라고 불리며, 이미지를 여러 개의 작은 조각(패치)으로 나누고, 각 패치를 마치 문장 속의 단어처럼 취급하여 처리하는 방식입니다.
CNN에서도 이미지를 작은 영역으로 나누어 처리하는 개념이 있습니다. 특히, 컨볼루션 연산을 통해 지역적인 특성을 추출하고, 맥스 풀링(Max Pooling)이나 스트라이드(Strides)를 사용하여 이미지의 크기를 축소시키며 중요한 정보를 추려내는 과정이 이에 해당합니다. 그러나 CNN은 이러한 작업을 통해 각 영역의 특성을 '합성'하여 고수준의 특성을 추출하는 반면, ViT는 각 패치를 이미지의 다른 부분과의 관계 속에서 '독립적인 정보 단위'로서 처리합니다. 이는 CNN의 지역적인 정보 처리 방식과는 다른 접근입니다.


이미지를 작은 조각(패치)으로 나누고 이를 Transformer에 적용하는 방식을 쉽게 이해하기 위해, 일상생활에서의 예를 들어 설명하겠습니다.

예시: 책상 위의 사무용품 분류하기
상상해보세요. 책상 위에 연필, 지우개, 노트북, 커피잔 등 다양한 사무용품이 뒤섞여 있습니다. 이 사무용품들을 종류별로 분류하는 작업을 해야 한다고 합시다. 여기서 책상 위의 사무용품 전체를 한 번에 보는 대신, 책상을 작은 정사각형 영역(패치)으로 나누어 각 영역별로 무엇이 있는지 확인하고, 그 정보를 기반으로 전체를 이해하고 분류하는 방식입니다.

패치로 나누기
책상을 정사각형 그리드로 상상하며, 각 그리드가 하나의 패치입니다. 예를 들어, 책상을 6x6 그리드로 나누었다고 하면, 총 36개의 작은 정사각형 영역(패치)이 생성됩니다.

각 패치 살펴보기
이제 각 패치를 돋보기로 들여다보듯이 살펴보며, 그 안에 무엇이 있는지 확인합니다. 한 패치에는 연필 끝부분이 보일 수 있고, 다른 패치에는 커피잔의 손잡이 부분이 보일 수 있습니다.

패치 정보를 Transformer에 입력
확인한 각 패치의 정보(예: 연필, 지우개, 커피잔 부분 등)를 Transformer 모델에 입력합니다. 이때 각 패치의 정보는 단어와 같은 역할을 하며, Transformer는 이 '단어들'의 전체적인 맥락을 이해하려고 시도합니다.

전체 이미지 이해하기
Transformer 모델은 각 패치의 관계와 패턴을 학습하며, 예를 들어 연필 끝부분과 지우개가 가까이 있는 패치들을 통해 그 영역이 쓰기 도구 영역임을 이해하듯, 책상 위의 전체적인 사무용품 분포와 구성을 이해하게 됩니다.

분류와 판단
마지막으로, Transformer 모델은 학습된 정보를 바탕으로, 책상 위의 사무용품 전체를 종류별로 분류하고 판단하는 데 도움을 줍니다. 예를 들어, '이 책상은 쓰기 도구가 많이 있는 작업 공간이다'와 같은 결론을 내릴 수 있습니다.
이처럼, Vision Transformer는 각 이미지 패치를 마치 문장 속의 단어처럼 취급하여 처리함으로써, 전체 이미지의 구조와 내용을 효과적으로 이해하고 분류하는 방식을 채택합니다.


이미지 패치와 Transformer의 활용
이미지를 패치로 나누기
ViT는 주어진 이미지를 정사각형 형태의 작은 조각들로 나눕니다. 예를 들어, 224x224 픽셀 크기의 이미지를 16x16 픽셀 크기의 패치로 나누면, 총 196개의 패치가 생성됩니다. 이 과정을 통해 하나의 큰 이미지가 196개의 '단어'로 이루어진 '문장'과 유사한 형태로 변환됩니다.

패치를 Transformer에 입력
각 패치는 선형 변환을 거쳐서 일정한 크기의 벡터로 변환됩니다. 이 벡터들은 Transformer 모델의 입력으로 사용되며, 모델은 이 입력 데이터를 바탕으로 이미지 전체에 대한 이해를 구축합니다.

Self-attention
Transformer의 핵심은 'Self-attention'입니다. 이 메커니즘을 통해 모델은 각 패치(또는 '단어')가 서로 어떤 관계를 가지며, 전체 이미지(또는 '문장')의 의미를 이해하는 데 어떻게 기여하는지를 학습합니다. 예를 들어, 이미지에서 '눈'과 '코'가 가까이 위치해 있을 때 '얼굴'을 인식하는 것과 유사하게, 관련 있는 패치들 사이의 관계를 파악하여 전체 이미지를 이해하게 됩니다.

ViT의 장점
유연성
ViT는 이미지의 지역적 특성뿐만 아니라, 이미지 전체를 관통하는 글로벌한 정보도 효과적으로 학습할 수 있습니다. 이는 전통적인 CNN이 갖지 못한 장점으로, 보다 복잡한 이미지 내의 관계를 이해하는 데 도움을 줍니다.

효율적인 학습
대규모 데이터셋에서 사전 학습을 수행한 후, 다양한 이미지 분류 작업에 적용할 때 ViT는 CNN을 능가하는 성능을 보일 수 있습니다. 또한, 같은 양의 계산 자원으로 더 높은 정확도를 달성할 수 있습니다.

 

대량의 데이터에서 사전 학습을 거친 후, 다양한 중간 크기 또는 소규모 이미지 인식 벤치마크(ImageNet, CIFAR-100, VTAB 등)에 전이 학습을 수행할 때, Vision Transformer(ViT)는 최첨단의 컨볼루션 네트워크와 비교하여 탁월한 결과를 보이며, 동시에 훈련에 필요한 계산 자원도 상당히 줄일 수 있음을 입증합니다​​.

이러한 발견은 Transformer 모델이 자연어 처리뿐만 아니라 이미지 인식과 같은 컴퓨터 비전 과제에도 효과적으로 활용될 수 있음을 보여주며, 특히 대규모 데이터셋을 사용한 사전 학습이 중요한 역할을 한다는 것을 강조합니다. 이는 컨볼루션 네트워크 없이도 Transformer만으로 이미지 인식 분야에서 새로운 가능성을 열 수 있음을 시사합니다.


자연어 처리(NLP) 분야에서 Transformer 아키텍처가 모델의 선택으로 자리 잡은 이후, 많은 연구에서 이를 기반으로 한 대규모 모델을 대량의 텍스트 데이터로 사전 학습한 후, 특정 NLP 과제에 대해 미세 조정(Fine-tuning)하는 방식을 채택하고 있습니다. 이러한 방식은 Transformer의 계산 효율성과 확장성 덕분에 100B 이상의 매개변수를 가진 모델을 훈련할 수 있게 되었으며, 모델과 데이터셋이 커질수록 성능이 포화 상태에 이르지 않고 계속 개선되는 추세를 보였습니다.

반면, 컴퓨터 비전 분야에서는 여전히 CNN이 지배적입니다. NLP의 성공 사례에 영감을 받아 일부 연구에서는 컨볼루션 네트워크와 자기 self-Attention을 결합하거나, CNN을 완전히 대체하려는 시도를 하고 있습니다. 하지만 이러한 모델들은 특수한 패턴을 사용하기 때문에 현대 하드웨어 가속기에서 효과적으로 확장되지 않았습니다. 따라서 대규모 이미지 인식에서는 여전히 ResNet과 같은 클래식 아키텍처가 최고의 성능을 나타냈습니다.

이 연구에서는 NLP에서의 Transformer 확장 성공을 컴퓨터 비전으로 가져오고자 합니다. 최소한의 수정으로 표준 Transformer를 직접 이미지에 적용하기 위해 이미지를 패치로 나누고, 이 패치들의 선형 임베딩의 시퀀스를 Transformer에 입력으로 사용합니다. 이 접근법은 이미지 패치를 NLP의 토큰(단어)처럼 처리합니다. 결과적으로, Transformer가 지도 학습 방식으로 이미지 분류를 수행할 수 있음을 보여줍니다.

초기 실험에서는 큰 정규화 없이 중간 크기의 데이터셋(예: ImageNet)에서 훈련할 때, 이 모델이 비교 가능한 크기의 ResNet보다 몇 퍼센트 포인트 낮은 정확도를 나타냅니다. 이는 Transformer가 CNN이 가진 고유의 인덕티브 바이어스(예: 변환 불변성 및 지역성)를 부족하게 만들어 충분한 양의 데이터로 훈련되지 않으면 잘 일반화되지 않기 때문입니다.

그러나 대규모 데이터셋(예: 14M-300M 이미지)에서 훈련할 경우, 큰 규모의 사전 훈련이 인덕티브 바이어스의 부족을 상쇄한다는 것을 발견합니다. 충분한 규모로 사전 훈련된 ViT는 여러 이미지 인식 벤치마크에서 최첨단의 성능을 달성하거나 능가하며, 동시에 컨볼루션 네트워크보다 훈련에 필요한 계산 자원을 상당히 줄일 수 있습니다. 이러한 발견은 Transformer 아키텍처가 NLP뿐만 아니라 컴퓨터 비전 과제에도 효과적으로 적용될 수 있음을 보여주며, 대규모 데이터에서의 사전 훈련이 중요한 역할을 함을 강조합니다.


Transformer와 NLP

  • BERT와 같은 큰 Transformer 기반 모델들은 대규모 텍스트 코퍼스에서 사전 학습을 수행한 다음, 특정 작업에 대해 미세 조정(fine-tuning)을 통해 우수한 성능을 달성합니다. 이러한 모델들은 계산 효율성과 확장성 덕분에 매우 큰 크기(예: 100B 매개변수 이상)로 훈련될 수 있습니다.

컴퓨터 비전에서의 Self-Attention과 Transformer

  • 컴퓨터 비전에서는 Self-Attention이 주로 CNN 구조와 함께 사용되거나, CNN의 특정 부분을 대체하는 형태로 적용되어 왔습니다. 이미지에 직접 적용할 경우, 각 픽셀이 다른 모든 픽셀과 상호 작용해야 하기 때문에, 실제 입력 크기에 대해 계산 비용이 제곱으로 증가하는 문제가 있습니다.
  • 이러한 문제를 해결하기 위해 과거의 연구에서는 이미지 내의 로컬 영역에만 Self-Attention를 적용하거나, 글로벌 Self-Attention를 활용 가능하게 만드는 다양한 근사 방법을 시도했습니다. 그러나 이러한 방법들은 복잡한 엔지니어링이 필요하며, 하드웨어 가속기에서 효율적으로 확장되기 어렵다는 단점이 있습니다.

Vision Transformer의 차별점

  • ViT 연구는 컨볼루션 레이어 없이 순수한 Transformer 구조만을 사용하여 이미지를 직접 처리할 수 있음을 보여줍니다. 이는 이미지를 패치로 분할하고, 이 패치들의 선형 임베딩을 Transformer의 입력으로 사용하는 방식으로, 이미지 패치를 NLP의 토큰과 유사하게 취급합니다.
  • 이 접근 방식은 특히 대규모 데이터셋에서 사전 학습을 수행했을 때, 기존 CNN 모델과 비교해 뛰어난 성능을 달성합니다. 이는 대규모 사전 학습이 CNN에서 일반적으로 활용되는 인덕티브 바이어스(예: 이동 불변성, 지역성)의 부족을 상쇄할 수 있음을 시사합니다.

기존 방식과의 비교

  • 이 섹션에서는 ViT가 기존의 컴퓨터 비전 모델, 특히 Self-Attention을 활용하는 모델들과 어떻게 차별화되는지를 설명합니다. 대부분의 관련 연구는 CNN 구조를 기반으로 Self-Attention를 추가하는 방식을 채택했으나, ViT는 이미지를 직접적으로 시퀀스 데이터로 변환하여 Transformer에 적용함으로써 새로운 접근 방식을 제시합니다.


3.1 VISION TRANSFORMER (ViT) 섹션에서는 Vision Transformer 모델의 구조와 작동 원리에 대해 자세히 설명합니다. ViT는 이미지를 처리하기 위해 Transformer 아키텍처를 적용한 최초의 모델 중 하나로, 이미지를 여러 개의 작은 조각인 패치로 나누고 이 패치들을 Transformer에 입력으로 사용합니다. 이 접근 방식은 이미지 분류와 같은 컴퓨터 비전 과제에 대해 새로운 시각을 제공합니다.

이미지 패치 분할 및 임베딩

  • 패치 추출: ViT는 먼저 주어진 이미지를 고정된 크기의 패치로 분할합니다. 예를 들어, 224x224 픽셀 크기의 이미지를 16x16 픽셀 크기의 패치로 나눌 수 있습니다. 이렇게 하면 하나의 큰 이미지가 여러 개의 작은 이미지 조각으로 분리됩니다.
  • 패치 임베딩: 각 패치는 선형 변환을 통해 고정된 크기의 임베딩 벡터로 변환됩니다. 이 과정은 각 패치가 Transformer 모델에 입력될 수 있도록 벡터 형태로 인코딩하는 것입니다.

위치 정보 추가

  • 위치 임베딩: Transformer는 입력 시퀀스의 순서 정보가 중요한데, 이미지 패치도 마찬가지로 그들의 상대적 위치 정보가 중요합니다. 따라서 각 패치 임베딩에는 위치 임베딩이 추가되어, 모델이 각 패치가 원본 이미지에서 어디에 위치하는지 알 수 있도록 합니다.

Transformer 인코더

  • 인코더 구조: ViT의 핵심은 Transformer 인코더 구조입니다. 이 인코더는 여러 개의 인코더 레이어로 구성되어 있으며, 각 레이어는 멀티 헤드 자기 주의(Multi-Head Self-Attention) 메커니즘과 포지션-와이즈 피드포워드 네트워크(Position-wise Feedforward Networks)를 포함합니다. 이 구조를 통해 모델은 이미지 내의 복잡한 패턴과 관계를 학습할 수 있습니다.

[class] 토큰과 이미지 분류

  • [class] 토큰: 이미지 분류를 위해, ViT는 특별한 [class] 토큰을 입력 시퀀스의 시작 부분에 추가합니다. 이 토큰은 Transformer 인코더를 통과한 후, 최종적으로 이미지의 분류 결과를 예측하는 데 사용됩니다. 모델 학습 시, 이 [class] 토큰의 출력은 손실 함수를 통해 실제 레이블과 비교되어 모델의 성능을 개선합니다.

결론

Vision Transformer(ViT)는 이미지를 시퀀스 처리하는 Transformer 아키텍처를 컴퓨터 비전에 적용함으로써, 전통적인 컨볼루셔널 네트워크와 다른 새로운 접근 방식을 제시합니다. 패치로 분할된 이미지와 위치 정보를 통해, ViT는 이미지 내의 다양한 특징과 객체 간의 관계를 효과적으로 학습할 수 있으며, 이는 이미지 분류와 같은 과제에서 뛰어난 성능을 발휘할 수 있게 합니다.

Inductive bias

Hybrid Architecture

Vision Transformer(ViT)에서 소개된 개념 중 하나로, 순수한 Transformer 모델과 컨볼루션 신경망(CNN)의 특성을 결합한 구조를 말합니다. 이러한 하이브리드 접근 방식은 Transformer의 글로벌한 컨텍스트 인식 능력과 CNN의 지역적 특징 추출 능력을 모두 활용하고자 하는 목적에서 출발합니다.

하이브리드 아키텍처의 필요성

ViT는 이미지를 여러 개의 작은 패치로 나누고 이를 Transformer에 입력으로 사용하는 방식을 채택합니다. 이는 글로벌한 컨텍스트를 잘 포착할 수 있지만, CNN이 가진 강력한 지역적 특징 추출 능력을 직접적으로는 활용하지 못합니다. 반면, CNN은 깊이 있는 레이어를 통해 복잡한 특징을 추출할 수 있으나, 긴 범위의 의존성을 모델링하는 데에는 한계가 있습니다.

하이브리드 아키텍처는 이 두 모델의 장점을 결합하여, 이미지 처리에서 더욱 강력한 성능을 발휘하기 위해 고안되었습니다.

하이브리드 아키텍처의 구성

  1. CNN을 통한 특징 추출: 하이브리드 모델은 먼저 CNN을 사용하여 이미지로부터 초기 특징을 추출합니다. CNN의 여러 계층을 통과하면서, 이미지의 기본적인 텍스처와 형태와 같은 지역적 특징이 점차적으로 복잡한 특징으로 정제됩니다.
  2. Transformer로의 전달: CNN에서 추출된 특징 맵은 Transformer의 입력으로 전달됩니다. 이 때, CNN의 특징 맵을 여러 개의 작은 패치로 나누거나, 특징 맵 전체를 하나의 시퀀스로 변환하여 Transformer에 입력할 수 있습니다. Transformer는 이 특징들 사이의 글로벌한 관계를 학습하고, 이미지 전체의 맥락을 이해하는 데 도움을 줍니다.
  3. 패치 임베딩과 위치 정보: CNN에서 나온 특징 맵을 기반으로 패치 임베딩을 생성하고, 위치 정보를 추가하는 과정도 포함됩니다. 이는 Transformer가 패치들의 상대적인 위치를 인식할 수 있도록 하여, 이미지 내의 객체들 사이의 공간적 관계를 더 잘 이해하도록 합니다.

하이브리드 아키텍처의 장점

  • 효율적인 특징 추출: CNN을 통해 이미지의 지역적 특징을 효율적으로 추출하고, 이를 바탕으로 Transformer가 보다 복잡한 패턴과 관계를 학습할 수 있는 기반을 마련합니다.
  • 글로벌 컨텍스트의 포착: Transformer의 자기 주의 메커니즘을 통해, 이미지 전체를 관통하는 글로벌한 컨텍스트를 포착하고, 다양한 패치들 사이의 복잡한 의존성을 모델링할 수 있습니다.

Fine-Tuning and Higher Resolution

3.2 FINE-TUNING AND HIGHER RESOLUTION 섹션에서는 Vision Transformer(ViT) 모델을 특정 작업에 최적화하고 성능을 개선하기 위한 미세 조정(Fine-tuning) 절차와 고해상도 이미지 처리 방법에 대해 설명합니다. 이 과정은 모델이 대규모 데이터셋에서 사전 학습을 마친 후, 보다 작은 데이터셋이나 특정한 도메인의 문제에 적응할 수 있도록 돕습니다.

미세 조정(Fine-tuning)

  • 사전 학습된 모델의 조정: ViT는 대규모 이미지 데이터셋에서 사전 학습된 후, 특정 작업(예: 이미지 분류, 객체 감지 등)에 대해 미세 조정될 수 있습니다. 이 과정은 사전 학습된 모델이 이미 학습한 지식을 바탕으로 새로운 작업에 빠르게 적응하고, 성능을 개선할 수 있도록 합니다.
  • 분류 레이어의 교체: 미세 조정 시, 모델의 마지막 분류 레이어(예: 사전 학습 시 사용된 [class] 토큰과 연결된 레이어)는 새 작업의 클래스 수에 맞게 새로운 레이어로 교체됩니다. 이 새로운 레이어는 보통 0으로 초기화되며, 미세 조정 과정에서 새 작업의 데이터로부터 학습됩니다.

고해상도 이미지 처리

  • 해상도 증가: ViT 모델은 사전 학습 시 사용된 해상도보다 높은 해상도의 이미지로 미세 조정될 수 있습니다. 고해상도로 미세 조정하는 것은 모델이 더 세밀한 이미지의 특징을 포착하고, 성능을 개선할 수 있게 합니다.
  • 패치 크기 유지: 고해상도 이미지에서는 패치의 크기를 변경하지 않고, 이미지의 해상도만 증가시킵니다. 이로 인해 생성되는 패치의 수가 늘어나고, 모델이 처리해야 할 시퀀스의 길이가 길어집니다. 이는 모델이 더 많은 컨텍스트 정보를 활용할 수 있게 하지만, 동시에 계산 비용이 증가할 수 있습니다.
  • 위치 임베딩의 조정: 고해상도로 이미지를 처리할 때는 위치 임베딩도 조정해야 합니다. 사전 학습된 위치 임베딩은 새로운 해상도의 이미지에 대해 직접 사용될 수 없기 때문에, 위치 임베딩을 새로운 이미지 크기에 맞게 보간(interpolation)하여 조정합니다.

결론

미세 조정과 고해상도 이미지 처리는 ViT 모델이 다양한 작업과 데이터셋에 효과적으로 적용될 수 있도록 하는 중요한 과정입니다. 이를 통해, 모델은 사전 학습에서 얻은 지식을 활용하여 새로운 도전 과제에 더 잘 적응하고, 더 세밀한 이미지의 특징을 포착하여 성능을 개선할 수 있습니다.