진행사항
INTERODUCTION
Vision Transformer(ViT) 제안
표준 트랜스포머 구조를 가능한 최소한의 수정만 거친 채 이미지에 직접 적용하는 방식을 시도
이미지를 일정한 크기의 패치(patch)로 분할한 뒤, 이 패치들을 NLP의 토큰(단어)처럼 취급하여 선형 임베딩 시퀀스로 트랜스포머에 입력하는 형태
귀납적 편향(Inductive Bias) 문제
트랜스포머가 CNN 고유의 귀납적 편향(지역성, 이동 등변성 등)을 갖추고 있지 않아 데이터 양이 불충분할 경우 일반화 성능이 떨어지기 때문이라고 분석
RELATED WORK
large scale pre-training
large scale pre-training을 거칠 경우 특별한 구조적 변형을 가하지 않은 vanilla transformers 모델만으로도 최첨단 CNN 모델들과 대등하거나 심지어 그 이상의 성능을 발휘할 수 있음을 새롭게 증명
기존 Cordonnier 의 모델은 2x2 픽셀이라는 매우 작은 패치 크기를 사용하기 때문에 해상도가 낮은 작은 이미지에만 제한적으로 적용할 수 있다는 뚜렷한 한계가 있었는데,
논문의 ViT 모델은 패치 방식을 개선하여 저해상도뿐만 아니라 중간 해상도(medium-resolution)의 이미지까지 원활하게 처리할 수 있도록 설계
Model Architecture
Patch Extraction
트랜스포머 모델은 기본적으로 문장의 단어들과 같은 1차원(1D) 토큰 임베딩 시퀀스를 입력으로 받는데,
2D 형태의 이미지를 이 구조에 맞게 처리하기 위해, 원본 이미지(H×W×C)를 가로세로가 일정한 해상도(P×P)를 가진 여러 개의 2D 패치(patch)들로 쪼개어 평탄화(flatten)한다.
이때 잘라낸 패치의 총 개수(N=HW/P^2)가 트랜스포머의 유효한 입력 시퀀스 길이가 된다.
Linear Projection for Patch Embeddings
트랜스포머는 모든 층에서 고정된 크기의 잠재 벡터 차원(D)을 사용하기 때문에,
1차원으로 평탄화된 각 패치들에 trainable linear projection을 적용하여 동일한 D 차원의 벡터로 매핑한다.
논문에서는 이 변환의 결과물을 patch embeddings라고 부르는데 이 patch들이 NLP의 단어 임베딩과 같은 형태로 변화된 것이다.
[class] token & Position Embeddings
class token
언어 모델인 BERT의 구조를 본떠, 임베딩된 패치 시퀀스의 맨 앞자리에 learnable embedding(0*)을 하나 추가한다.
여러 층의 트랜스포머 인코더를 모두 통과한 후 출력되는 이 클래스 토큰의 상태 수치는 전체 이미지를 종합적으로 대표하는 표현(image representation)으로 사용 된다.
Position Embeddings
transformer의 self-attention 구조는 한 번에 모든 입력을 처리하기 때문에 패치들이 원래 이미지의 어느 위치에 있었는지(순서나 공간적 구조)를 자체적으로 알지 못한다.
따라서 이러한 위치 정보를 유지하기 위해 patch embedding 값에 추가로 더해주는 값이 position embedding이다.
Transformer Encoder
1.Norm
입력된 1차원 패치 시퀀스 데이터가 연산 블록에 들어가기 전에 먼저 레이어 정규화
Multi-Head Self-Attention
이곳에서는 여러 개(k개)의 어텐션 헤드가 병렬로 작동하고,
이미지 전체를 구성하는 패치들 사이의 전역적인(global) 연관성과 문맥을 한 번에 파악
Residual Connection(+ , 잔차연결)
연산이 끝난 후에는 기존의 입력값을 결과값에 다시 더해주는 잔차 연결이 적용
2.Norm
Multi-Head Self-Attention 블록과 잔차 연결을 통과해 나온 결과값은 다음 단계인 MLP 블록으로 들어가기 직전에 다시 한번 레이어 정규화한다.
MLP
두 번째 정규화를 통과한 데이터는 특징을 변환하기 위해 MLP 블록을 지난다.
이 블록은 GELU 비선형 활성화 함수를 사이에 둔 2개의 신경망 층(layer)으로 구성되어 있다.
2. Residual Connection(+ , 잔차연결)
블록의 연산이 끝난 후에도 마찬가지로 두 번째 정규화를 거치기 전의 값을 결과값에 더해주는 잔차 연결이 한 번 더 적용
입력 데이터는 위와 같은 구조의 층을 총 L번 반복해서 통과하고,
모든 층을 통과해 출력된 1차원 sequence의 여러 벡터 중 맨 앞에 위치한 클래스 토큰의 최종 상태값이 전체 이미지를 대표하는 최종 표현(image representation)으로 출력된다.
MLP Head
트랜스포머 인코더를 통과해 나온 여러 출력값 중, 전체 이미지를 대표하는 [class] token의 최종 상태값를 단독으로 입력는데
이 값은 인코더를 거치며 전체 이미지의 전역적인 특징을 하나로 압축하고 요약해 낸 전체 이미지 대표 표현(image representation)이다.
이러한 헤드의 처리 과정을 거쳐 도출되는 최종 출력값은,
원본 이미지가 최종적으로 어떤 범주에 속하는지(예: Bird, Ball, Car 등)를 예측한 최종 클래스 예측값(분류 결과)이 나온다.
첫댓글 연구계획서 캡쳐해서 앞에 첨부
계획대비 지연상태임 주말에도 나와서 목표달성할것