이미지 생성을 효율적으로 하기위해 이미지를 토큰화시키는 방법이 연구되고 있음
예를들어 VQGAN과 같은 방법들은, 이미지를 2차원의 고정된 크기를 가지는 격자로 변환해서 토큰화하는 방법인데, 이미지의 여러 부분이 서로 비슷한 경우 이런 중복성을 처리하는데 한계가 있었다.
그래서 이 논문에서 제안한 TiTok 접근법은, 새로운 방식인 transformer 기반의 1차원 token을 제안한다. TiTok은 이미지를 1차원의 연속된 데이터 시퀀스로 변환해서 토큰화하고, 이 방식이 기존의 2차원 방식보다 더 효율적이고 효과적인 표현을 가능하게 한다고 한다.
모델파잎라인
토큰화 과정은
먼저 전체 이미지를 작은 패치로 나눈다. 이 패치에 patch embedding layer를 붙인거랑 latetn token을 함께 vit 인코더에 넣어서 vit 인코더는 1차원의 latent vector 를 아웃풋한다
인코더에서 output된 이 1D 벡터는 vector quantization 과정을 거쳐, 코드북에서 가장 가까운 vector 로 대체된다.
여기 패치 개수만큼 마스크 토큰을 생성하고, 이거를 discrete된 latent 토큰이랑 concat을 시켜 디코더에 넘겨준다. 넘겨준 디코더는 이미지 generation을 수행하게 된다
많은 토큰의 수는 지역적 정보가 많아져 분류 accuracy는 낮아질 수 있으나 , reconstruction 성능은 향상될거고
reconstruction 말고 이미지 생성에 있어서는 적은 토큰의 수가 오히려 넓고 추상적인 특징을 포착하는데 유리하고, 다양한 이미지 생성하는데 도움이 된다.
그리고
코드북의 크기가 중요!
.
결과~