Post

[논문 리뷰] DALL-E 2, Hierarchical Text-Conditional Image Generation with CLIP Latents (unCLIP)



Open AI arXiv 2022

Introduction


최근 컴퓨터 비전 분야에서 웹에서 수집된 대규모 캡션 이미지를 사용한 발전이 주를 이루고 있다. 특히 CLIP과 같은 Contrastive model은 이미지에 대한 robust한 representation을 학습하는 것으로 나타났다. 동시에 Diffusion model은 이미지 및 비디오 생성에서 SOTA를 달성하며 유망한 framework로 등장했다.

본 논문에서는 text-conditional image generation을 위해 이 두 가지 방법을 결합한 2-stage model을 제안하였다. 텍스트 캡션으로 부터 CLIP 이미지 임베딩을 생성하는 Prior 모델(autoregressive/diffusion 사용, 후자 선택)과, 이미지 임베딩에 따라 이미지를 생성하는 Decoder(diffusion model)로 구성된다. 이미지 representation을 explicit하게 생성하여 이미지 다양성을 향상시켰다. Decoder는 non-deterministic 하기 때문에 주어진 이미지 임베딩에 해당하는 다양한 이미지 생성이 가능하다. 또한 이미지 representation에 존재하지 않는 필수적이지 않은 세부 사항을 변경하면서 semantic과 style을 모두 유지하는 이미지의 변형을 생성할 수도 있다. 또한 GAN과 같은 이전의 작업들과 달리 CLIP의 joint embedding space를 통해 zero-shot 방식으로 언어 기반 이미지 조작을 쉽게 수행할 수 있다.

CLIP 이미지 인코더를 반전하여 이미지를 생성하므로 전체 text-conditional image generation 모델을 unCLIP이라고 이름붙였다고 한다.

DALL-E2_1.png





Method


Training 데이터셋은 이미지 $x$, 해당 캡션 $y$의 pair $(x, y)$로 구성된다. 이미지 $x$가 주어졌을 때, $z_i$와 $z_t$는 각각 이미지 임베딩, 텍스트 임베딩이다. 논문에서는 캡션을 이용해 이미지를 만드는 Generative stack을 두 가지 요소로 구성하였다.

  • Prior $P(z_i∣y)$: 캡션 $y$가 주어지면 CLIP 이미지 임베딩 $z_i$ 생성
  • Decoder $P(x∣z_i, y)$: CLIP 이미지 임베딩 $z_i$가 주어지면(선택적으로, $y$) 이미지 $x$ 생성

DALL-E2_2.png

CLIP은 text-image pair에 대해 이미지 임베딩과 텍스트 임베딩 간의 유사도(similarity)가 높아지도록 학습한 모델이다. 즉 이미지-텍스트 간의 Align에 대한 모델이다.(CLIP 논문 리뷰 참조) 따라서 Text 임베딩에 대해 역으로 Image 임베딩을 매칭시킬 수 있다. 이러한 아이디어에서 CLIP의 이미지 Encoder를 invert하여 사용한 것이 본 논문의 주된 contribution이다. CLIP의 이미지 Encoder를 반전하여 사용했으므로 unCLIP이라고 이름붙였다.

DALL-E2_3.png




1. Decoder

본 논문에서는 Decoder로 Diffusion 모델을 사용하여, CLIP 이미지 임베딩에 따라 이미지를 생성한다. 선택적으로 텍스트 캡션을 입력으로 받을 수도 있다. 구체적으로는 GLIDE 구조를 수정해서 사용했다고 한다. 수정 내용은 아래와 같다.

  • GLIDE의 diffusion timestep 임베딩에 CLIP 임베딩을 projecting, adding
  • CLIP 임베딩을 4개의 extra context token으로 projecting, GLIDE text encoder의 output에 concat

GLIDE
GLIDE는 Text Guided Diffusion Model 이다. 이전에 발표되었던 Class-guided 모델과 달리 GLIDE에서는 Text(caption) Embedding을 condition으로 주어 이미지를 생성한다.
모델 구조는 아래 그림과 같다. 크게 세 가지 모듈로 구성이 되어 있다. Text(Caption)을 입력으로 text embedding을 생성하는 Transformer, noise 이미지에서 text embeding을 condition으로 이미지를 생성하는 Text-conditional diffusion model, row-resolution image를 upsampling하기 위한 Super-resolution diffusion model이다.

DALL-E2_4.png



기존의 GLIDE 구조에서, CLIP 임베딩을 projection 하고 더해주었다. 저자는 CLIP에서 포착하지 못한 natural language 특성을 학습할 수 있다는 가정하에 기존의 GLIDE 구조에서 text conditioning 경로를 유지하였으나, 실험적으로 거의 도움이 되지 않았다고 한다.

위의 GLIDE 구조 그림을 보면 SR을 위해 하나의 Diffusion 모델을 사용하였는데, 본 논문에서는 High-resolution 이미지 생성을 위해 두 가지 Diffusion upsampler 모델을 학습했다. 하나는 이미지를 64×64에서 256×256 resolution으로 upsample하고, 다른 하나는 1024×1024 resolution으로 upsample한다. Upsample 이미지의 robustness를 위해 각각의 입력 conditioning 이미지에 대해 gaussian blur, diverse BSR degradation로 이미지를 손상시켜 학습을 진행했다고 한다.




2. Prior

Caption $y$ 에서 이미지 임베딩 $z_i$를 생성하기 위한 Prior 모델을 위해 두 가지 모델에 대해 실험했다.

DALL-E2_5.png

  1. Autoregressive(AR) Prior
    • CLIP 이미지 임베딩 $z_i$를 discrete한 code sequence로 보고, caption $y$를 기준으로 autoregressive하게 이 값을 예측한다.
    • 이미지 임베딩 $z_i$의 차원 축소(discretize)를 위해 PCA를 사용함.

  2. Diffusion Prior
    • 이미지 임베딩 $z_i$ 는 continuous한 vector로 취급되고, caption $y$를 조건으로 Gaussian diffusion 모델을 사용하여 모델링된다.
    • Causal attention mask를 이용한 Decoder-only Transformer를 사용하였다. 여기서 입력으로 noised CLIP 이미지 임베딩, text $y$, CLIP 텍스트 임베딩 $z_t$, timestep $t$를 조건으로 unnoised CLIP 이미지 임베딩을 예측한다.
    • DDPM에서 noise $\epsilon$을 예측하는 $\epsilon$-prediction formulation을 사용한것과 달리, 본 논문에서는 unnoised $z_i$를 직접적으로 예측하도록 수정했다(학습했을 때 더 좋은 결과를 보여줌).

      DALL-E2_6.png



두 prior 모두 caption $y$에 더해 CLIP text embedding $z_i$를 condition으로 줄 수도 있다($z_t$는 caption $y$에 대해 deterministic 하기 때문). 두 모델 중 Diffusion model이 더 우수한 성능을 보였다고 한다.





Image Manipulations


논문의 접근 방식을 사용하여 이미지 $x$를 bipartite latent representation $(z_i, x_T)$로 인코딩 할 수 있다. $z_i$는 CLIP 이미지 Encoder를 통해 이미지를 인코딩하여 생성할 수 있고, $x_T$는 Decoder를 사용하여 $x$에 DDIM inversion을 적용하여 $z_i$를 condition으로 주어 생성하였다. 이 두가지를 조합하여 3가지 종류의 manipulation을 적용하였다.


1. Variations

DALL-E2_7.png

위의 그림과 같이 이미지 $x$가 주어지면 중요한 content는 유지하지만 방향이나 모양 등이 다른 이미지를 생성할 수 있다. Decoder에서 DDIM의 hyperarameter $η$를 사용한다. $η=0$ 이면, deocder는 deterministic하게 $x$에 대한 이미지를 생성하고, $η$가 커질수록 sampling 단계에서 stochasticity(확률성)이 도입되어 원본 이미지 $x$를 중심으로 variation이 발생한다. $η$가 증가함에 따라, CLIP 이미지 임베딩에서 캡쳐된 정보(보존된 정보)와 손실된 정보(변형된 정보)를 알려준다.



2. Interpolations

DALL-E2_8.png

2개의 이미지 $x_1$과 $x_2$가 존재할 떄, CLIP 임베딩 공간에서 두 이미지 임베딩 사이를 탐색하여 두 이미지를 혼합할 수 있다. 이를 위해 spherical interpolation를 사용하여 CLIP 임베딩 $z_{i_1}$과 $z_{i_2}$ 사이에서 intermediate CLIP representation $z_{i_\theta} = \text{slerp}(z_{i_1}, z_{i_2}, \theta)$를 생성했다. 이렇게 interpolation 된 $z_{i_\theta}$를 Decoder에 입력으로 주면 위와 같이 interpolation 된 이미지를 생성할 수 있다.



3. Text Diffs

DALL-E2_9.png

CLIP은 이미지와 텍스트를 동일한 latent space에 임베딩하여 language-guided image manipulation(text diff)을 적용할 수 있다는 이점이 있다. 새로운 caption $y$가 주어지면, CLIP 텍스트 임베딩 $z_t$를 구한다. 그리고 기존의 CLIP 텍스트 임베딩 $z_{t_0}$와 interpolation을 수행한다. text diff vector $z_d = \text{norm}(z_t - z_{t_0})$와 같이 구해지고, CLIP 이미지 임베딩 $z_i$와 diff vector 사이에 spherical interpolation을 수행하여 intermediate CLIP representations $z_\theta = \text{slerp}(z_i, z_d, \theta)$를 생성한다. 이 때 $\theta$ 값을 linear하게 증가시켜 위의 그림과 같이 변형시킬 수 있다.





Experiments(Text-to-Image Generation)


1. Importance of the Prior

Caption에서 CLIP 이미지 임베딩을 생성하기 전 prior 학습을 수행하지만, caption-image 생성에는 prior가 꼭 필요한 것은 아니다. Decoder에서 CLIP 이미지 임베딩과 caption 모두에 대해 condition을 지정할 수 있지만, classifier-free guidance를 위해 학습 중 CLIP 임베딩이 5% 삭제된다. 따라서 caption만 condition으로 주어 이미지를 생성할 수 있다.

아래의 그림에서 첫 번째 행과 두 번째 행은 이러한 방식으로 생성한 이미지이다. 세 번째 행은 기존의 방법대로 생성한 이미지이다. Prior를 사용한 기존의 방식의 성능이 caption similarity가 높은 것으로 보이지만 이를 정량적으로 비교하기 위해 FID를 조사하였고, Prior를 사용한 방식이 가장 높은 FID를 보여주었다.

DALL-E2_10.png



2. Human Evaluations

unCLIP 모델의 sample quality를 측정하기 위해 photorealism, caption similarity, sample diversity에 대해 unCLIP, GLIDE를 비교하는 human evaluation을 수행했다. 결과는 아래 표와 같다.

DALL-E2_11.png



3. Improved Diversity-Fidelity Trade-off with Guidance

GLIDE에 비해 unCLIP은 guidance technique를 활용하여 이미지 품질을 향상시키면서 다양한 이미지를 생성할 수 있음을 관찰했다. 이에 대한 그림은 아래와 같다.

DALL-E2_12.png



4. Comparison on MS-COCO

Text-conditional image generation task에서는 MS-COCO validation set에서 FID를 평가하는 것이 표준 관행이되었다고 한다. 이 벤치마크에 대한 결과는 아래 표와 같다.

DALL-E2_13.png


Human Evaluations에서 unCLIP이 더 높은 diversity를 보였지만 caption matching 성능이 약간 떨어지는 것을 관찰할 수 있다. 저자는 GLIDE에서 guidance scale을 낮춰 diversity를 높이고, caption similiarity를 낮추었을 때의 성능을 unCLIP과 비교하였다. 결과적으로 diversity 측면에서 unCLIP이 더 우수한 성능을 보인다는 것을 알 수 있다.

DALL-E2_14.png


추가로 unCLIP과 GLIDE에서 guidance scale을 조정해가면서 MS-COCO zero-shot FID를 계산하였다. 결과적으로 guidance가 GLIDE보다 unCLIP의 FID에 훨씬 덜 영향을 미친다는 사실을 발견했다. 즉, guidance가 바뀌어도 GLIDE는 diversity를 더 잘 유지하는 것을 볼 수 있다.

DALL-E2_15.png



5. Aesthetic Quality Comparison

저자는 unCLIP과 GLIDE를 비교하여 aesthetic(미적인) quality에 대한 평가를 수행했다. 각 모델이 얼마나 예술적인 일러스트를 생성하는지 비교한 것이라고 한다. 이를 위해 기존의 예술 작품에 대해 GPT-3을 사용하여 “artistic” caption을 생성하였다. 또한 인간의 미적 판단을 예측하기 위해 AVA 데이터셋을 사용하여 CLIP linear probe를 학습시켰다고 한다. 아래의 그림에서 이러한 aesthetic quality evaluation 결과를 보여주고 있다.

DALL-E2_16.png



This post is licensed under CC BY 4.0 by the author.