Post

[๋…ผ๋ฌธ๋ฆฌ๋ทฐ] Classifier-Free Diffusion Guidance

๐Ÿ“ NeurIPS Workshop 2021

[๋…ผ๋ฌธ๋ฆฌ๋ทฐ] Classifier-Free Diffusion Guidance

[Paper]

fig0

Introduction

๊ธฐ์กด ์—ฐ๊ตฌ๋“ค์˜ ํ•œ๊ณ„์ 

Classifier guidance๋Š” ์•„๋ž˜์˜ ๋ฌธ์ œ์ ์ด ์žˆ๋‹ค.

  • ์ถ”๊ฐ€์ ์ธ classifier ํ•™์Šต์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— diffusion ๋ชจ๋ธ์˜ ํ•™์Šต ํŒŒ์ดํ”„๋ผ์ธ์„ ๋ณต์žกํ•˜๊ฒŒ ๋งŒ๋“ ๋‹ค.
  • ์‚ฌ์šฉํ•˜๋Š” classifier๋Š” ๋…ธ์ด์ฆˆ๊ฐ€ ์„ž์ธ ๋ฐ์ดํ„ฐ ์œ„์—์„œ ํ•™์Šต๋˜์–ด์•ผ ํ•˜๋ฏ€๋กœ, ์ผ๋ฐ˜์ ์ธ ์‚ฌ์ „ํ•™์Šต๋œ classifier๋ฅผ ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.
  • FID, IS ๋“ฑ์˜ metric์€ ์‚ฌ์ „ํ•™์Šต๋œ classifier๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ‰๊ฐ€ํ•˜๋Š”๋ฐ, ์ด ๋ฐฉ์‹์€ score๋ฅผ ์ง์ ‘์ ์œผ๋กœ ๋”ํ•˜๋ฉด์„œ ํด๋ž˜์Šค ๋ฐฉํ–ฅ์œผ๋กœ ์ƒ˜ํ”Œ๋ง์„ ์œ ๋„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— classifier๊ฐ€ ์ž˜ ๋งž์ถ”๊ฒŒ๋” ์ด๋ฏธ์ง€์— ์ž‘์€ ์กฐ์ž‘์„ ๋ฐ˜๋ณตํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

    ๋”ฐ๋ผ์„œ ์ง„์งœ ์ข‹์€ ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“  ๊ฒƒ์ธ์ง€, classifier๋ฅผ ์ž˜ ์†์ธ ๊ฒฐ๊ณผ์ธ์ง€๊ฐ€ ๋ถˆ๋ถ„๋ช…ํ•˜๋‹ค.

์ œ์•ˆํ•˜๋Š” ๋ฐฉ๋ฒ•

๋ถ„๋ฅ˜๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” guidance ๊ธฐ๋ฒ•์„ ์ œ์•ˆํ•œ๋‹ค.

  • Conditional ๋””ํ“จ์ „ ๋ชจ๋ธ์˜ socre ์ถ”์ •๊ฐ’๊ณผ unconditional ๋””ํ“จ์ „ ๋ชจ๋ธ์˜ score ์ถ”์ •๊ฐ’์„ ํ˜ผํ•ฉํ•œ๋‹ค.

Methods

GAN์ด๋‚˜ flow-based ๋ชจ๋ธ๊ณผ ๊ฐ™์€ ์ƒ์„ฑ ๋ชจ๋ธ์€ ์ƒ˜ํ”Œ๋ง ๋•Œ ์ž…๋ ฅ ๋…ธ์ด์ฆˆ์˜ ๋ถ„์‚ฐ ๋˜๋Š” ๋ฒ”์œ„๋ฅผ ์ค„์ž„์œผ๋กœ์จ truncated sampling ๋˜๋Š” low temperature sampling์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋ฐฉ์‹์€ ์ƒ˜ํ”Œ์˜ ๋‹ค์–‘์„ฑ์„ ์ค„์ด์ง€๋งŒ, ๊ฐ ์ƒ˜ํ”Œ์˜ ํ’ˆ์งˆ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์œ„์˜ ๋ฐฉ์‹์„ ๋””ํ“จ์ „ ๋ชจ๋ธ์— ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด, score๋ฅผ ์Šค์ผ€์ผ๋งํ•˜๊ฑฐ๋‚˜ reverse process์—์„œ ๊ฐ€์šฐ์‹œ์•ˆ ๋…ธ์ด์ฆˆ์˜ ๋ถ„์‚ฐ์„ ์ค„์ด๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ์˜คํžˆ๋ ค ์ €ํ’ˆ์งˆ์˜ ์ƒ˜ํ”Œ์„ ์ƒ์„ฑํ•˜๊ฒŒ ๋งŒ๋“ ๋‹ค.

1. Classifier Guidance

๋””ํ“จ์ „ ๋ชจ๋ธ์—์„œ truncation๊ณผ ์œ ์‚ฌํ•œ ํšจ๊ณผ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด [Diffusion models beat GANs on image synthesis] ๋…ผ๋ฌธ์—์„œ๋Š” classifier guidance ๊ธฐ๋ฒ•์„ ๋„์ž…ํ•˜์˜€๋‹ค.

์ด ๊ธฐ๋ฒ•์—์„œ๋Š” ๋””ํ“จ์ „ ๋ชจ๋ธ์˜ score ${\boldsymbol\epsilon}_\theta(\mathbf{z}_\lambda,\mathbf{c})\approx\sigma_\lambda\nabla_{\mathbf{z}_\lambda}\log p_\theta(\mathbf{z}_\lambda\mid\mathbf{c})$์— auxiliary classifier ๋ชจ๋ธ $p_\theta(\mathbf{c}\mid\mathbf{z}_\lambda)$์˜ log-likelihood์˜ gradient๋ฅผ ํฌํ•จ์‹œํ‚จ๋‹ค.

\[\tilde{\boldsymbol\epsilon}_\theta(\mathbf{z}_\lambda,\mathbf{c}) ={\boldsymbol\epsilon}_\theta(\mathbf{z}_\lambda,\mathbf{c})-w\sigma_\lambda\nabla_{\mathbf{z}_\lambda}\log p_\theta(\mathbf{c}\mid\mathbf{z}_\lambda) \approx\sigma_\lambda\nabla_{\mathbf{z}_\lambda}[\log p_\theta(\mathbf{z}_\lambda\mid\mathbf{c})+w\log p_\theta(\mathbf{c}\mid\mathbf{z}_\lambda)]\]

์œ„์˜ ์ˆ˜์‹์—์„œ $w$๋Š” classifier guidance์˜ ๊ฐ•๋„๋ฅผ ์กฐ์ ˆํ•˜๋Š” ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ์ด๋‹ค.

์ƒ˜ํ”Œ๋ง ๋•Œ๋Š” ๊ธฐ์กด score ${\boldsymbol\epsilon}_\theta(\mathbf{z}_\lambda,\mathbf{c})$ ๋Œ€์‹  ๋ณ€๊ฒฝ๋œ score $\tilde{\boldsymbol\epsilon}_\theta(\mathbf{z}_\lambda,\mathbf{c})$๊ฐ€ ์‚ฌ์šฉ๋˜๋ฉฐ, ์ด๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ๋ถ„ํฌ๋กœ๋ถ€ํ„ฐ ์ƒ˜ํ”Œ๋ง์„ ํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•˜๋‹ค.

\[\tilde{p}_\theta(\mathbf{z}_\lambda \mid \mathbf{c}) \propto p_\theta(\mathbf{z}_\lambda \mid \mathbf{c}) \, p_\theta(\mathbf{c} \mid \mathbf{z}_\lambda)^w\]

์ด๋•Œ, ๋ถ„๋ฅ˜๊ธฐ $p_\theta(\mathbf{c} \mid \mathbf{z}_\lambda)$๊ฐ€ ํ•ด๋‹นํ•˜๋Š” ํด๋ž˜์Šค $c$์— ๋Œ€ํ•ด ๋†’์€ likelihood๋ฅผ ๋ถ€์—ฌํ•˜๋„๋ก ๊ฐ€์ค‘์น˜๋ฅผ ์กฐ์ •ํ•˜๋ฉฐ, $w>0$์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ์ƒ์„ฑ๋œ ์ƒ˜ํ”Œ์˜ ๋‹ค์–‘์„ฑ์ด ๊ฐ์†Œํ•˜์ง€๋งŒ IS๊ฐ€ ํ–ฅ์ƒ๋œ๋‹ค.

์•„๋ž˜์˜ ๊ด€๊ณ„ ๋•Œ๋ฌธ์— ์ด๋ก ์ ์œผ๋กœ, unconditional ๋ชจ๋ธ์— ๊ฐ€์ค‘์น˜ $w+1$์˜ classifier guidance๋ฅผ ์ ์šฉํ•˜๋ฉด, conditional ๋ชจ๋ธ์— $w$์˜ guidance๋ฅผ ์ ์šฉํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

\[p_\theta(\mathbf{z}_\lambda \mid \mathbf{c}) \, p_\theta(\mathbf{c} \mid \mathbf{z}_\lambda)^w =p_\theta(\mathbf{z}_\lambda)p_\theta(\mathbf{c} \mid \mathbf{z}_\lambda)^{w+1}\]

Score ๊ด€์ ์—์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

\[\epsilon_\theta(\mathbf{z}_\lambda) - (w + 1) \, \sigma_\lambda \, \nabla_{\mathbf{z}_\lambda} \log p_\theta(\mathbf{c} \mid \mathbf{z}_\lambda) \approx -\sigma_\lambda \, \nabla_{\mathbf{z}_\lambda} \left[ \log p(\mathbf{z}_\lambda) + (w + 1) \log p_\theta(\mathbf{c} \mid \mathbf{z}_\lambda) \right] \\ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ = -\sigma_\lambda \, \nabla_{\mathbf{z}_\lambda} \left[ \log p(\mathbf{z}_\lambda \mid \mathbf{c}) + w \log p_\theta(\mathbf{c} \mid \mathbf{z}_\lambda) \right]\]

ํ•˜์ง€๋งŒ Diffusion models beat GANs on image synthesis์˜ ์ €์ž๋“ค์€ ์ด๋ฏธ unconditional ๋ชจ๋ธ์— guidance๋ฅผ ์ ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค conditional๋กœ ํ•™์Šต๋œ ๋ชจ๋ธ์— guidance๋ฅผ ์ ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์— ์„ฑ๋Šฅ์ด ๋” ์šฐ์ˆ˜ํ•จ์„ ๋ฐœ๊ฒฌํ•˜์˜€๊ณ , ๋”ฐ๋ผ์„œ ๋ณธ ์—ฐ๊ตฌ์—์„œ๋Š” conditional ๋ชจ๋ธ์— guidance๋ฅผ ์ ์šฉํ•˜๋Š” ์„ค์ •์„ ์ค‘์‹ฌ์œผ๋กœ ๋…ผ์˜๋ฅผ ํ•œ๋‹ค.

2. Classifier-Free Guidance

Classifier guidance๋Š” ์ด๋ฏธ์ง€ classifier์˜ graident์— ์˜์กดํ•œ๋‹ค๋Š” ํ•œ๊ณ„์ ์ด ์žˆ๋‹ค.

๋ณ„๋„์˜ classifier๋ฅผ ํ•™์Šตํ•˜๋Š” ๋Œ€์‹ , ์•„๋ž˜์˜ ๋‘ ๋ชจ๋ธ์„ ํ•จ๊ป˜ ํ•™์Šตํ•œ๋‹ค.

  • Unconditional denoising ๋””ํ“จ์ „ ๋ชจ๋ธ $p_\theta(\mathbf{z})$: ์ด ๋ชจ๋ธ์˜ score ์ถ”์ •๊ฐ’์€ $\boldsymbol\epsilon_\theta(\mathbf{z}_\lambda)$
  • Conditional ๋””ํ“จ์ „ ๋ชจ๋ธ $p_\theta(\mathbf{z}\mid\mathbf{c})$: ์ด ๋ชจ๋ธ์˜ score ์ถ”์ •๊ฐ’์€ $\boldsymbol\epsilon_\theta(\mathbf{z}_\lambda,\mathbf{c})$

ํŒŒ๋ผ๋ฏธํ„ฐ ์ฆ๊ฐ€ ์—†์ด ์œ„ ๋‘ ๋ชจ๋ธ์„ ๋™์‹œ์— ํ•™์Šตํ•˜๊ธฐ ์œ„ํ•ด ์•„๋ž˜์˜ ์ „๋žต์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค.

  • Unconditional ๋ชจ๋ธ์˜ ๊ฒฝ์šฐ conditional ๋ชจ๋ธ์˜ class identifier $\mathbf{c}$๋กœ null token $\varnothing$์„ ์ž…๋ ฅ์œผ๋กœ ์ค€๋‹ค. ์ฆ‰, $\boldsymbol\epsilon_\theta(\mathbf{z}_\lambda)=\boldsymbol\epsilon_\theta(\mathbf{z}_\lambda,\mathbf{c}=\varnothing)$์ด๋‹ค.
  • ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ $p_{\text{uncond}}$๋ฅผ ์„ค์ •ํ•ด $p_{\text{uncond}}$์˜ ํ™•๋ฅ ๋กœ $\mathbf{c}$๋ฅผ $\varnothing$์œผ๋กœ ๋งŒ๋“ค์–ด ๋ชจ๋ธ์— ์ž…๋ ฅํ•œ๋‹ค.

์ดํ›„ ์•„๋ž˜์™€ ๊ฐ™์ด conditional๊ณผ unconditional score ์ถ”์ •๊ฐ’์„ ์„ ํ˜• ๊ฒฐํ•ฉํ•˜์—ฌ ์ƒ˜ํ”Œ๋งํ•œ๋‹ค.

\[\tilde{\boldsymbol\epsilon}_\theta(\mathbf{z}_\lambda,\mathbf{c})= (1+w){\boldsymbol\epsilon}_\theta(\mathbf{z}_\lambda,\mathbf{c})-w{\boldsymbol\epsilon}_\theta(\mathbf{z}_\lambda)\]

Classifier-Free Guidance์˜ ํ•™์Šต๊ณผ ์ƒ˜ํ”Œ๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

fig1

fig2

Experiments

Varying the Classifier-Free Guidance Strength

fig3

์œ„์˜ ๊ทธ๋ฆผ์—์„œ ์™ผ์ชฝ์€ $w=0$ (non-guided)์ผ ๋•Œ ์ƒ์„ฑ๋œ ์ƒ˜ํ”Œ, ์˜ค๋ฅธ์ชฝ์€ $w=3$์ผ ๋•Œ ์ƒ์„ฑ๋œ ์ƒ˜ํ”Œ ๊ฒฐ๊ณผ์ด๋‹ค.

Classifier-free guidance strenght๊ฐ€ ํด์ˆ˜๋ก fidelity๋Š” ์ฆ๊ฐ€ํ•˜์ง€๋งŒ ๋‹ค์–‘์„ฑ์ด ๊ฐ์†Œํ•œ๋‹ค.

fig4

fig5

์œ„์˜ ํ‘œ์™€ ๊ทธ๋ฆผ์€ classifier-free guidance strenght์— ๋”ฐ๋ฅธ FID์™€ IS๋ฅผ ๋น„๊ตํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

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