[21′ NIPS workshop] Classifier Free Guidance : Classifier-free diffusion guidance

This entry is part 3 of 13 in the series Image Generative Model

1. Introduction

이번 글에서는 2021년 NIPS Workshop에 발표된 Classifier-free diffusion guidance 논문을 리뷰합니다. 이 논문의 핵심은 Classifier 없이 Guidance를 할 수 있는 방법입니다. 따라서 이번 글에서는 이 논문을 Classifier Free Guidance라고 지칭하겠습니다.

이번 글에서는 Diffusion Model 배경 지식에 대한 설명은 생략했습니다. Diffusion Model의 기초와 응용 글을 참고해주세요.

Classifier Guidance 에서는 Noisy Image로 학습한 Classifier로부터의 Gradient를 사용하여 Class Guidance 방법을 제안했는데요. 효과적으로 Class Guidance를 할 수 있었지만 Classifier를 추가로 학습해야 한다는 단점이 있었습니다. 이에 Classifier Free Guidance에서는 별도의 Classifier 없이 한번에 Class Guidance를 할 수 있는 방법을 제안합니다.

이번 글에서는 먼저 Classifier Free Guidance의 방법을 살펴본 뒤 이렇게 생성한 이미지를 살펴보겠습니다.

2. Classifier Free Guidance

이번 챕터에서는 Classifier Free Guidance 방법을 살펴보겠습니다.

그림1. Classifier Free Guidance
그림1. Classifier Free Guidance

위 그림은 Classifier Guidance 방식과 Classifier Free Guidance 방식을 비교하고 있습니다.

먼저 Classifier Guidance 방식을 보겠습니다. Noisy Image를 학습한 Classifier로부터 Gradient를 계산하는 모습입니다. 이렇게 나온 Gradient는 Diffusion Model에게 Class Guidance를 하는 역할을 수행합니다. Diffusion Model이 생성한 이미지가 원하는 Class 이미지가 아닐 경우 큰 Gradient가 반영되어 이미지를 수정하도록 유도하는 방법이죠.

반면 그림 오른쪽의 Classifier Free Guidance에서는 이러한 Classifier 자체를 사용하지 않습니다. 대신 Class에 해당하는 Condition 정보는 Diffusion Process 정보인 t와 함께 Diffusion Model에 주어지는 모습을 볼 수 있습니다. 원래 Diffusion Model에서는 t를 Positional Encoding 방식을 통해 Condition으로 입력해주는데요. 유사한 방식으로 Class 정보 또한 Condition으로 Diffusion Model에 입력해주는 것이죠. 이렇게 Diffusion Model은 Condition을 받았을때와 받지 않았을때 두 가지의 Noise를 예측하게 되고요. 최종적으로는 이 둘의 Interpolation을 통해 최종 예측 Noise를 계산합니다. 이렇게 예측한 Noise가 실제 Noise와 같도록 학습을 진행하면 되는 것이죠. 수식으로는 다음과 같이 표현됩니다.

그림2. Classifier Free Guidance 수식
그림2. Classifier Free Guidance 수식

이러한 철학은 생각해보면 아주 간단하면서도 효과적임을 알 수 있습니다. Diffusion Model에게 이미지를 생성하도록 학습하면서 “이건 강아지 이미지야” 또는 “이건 고양이 이미지야” 라고 말해주면서 학습해주는 것이니까요. 학습이 완료된 Diffusion Model은 입력으로 Noise와 t, 그리고 Class 정보가 주어지면 “아, 강아지 이미지를 만들라는 거구나” 하면서 강아지 이미지만 만들 수 있는 것이죠.

3. Experiments

이렇게 학습한 Classifier Free Guidance 모델이 생성한 이미지는 어떤 모습일까요?

그림3. Classifier Free Guidance 방식으로 생성한 이미지
그림3. Classifier Free Guidance 방식으로 생성한 이미지

위 그림은 Guidance Strength(w)에 따른 생성 이미지를 보여주고 있습니다. w가 0일때는 다양한 형태의 이미지가 생성되는 모습을 볼 수 있고요. w가 커질수록 특정 형태의 이미지만 생성하는 모습을 볼 수 있습니다.

4. Conclusion

지금까지 Classifier Free Guidance 논문의 핵심 내용을 살펴봤습니다. Classifier Free Guidance는 별도의 Classifier 학습 없이도 Class Guidance를 할 수 있는 방법을 제안했다는 의의를 갖습니다. 실제로 이후 Diffusion Model들은 대부분 Classifier Free Guidance 방식을 사용하고 있습니다.

Series Navigation<< [22′ NIPS] Classifier Guidance : Diffusion Models Beat GANs on Image Synthesis[23′ PAML] SR3 : Image Super-Resolution via Iterative Refinement >>
4.7 3 votes
Article Rating
Subscribe
Notify of
guest
3 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
차지영
차지영
5 months ago

안녕하세요 쉽게 설명해주셔서 정말정말 많은 도움이 되었습니다!
한가지 질문이 있어 댓글 남깁니다.
CFG에서도 CG와 마찬가지로 학습시 noisy한 이미지를 함께 넣어주는건가요?

차지영
차지영
5 months ago
Reply to  차지영

그게 아니라면, 최종 예측 noise가 실제 noise와 같게 한다. 라고 하신 말씀에서 실제 noise는 어떤걸 말씀하시는걸까요?

3
0
Would love your thoughts, please comment.x
()
x
Scroll to Top