Search
Login
🥑

Zero-Shot Text-to-Image Generation

Created
2022/04/20
Editor
Tags
Multimodal
논문 : Zero-Shot Text-to-Image Generation 저자 : Aditya RameshMikhail PavlovGabriel GohScott GrayChelsea VossAlec RadfordMark ChenIlya Sutskever

논문 선정 계기

CLIP과 같이 두 개의 modality를 동시에 이해하는 연구가 많이 진행중이다. 또, 특정한 이미지에 대해 언어의 형태로 이미지를 표현하는 image captioning 분야는 오래된 연구 분야 중 하나이다. 그러나, language에서 vision으로, 다시 말해 주어진 언어를 바탕으로 이미지를 생성하는 것은 앞선 두 예제에 비해 훨씬 어려운 일이다. 그렇기 때문에 language에서 image를 자연스럽게 생성할 수 있는 해당 논문이 큰 Contribution 이 있다고 생각하여, 본 논문을 선정하였다.

Introduction

Zero-Shot Image Generation
내가 보지 않은 물체 상황을 그려내는 것은 쉬운 것이 아니다. 하지만 여러 예술가들은 구전으로 내려오는 신화의 한 장면도 곧 잘 그려낸다. DALL-E에서는 충분한 양의 데이터와 모델 크기만 있다면 과거에 학습하지 못한 새로운 이미지를 만들어내는 Zero-shot 학습 방법의 적용이 가능함을 보여준다.
Two-Stage Approach
vision 에 대한 tokenizing 을 통한 high-quality 이미지 생성과 언어와 같은 stream 으로 데이터를 다룰 수 있게 하였다. 또한 기존에 연구들이 MS-COCO와 같은 데이터셋에서 연구를 하는데 한정되어있지만, 많은 최신 연구들이 Large-Scale Generative model 에 대한 가능성을 보여주고 있다. 따라서, 데이터셋과 모델 사이즈를 Scaling 하는 것이 성능에 어떤 영향을 주는지 실험해보았다는데 의미가 있다.
DALL-E는 12B 모델사이즈와 250M 데이터셋 (텍스트, 이미지) 쌍으로 훈련한다.

DALL-E

DALL-E는 우선 텍스트와 이미지를 같은 스트림의 데이터로 생각하는 것에서 출발한다. 그래서 처음에는 이미지를 Sequence 로 만들기 위해 Vector Quantized 하는 방법에 대해 설명한다.

1. Stage-1

dVAE (discrete Variational AutoEncoder)
dVAE 를 이용하여 256x256 → 32x32 의 image tokens 으로 만든다. DALL-E에서는 token 의 codebook 사이즈를 8192로 하였다.
위 그림과 같이 dVAE 구조로 q(z|x)를 얻는 것이 Stage-1의 목적이다. 위와 같은 구조를 사용함으로서 transformer 의 context size를 줄일 수 있다.
한 가지 문제점은, encoder 를 기존 VQ 방식으로 사용하면 codebook 의 크기를 늘리면 encoder 의 벡터와 codebook 의 벡터를 비교하는데 시간이 기하급수적으로 증가한다. 그래서 encoder가 codebook 의 indice 를 예측하는 방식의 continuous relaxation 방법을 사용하는 것이 좋다.
continuous relaxation
gumbel softmax 논문에서 gumbel distribution gig_i 를 더한 후 temperature scale τ\tau 를 해주면 이것이 τ\tau 가 무한히 작아지면 argmax와 같은 역할을 한다는 것을 증명하였다.
encoder 의 값에 gumbel softmax 를 취하여 해당 인덱스를 구하는 방식을 쓰면 훨씬 간단하다.

2. Stage-2

Stage-2 에서는 256 BPE token 과 위에서 인코딩한 32x32 = 1024 이미지 토큰을 concat 하여 총 1280 tokens 를 만든다. 이렇게 만들어진 text와 image 토큰을 autoregressive transformer에 넣어 image 와 text의 joint distribution 의 log-likelihood 를 maximize 하는데 목적이 있다.
image : xx
text : yy
token : zz
qϕq_{\phi} : dVAE encoder 의 distribution (ϕ\phi 는 dVAE encoder)
pθp_{\theta} : dVAE decoder given image tokens
pψp_{\psi} : transformer 의 (text,image) joint distribution
다음에서 joint distribution (text, image) 는
pθ,ψ(x,y,z)=pθ(xy,z)pψ(y,z)p_{\theta, \psi} (x,y,z) = p_\theta(x|y,z) p_\psi(y,z)
즉, x,y,z(text,image,token)의 joint distribution 은 y,z 가 주어졌을 때 transformer 아웃풋으로 나온 이미지 distribution x 의 decoding 된 결과와 text distribution 의 곱으로 이루어진다고 할 수 있다.
lnpθ,ψ(x,y)E(lnpθ(xy,z)βDKL(qϕ(y,zx),pψ(y,z)))\text{ln}p_{\theta,\psi}(x,y) \ge \mathbb{E}(\text{ln}p_{\theta}(x|y,z) - \beta D_{KL}(q_{\phi}(y,z|x),p_{\psi}(y,z)))
1.
첫번째 텀은 dVAE 디코더가 복원하는 distbribution을 maximize 하는 텀이다.
2.
두번째 텀은 dVAE 인코더가 토큰을 예측하는 텀이다.
3.
세번째 텀은 Autoregressive Transformer의 Text, Image Joint distribution을 Maximize하는 텀이다.
이를 모두 Maximize 하면 x,y (텍스트,이미지)에 대한 distribution 을 학습할 수 있다.
Transfomer input
transformer에 들어가는 input은 다음과 같은 구조가 된다.
Masked attention on Vision
image같은 경우는 근처의 픽셀에 영향을 받는 경우가 많다. transformer의 masking을 조절하여 row-masking, colume masking, conv maksing을 layer 마다 다르게 사용하였다고 한다.
예를 들어 row-masking은
이미지의 특정 token 은 앞의 모든 text를 참조하지만 해당 row의 전단계 토큰만 참조하게 되어있다.

3. Data Collection

PoC 개념으로 비교적 적은 데이터 에서 실험을 해보았다고함
Conceptual Captions : 3.3 million text-image pairs 에서 우선 실험을 하고,
이후에는 JFT 데이터셋과 비슷한 크기로 250 million text-images pairs 를 인터넷에서 수집함.

4. Training Big Model

Mixed Precision, PowerSGD, Distributed Training 등 거대 모델을 훈련하기 위한 다양한 방법들을 적용하였다.

Experiments

1. MS-COCO and CUB

기존 GAN이나 다른 방식들보다 FID나 IS 가 높다. FID와 IS 는 보통 Perceptual metric, 즉 얼마나 진짜 같은지에 대한 Score 로서 기존 GAN보다 훨씬 있을 법한 이미지를 생성한다고 해석할 수 있다.

2. Reranking

k 장을 sample 한 후 CLIP score 로 ranking을 매겨서 가장 높은 것을 사용하면 훨씬 더 그럴싸한 이미지가 생성된다. 사실 이러한 후처리 과정은 매우 Resource-Heavy 한 방법이라고 생각된다.

3. Qualatative

재밌는 점은 기존에 보지못한 “아보카도 모양의 의자" 를 생성하는 것 뿐만이 아니라
위 그림과 같이 “위에 그림과 똑같은 고양이 스케치"라고 하고 이미지를 반만 주고 아래 그림을 그려보라고 하면 실제 아래 스케치를 그린다는 것이다.
This suggests that it has developed a rudimentary ability to compose unusual concepts at high levels of abstraction.
만약, 모델이 훈련 데이터를 단순히 memorization을 했다면 이러한 새로운 데이터를 생성하지 못할 것이다. 그렇지만 모델이 학습과정에서 접하지 못했고, 현실에서도 존재하기 어려운 이미지도 그 의미를 추론하여 잘 생성해 낸다는 것은 고도의 추상화를 통해 기본적인 개념들에 대해 모델이 잘 학습했다는 것을 의미한다.

Conclusion

기존 Text-to-Image Generation 을 Qualitative 한 측면에서 뿐만이 아니라 Generalization 에서도 능가하는 DALL-E 모델을 제시한다. 즉, 대규모 모델과 대규모 데이터셋이 모델의 성능을 올리는 돌파구가 될 수 있음을 시사한다.

Reference & Further Reading