CNN 대신 self-attention layer만을 이용해서 sota모델을 달성
CNN은 내재하고있는 inductive bias 가 부족하다.
Inductive bias
특정 데이터에 대해 좋은 성능을 내기 위해 모델에 가하는 prior 가정.
Image data : local한 정보를 추출하는것이 중요. - convolution filter : 2d information 유지
Time series data : sequential 한 정보 추출
반면에 transformer 는 1차원 정보로 만들기 때문에, 2차원 local한 정보 유지 못함.
ViT가 CNN보다 이미지별 inductive bias가 훨씬 적다는 것에 주목합니다. ViT에서는 MLP 계층만 Local 및 translationally equivariant하고, self-attention layer는 global합니다. 초기화 시 위치 임베딩은 패치의 2D 위치에 대한 정보를 전달하지 않으며 패치 간의 모든 공간 관계는 처음부터 학습해야 합니다.
Q : why transformer has computational efficiency and scalability?
images : in here , 224x224x3[ ImageNet Datasets ]
=> Sequence of flattened 2D patches
Q : 채널 개수만큼, 겹치는것 정보가 조금씩 겹칠것 같다. 왜냐하면, 적색, 녹색, 파란색 색정보가 뚜렷하지않으면 비슷비슷한거 아닌가..?
=> Latent Vector size :
Class token
similar with BERT's cls token
and serves as image representation
전체 이미지에 대한 임베딩 를 MLP에 통과시켜 이미지를 분류한다.
PE initial weights에 대한 제약조건이 있는지 아니면 random하게 만들었는지.
Vision Transformer의 Position Embedding은 입력 이미지의 패치의 위치를 나타내는 벡터입니다. Position Embedding은 다음과 같이 계산됩니다.
Contribution
image recognition 분야에 Transformer를 직접적으로 적용한 첫 사례
이미지에 특정된 inductive bias를 아키텍처에 주입하지 않음 (이미지 패치 추출 부분 제외)
모델 학습 과정 전체적으로 이미지를 NLP에서 사용되던 것처럼 패치 시퀀스로 다룸
inductive bias가 약하기 때문에 보다 general-purpose의 architecture라고 할 수 있음. (one-for-all)
큰 사이즈의 데이터셋에서 사전 학습한 후에 기존의 CNN 기반 baseline보다 더 좋은 성능. 추가적으로, 사전학습이 그리 어렵지 않다는 점.
Image --> Patches --> Embeddings --> Transformer Blocks --> Output
Image: 입력 이미지
Patches: 이미지를 패치 단위로 나눈 결과
Embeddings: 패치를 새로운 차원으로 변환한 결과
Transformer Blocks: 입력 이미지의 패치 간의 관계를 학습하는 블록
Output: Transformer Blocks의 출력
Vision Transformer는 CNN 모델에 비해 간단한 구조를 가지고 있지만, CNN 모델에 비해 뛰어난 성능을 보여줍니다. Vision Transformer는 컴퓨터 비전 분야에서 새로운 패러다임을 제시한 모델이라고 할 수 있습니다.