Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
ViT - 1. INTRODUCTION (P.1 - 2)
위 내용에서도 볼 수 있듯,
Transformer는 inductive biases (귀납적 편향)이 없어서 데이터가 충분하지 못할 경우 CNN보다 성능이 낮음
(아래 글에 inductive biases 관련 설명)
https://cafe.daum.net/SmartRobot/RoVa/2560
ViT의 경우, inductive biases가 없고 global하게 지역적 특성을 처음부터 학습해야 하기 때문에 데이터 양이 많아야 했음
+ ViT는 이미지를 패치로 자른 뒤, 전체 패치가 서로 한 번씩 다 어텐션(내적) 연산을 함.
만약 패치가 100개면 연산을 10,000번, 고해상도라서 패치가 1,000개면 ... 엄청 많아진다.
카메라 해상도가 커질수록 연산량이 제곱으로 늘어남.
결론적으로는 적은 데이터로도 좋은 성능
또한 전체 패치를 어텐션하지 않고, 이미지를 여러 개의 'Window' 구역으로 나눔
그리고 Window 안에 들어있는 패치들끼리만 서로 어텐션을 계산하는 (inductive biases O)
transformer model = swin transformer (Shifted WINdows)
Swin Transformer
왜 이런 구조를 만들었는지?
hierarchical feature maps: 계층적인 특징 맵
linear computational complexity: 선형적 계산 복잡도
Gradually merging: 점진적으로 병합
아까 봤던 ViT 문제들을 해결하기 위해 계층적인 특징 맵을 구성함
: 다양한 크기의 물체를 인지할 수 있음 (후반 레이어의 병합된 큰 패치 특징 + 초반 레이어의 작은 패치)
이들을 점진적으로 병합
: 모델 초반에는 아주 잘게 쪼갠 작은 패치로 세밀한 디테일을 보고,
뒤로 갈수록 인접한 패치 2x2를 하나로 뭉쳐서(Merging) 점점 큰 틀을 봄
Detection, Segmentation 등 범용 트랜스포머 백본임을 말함
= output이 계층적 특징 맵(Hierarchical Feature Map)이라는 말임
또한 ViT는 전체 패치를 다 곱하느라 해상도가 커지면 연산량이 제곱(O(N^2))으로 폭발
하지만 Swin은 정해진 크기의 Window 안에서만 놀기 때문에,
이미지가 커져도 연산량이 이미지 크기에 비례해서 정직하게만 늘어나는 선형적(O(N)) 계산 복잡도를 달성
어떻게 연산량 줄였는지? / 어디에 쓸 수 있는지
Dense prediction (밀집 예측)
: ViT처럼 이미지 전체를 보고 정답 하나만 내놓는 것(Classification)이 아니라,
이미지의 모든 픽셀 하나하나가 무엇인지 촘촘하게 예측하는 작업(Object Detection, Semantic Segmentation)
Locally within non-overlapping windows (겹치지 않는 윈도우 내에서 지역적으로 계산)
: 이미지를 여러 개의 윈도우로 쪼갠 다음 그 안에 들어있는 패치들끼리만 끼리끼리 어텐션 연산을 수행
Complexity becomes linear / Quadratic complexity (선형 복잡도 / 2차 복잡도)
: 한 윈도우 안에 들어가는 패치의 개수(M * M = 7 * 7 = 49개)를 고정시킴
= 이미지가 아무리 커져도, 그냥 그 고정된 크기의 윈도우 개수만 늘어날 뿐이므로 연산량은 패치 수 N에 정비례함
어떻게 구현했는지?
(a) 전체 구조 (:Architecture)
이미지가 들어와서 어떻게 점점 큰 틀로 보게 되는지 (Patch Merging)이 핵심임
CNN에서 layer를 거치며 해상도는 줄고 채널이 두 배로 늘어나는 방식(Pooling)을 트랜스포머로 구현함
Input Image (H * W * 3): RGB color image
Pathch Partition (패치 쪼개기): 4 * 4 단위로 자름 (4 * 4 * 3 [RGB] = 48, 각 패치는 길이가 48인 1차원 벡터)
stage 1
첫댓글 계획대비 지연상태임 주말에도 나와서 공부할것