위키득계정 ↗
기술

CvT

전체 이름
Convolutional vision Transformer
토큰 생성
합성곱 임베딩
주의 투영
깊이별 분리 합성곱
구성
계층적 트랜스포머
CvT는 토큰 생성과 주의 연산의 투영에 합성곱을 도입한 시각 트랜스포머다. 공간 격자의 국소 정보를 반영하면서 단계별로 토큰 수와 채널 크기를 조절한다.

합성곱으로 토큰 만들기

이미지 또는 앞 단계의 특징 맵에 합성곱을 적용한 뒤 공간 위치들을 토큰 시퀀스로 펼친다. 단계가 진행되면서 토큰 수는 줄이고 채널 크기는 늘리는 계층 구조를 사용한다. 겹치는 이웃 정보를 토큰 생성에 반영할 수 있다.

질의와 키의 공간 처리

주의 연산의 질의, 키, 값 투영에 깊이별 분리 합성곱을 활용한다. 키와 값의 보폭을 질의보다 크게 설정하면 참조 대상의 공간 수를 줄일 수 있다. 질의와 키의 길이가 반드시 같아야 하는 것은 아니다.

점수 행렬의 예

질의 격자가 8×8이고 키와 값의 격자가 4×4라면 주의 점수 행렬은 64×16이다. 둘 다 8×8일 때의 64×64보다 원소 수가 네 분의 일이다. 채널 투영과 다른 층의 비용은 남으므로 전체 모형의 네 배 가속을 의미하지는 않는다.

위치 표현의 해석

CvT는 별도의 위치 임베딩을 제거한 구성을 평가한다. 이는 공간 정보가 사라진다는 뜻이 아니라 합성곱의 배치와 국소 처리가 공간 구조를 반영한다는 뜻이다. 다른 트랜스포머에서도 위치 임베딩을 무조건 제거할 수 있다는 결론으로 확대해서는 안 된다.

관련 문서

ViT의 합성곱 스템 / MobileViT / CoAtNet / 트랜스포머 / 합성곱 신경망 / 자기 주의