[Paper review] GLIDE: Toward Photorealistic Image Generation and Editing with Text-Guided Diffusion Models
오늘 리뷰할 논문은 GLIDE라는 논문이다. 개인적으로, Diffusion 모델에 대해 베이스가 없는 상태에서 읽어서, 읽기 쉽지 않았다. GLIDE는 제목에도 드러나있듯이, Image Generation모델이다. 그리고, 우리가 흔히 알고 있는 GAN 모델이 아니라, Diffusion 모델이다. 추가적인 특징으로는 Text-Guided, 즉 사용자가 텍스트로 input을 주면, 그에 해당하는 이미지를 생성할 수 있는 모델이다.
GLIDE의 원리를 본격적으로 알아보기 전, Diffusion 모델에 대해 알 필요가 있다.
위 그림은 Diffusion 모델을 한눈에 파악할 수 있는 그림이다. Diffusion 모델의 원리는 크게 두가지 단계로 설명될 수 있는데, 첫번째 과정이 diffusion process이다. 이 과정은 하나의 이미지(x0)에 noise(보통은 가우시안 노이즈)를 조금씩 입히는 과정으로 생각할 수 있다. diffusion process를 거치면 위 그림에서 알 수 있듯이 최종적으로 하나의 이미지가 noise 형태(xt)로 변하게 된다. 다음 과정은 reverse process로, 한마디로 diffusion 과정의 역과정이다. 즉, diffusion 과정의 최종 output인 noise(xt)로부터 input 이미지(x0)를 만들 수 있는 파라미터들을 학습하는 과정이라 생각하면 된다.
이제 다시 본론으로 돌아가서, GLIDE는 그럼 어떤 원리를 통해 상세히 알아보자. GLIDE의 핵심은 결국 Diffusion 모델이지만, Text를 condition으로 받아서, 이미지를 생성할 수 있는 모델임에 있다. 이를 이해하기 위해서는 먼저 Classifier-guidance라는 원리를 알 필요가 있다. 이 원리는 쉽게 말해서 label을 reverse process시 guide로 줌으로써, label에 맞는 이미지를 모델이 잘 생성할 수 있도록 하는 것이다.
위 수식이 Classifier-guidance을 나타낸 것인데, 여기서 y가 label을 뜻한다. 수식의 두번째 term을 보면, log-probability의 gradient가 주어져있는데, 이는 classifier에 의해 예측된 target class의 log-probability를 뜻한다. 여기서 알아야 할 점은 Classifier-guidance는 별도의 classifier를 필요로 한다는 점이다.
GLIDE는 Classifier-guidance을 좀 더 발전시킨 방법 두가지를 각각 활용한다. 첫번째는 Classifier-free guidance이고, 두번째는 CLIP-guidance이다. 먼저 Classifier-free guidance는 Classifier-guidance가 별도의 classifier를 요구한다는 단점을 해결한 원리로써, null label(label이 없음)을 사용했다. 구체적인 수식은 아래와 같다.
참고로, c는 caption 즉, text이다. GLIDE에서 최종적으로 하고 싶은 작업이 label (y)이 아니라 text를 받아서 이미지를 생성하는 것이기 때문이다.
다음으로 CLIP-guidance이다. CLIP는 잘 알고 있듯이, Text와 이미지 pair가 들어오면, 각각 encoder를 거쳐서 같은 임베딩 스페이스 상에서 distance를 측정하는 tool이라 생각하면 된다. CLIP Guidance는 Clssifier-guidance에서 classfier 대신 CLIP을 사용한 것이라 이해하면 된다. (아래 수식참고) 마찬가지로, label이 아니라 caption, text가 들어간다는 것을 확인할 수 있다.
지금까지 설명한 내용을 이해했다면, GLIDE의 기본적인 핵심원리들은 다 이해한 것이다. (이외 Training 방법등은 논문에서 자세히 나와있으므로, 참고하길 바람.)
이제 결과를 한번 살펴보자. 먼저 논문에서 시도한 두가지 방법, Classifier-free guidance와 CLIP-guidance를 비교한 결과는 다음과 같다.
Classifier-free guidance가 더 좋은 성능을 낸다는 것을 확인할 수 있다.
위 그림은 Classifier-free guidance를 이용한 GLIDE가 만들어낸 이미지들이다. 텍스트에 대응하는 적절한 이미지들이 생성된다는 것을 확인할 수 있다.
이외에도 논문에서는 GLIDE가 inpainting 작업 (이미지의 공간을 채워넣는 작업)에서도 잘 작동한다는 것을 보여준다. 논문의 마지막 부분에서는 GLIDE의 한계를 제시하고 있는데, 요약하면 unusual한 object나 시나리오를 포함하는 텍스트에서는 정확한 이미지를 잘 생성하지 못한다는 점이다. 가령 쥐가 사자를 사냥하고 있다라는 텍스트가 주어지면, 사자가 쥐를 사냥하는 장면의 이미지가 생성된다는 것을 논문에서 확인할 수 있었다.
이번 논문을 읽으면서, GLIDE라는 모델을 새롭게 알게 된 점도 좋았지만, Diffusion 모델에 대해서 알게되어서 새로웠다. 개인적으로, GAN 모델과 비교했을때, 좀 더 수학적인 방식(ex: 마르코프 체인)으로 이미지 생성 작업에 접근하는 모델이라는 것을 느꼈다. 또한 이 논문이 2021년에 나온 최신 논문이라는 점을 감안하면, 이미지 생성분야에서는 GAN말고 Diffusion을 통한 다양한 접근 방식 역시 이루어 진다는 것을 느꼈다.
아래는 오늘 리뷰한 논문 주소이다. 참고 바란다.
https://arxiv.org/abs/2112.10741
댓글 영역