2023 Summer Session/CV Team 2

[6주차 / 김지윤 / 논문리뷰] ViTAE : Vision Transformer Advanced by Exploring Intrinsic Inductive Bias

Jiyoongee 2023. 8. 11. 23:54

💡 ViTAE는 ViT에 CNN의 intrinsic IB(Inductive Bias)를 도입하기 위한 것.

 

1. Introduction

ViT 단점

ViT가 로컬 시각적 구조(특히, 가장자리와 모서리)를 모델링하거나 컨볼루션과 같은 방식으로 다양한 스케일의 객체를 처리하는 데 내재적인 인덕티브 바이어스(IB)가 부족

반면, CNN은 자연스럽게 내재적인 스케일 불변성과 지역성을 가져 비전 작업에서 여전히 주요한 백본(backbone)으로 사용됨. CNN의 내재적인 IB를 명시적으로 비전 트랜스포머에 도입하여 네트워크 구조를 재설계함.

CNN과 유사한 디자인을 트랜스포머에 적용하여 다양한 스케일의 컨텍스트를 토큰에 내재시키는 방법을 탐구 → 토큰이 다양한 객체의 특징을 가지도록 하여 내재적인 스케일 불변성 IB를 얻게 하며, 데이터로부터 스케일 불변 특징을 효율적으로 학습할 수 있도록 한다. 로컬 특징은 high-level 구별 특징을 생성하는 데 중요한 요소.

ViTAE는 데이터 효율성, 훈련 효율성, 분류 정확도 및 하위 작업의 일반화 면에서 대표적인 비전 트랜스포머를 능가.

Related Work

2.1 CNNs with intrinsic IB

시각적 작업에서 중요한 요소 : scale-invariance(스케일 불변성)

다양한 스케일에서 객체를 효과적으로 표현하기 위해 다중 스케일 특징이 필요

방법 1) 이미지 피라미드 : 서로 다른 해상도의 이미지 피라미드에서 특징을 수작업으로 생성하거나 학습 (레이어 간 퓨전)

방법 2) 다중 스케일 컨텍스트를 한 레이어 내에서 서로 다른 수용 영역의 여러 컨볼루션을 사용하여 집계 (레이어 내 퓨전)

CNN에 스케일 불변성을 모델링하는 내재적인 정보 바이어스를 부여

2.2 Vision transformers with learned IB

  1. ViT와 같은 방향의 후속 연구는 모델 구조를 단순화하고 내재적 정보 바이어스를 적게 가지며 대규모 데이터에서 직접 학습.
  2. CNN의 내재적 정보 바이어스를 활용하여 비전 트랜스포머의 훈련을 용이하게 함.

ex) DeiT : 훈련 중에 트랜스포머로부터 지식을 증류시키는 방법 제안.

단점 : 훈련 중에 외부의 기존 CNN 모델을 사용해야 하므로 추가 계산 비용 발생.

Conformer : 병렬 컨볼루션 및 트랜스포머 블록 간 상호 작용을 탐색하기 위해 유닛을 사용. 내재적인 스케일 불변성 정보 바이어스를 가지는 것을 고려하지 않음.

↔ ViTAE : 트랜스포머 블록 내에서 컨볼루션 및 어텐션 모듈이 서로 보완적으로 설계.

"divide-and-conquer(분할하여 공략)" 아이디어를 따라가며 각 트랜스포머 레이어 내에서 지역성과 전역 의존성을 모델링하기 위해 병렬 구조를 제안

3. Methodology

3.1 Revisit vision transformer (ViT 구조 복습)

  1. 토큰 임베딩

인풋 이미지 $x∈R^{H×W×C}$ → 토큰화 후 형식 $x_t∈R^{((H×W)/p^2)×D}$

$D=Cp^2$ : token dimension

  1. transformer layer

MHSA (Multi-Head Self-Attention)

인풋 토큰은 projection matrix $W_Q, W_K, W_V$ 에 의해 쿼리(Q), 키(K), 밸류(V)로 project 된다.$Q,K,V=x_tW_Q,x_tQ_K,x_tQ_V$

그리고 self-attention 으로 계산

$Attention(Q,K,V)=softmax(\frac {QK^T} {√D})V.$

single-head self-attention(SHSA) 이 h번 반복 계산된 값을 concat 해서 아웃풋 산출

FFN (Feed Forward Network)

linear transformation → 활성화 함수 → linear transformation

MHSA 와 FFN 각각 앞에 layer normalization, 그리고 두 블록 사이에 shortcut 있음.

3.2 Overview architecture of ViTAE (전체적인 플로우)

로컬성과 long-range 종속성을 병렬로 처리하는 네트워크 구조

각 블록 내에서 트랜스포머가 로컬 및 long-range 특징을 더 효과적으로 학습할 수 있음. ****

ViTAE는 ViT에 CNN의 내재적인 IB를 도입하기 위한 것.

reduction cell(RC)과 normal cell(NC)이라는 두 가지 유형의 기본 셀을 조합.

인풋 이미지 $x∈R^{H×W×C}$가 세 개의 RC를 거치며 x를 각각 4배, 2배 및 2배로 점진적으로 다운샘플링. RC의 출력 토큰은 $[H/16, W/16, D]$ 크기, D : 토큰 dimension (디폴트 : 64)

RC의 출력 토큰은 $R^{HW/256×D}$로 flatten되고, 클래스 토큰과 연결되며 사인 함수 위치 인코딩이 추가됨. 그런 다음 토큰들은 길이를 유지하는 NC로 전달되며, 마지막 NC에서는 클래스 토큰으로부터 선형 분류 레이어를 사용하여 예측 확률을 얻음.

RC : 다양한 dilation(팽창) 비율의 atrous 컨볼루션을 사용하여 입력 이미지를 토큰으로 다운샘플링하고, 다양한 스케일의 컨텍스트를 내재시키기 위한 추가적인 피라미드 축소 모듈을 가짐. ****

NC : 로컬성과 전역 종속성을 토큰 시퀀스에서 함께 모델링

두 셀은 평행한 **어텐션 모듈, 컨볼루션 레이어, 피드 포워드 네트워크(FFN)**를 따르는 간단한 기본 구조를 공유. RC를 통해 다양한 스케일의 컨텍스트를 토큰에 내재시키기 위해 추가적인 피라미드 축소 모듈을 포함시키고, 설정한대로 공간 해상도를 1/16로 줄이기 위해 세 개의 RC를 쌓고 데이터로부터 구별 특징을 학습하기 위해 세 개의 NC를 쌓음.

3.3 Reduction cell

다중 스케일 컨텍스트와 로컬 정보를 시각적 토큰에 임베딩하는 것이 목적.

컨볼루션으로부터 intrinsic scale-invariance 와 locality IB를 도입함.

RC는 두 개의 병렬 분기로 구성, 1) locality 모델링, 2) long-range dependency 처리 → FFN

i 번째 RC의 입력 피쳐 $f_i∈R^{H_i×W_i×D_i}$

첫 번째 RC의 입력은 이미지 x. global dependencies(전역 종속성) 분기에서는 $f_i$가 먼저 Pyramid Reduction Module (PRM)에 입력되어 다중 스케일 컨텍스트를 추출.

$s_{ij}$는 미리 정의된 확장률 집합 $S_i$에 에 해당하는 dilation rate.

stride 합성곱을 사용하여 특징의 공간 차원을 reduction ratio set R의 비율 $r_i$만큼 줄임. 합성곱된 피쳐는 채널 차원을 따라 연결됨.

$f^{ms}_i ∈ R^{(W_i/p)×(H_i/p)×(|S_i|D)}$, $|S_i|$ : $S_i$의 dilation rate 개수

→ MHSA 모듈을 거쳐 장거리 종속성 모델링. Img2Seq은 피쳐맵을 1D 시퀀스로 flatten.

$f^g_i$가 각 토큰에 다중 스케일 컨텍스트를 임베딩.

로컬 컨텍스트를 토큰 내에 임베딩하기 위해 Parallel Convolutional Module (PCM)을 사용하고 병합

PCM 은 세 개의 합성곱 레이어와 Img2Seq로 구성. 주목할 점은 병렬 합성곱 분기가 PRM과 동일한 공간 다운샘플링 비율을 사용하여 stride 합성곱을 사용한다는 것. → 토큰 피쳐는 지역 및 다중 스케일 컨텍스트를 모두 가질 수 있음. (= RC가 지역성 및 스케일 불변성 IB를 획득)

병합된 토큰은 FFN으로 처리되고 피쳐맵으로 변형된 후 다음 RC 또는 NC에 보내짐.

Seq2Img 는 토큰 시퀀스를 피쳐맵으로 다시 변형시킴.

3.4 Normal cell

세 번째 RC의 출력 피쳐인 $f_3$를 클래스 토큰 $t_{cls}$와 연결하고, 위치 인코딩에 추가하여 다음 NC에 대한 입력 토큰을 얻음. $t_{cls}$는 훈련 시작시 무작위로 초기화되고 추론 중에 고정됨.

이후 RC와 유사하게 토큰들은 MHSA 모듈을 거침. $t_g=MHSA(t)$

동시에 이들은 2D 피쳐 맵으로 변형되어 PCM에 입력됨. $t_l=Img2Seq(PCM(Seq2Img(t)))$ 클래스 토큰은 다른 시각적 토큰과 공간적으로 연결되어 있지 않기 때문에 PCM에서 제외.

NC의 매개변수를 줄이기 위해 PCM에서는 그룹 컨볼루션을 사용. MHSA 및 PCM에서 나온 특징들은 elementwise 합산을 통해 결합됨. $t_{lg}=t_g+t_l$

마지막으로 FFN을 거쳐 NC의 출력 특징 $t_{nc}=FFN(t_{lg})+t_{lg}$을 얻음.

ViT와 유사하게, 마지막 NC에서 생성된 클래스 토큰에 정규화를 적용하고, 이를 분류 헤드에 입력하여 최종 분류 결과를 얻음.

3.5 Model Details

ViTAE의 두 가지 버전

  1. 합성곱 커널 크기 : 7×7, 스트라이드 : 4, 확장율 : S1=[1,2,3,4]
  2. 합성곱 커널 크기 : 3×3, 스트라이드 : 2, 확장율 : S2=[1,2,3] S3=[1,2]