Post

DDPM (Denoising Diffusion Probabilistic Models)

๐Ÿ“ NeurIPS 2020

DDPM (Denoising Diffusion Probabilistic Models)

๐Ÿ“„ ๊ด€๋ จ ๋…ผ๋ฌธ: [NeurIPS 2020] Denoising Diffusion Probabilistic Models

DDPM Process

DDPM์€ ํฌ๊ฒŒ 2๊ฐ€์ง€ ๊ณผ์ •์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.

  • Forward Process: ๊นจ๋—ํ•œ ์ด๋ฏธ์ง€์—์„œ ์™„์ „ํ•œ ๊ฐ€์šฐ์‹œ์•ˆ ๋…ธ์ด์ฆˆ๋กœ ๋งŒ๋“œ๋Š” ๊ณผ์ •
  • Reverse Process: ์™„์ „ํ•œ ๊ฐ€์šฐ์‹œ์•ˆ ๋…ธ์ด์ฆˆ์—์„œ ๊นจ๋—ํ•œ ์ด๋ฏธ์ง€๋กœ ๋ณต์›ํ•˜๋Š” ๊ณผ์ • (Denoising Process ๋˜๋Š” Sampling Process๋ผ๊ณ ๋„ ํ•จ)

fig1

Forward Process

Forward Process๋Š” ์›๋ณธ ๋ฐ์ดํ„ฐ $\vx_0$์— ๊ฐ€์šฐ์‹œ์•ˆ ๋…ธ์ด์ฆˆ๋ฅผ ์ ์ง„์ ์œผ๋กœ ์ถ”๊ฐ€ํ•˜์—ฌ, ์ตœ์ข…์ ์œผ๋กœ ์™„์ „ํ•œ ๋…ธ์ด์ฆˆ ๋ถ„ํฌ์ธ $\mathcal{N}(0,\text{I})$๋กœ ๋งŒ๋“œ๋Š” ๊ณผ์ •์ด๋‹ค.

์ €์ž๋“ค์€ 1step์˜ ๊ฐ€์šฐ์‹œ์•ˆ ๋…ธ์ด์ฆˆ ์ฃผ์ž… ๊ณผ์ •์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜ํ•˜์˜€๋‹ค.

\[q(\mathbf x_t\mid\mathbf x_{t-1}):= \mathcal{N}(\mathbf x_t;\sqrt{1-\beta_t}\mathbf x_{t-1},\beta_t\mathbf I) \tag{1}\]

์œ„ ์ˆ˜์‹์€ ์ด์ „ step์˜ ์ด๋ฏธ์ง€์˜ ๊ฐ•๋„๋ฅผ $\sqrt{1-\beta_t}$๋งŒํผ ๊ฐ์‡ ์‹œํ‚ค๊ณ , ๋ถ„์‚ฐ์ด $\beta_t\vI$์ธ ๊ฐ€์šฐ์‹œ์•ˆ ๋…ธ์ด์ฆˆ๋ฅผ ๋”ํ•œ๋‹ค๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ–๋Š”๋‹ค.
์ด๋ฅผ Reparameterization Trick์„ ์ด์šฉํ•ด ๋ง์…ˆ์˜ ํ˜•ํƒœ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

\[\mathbf x_{t}=\sqrt{1-\beta_t}\mathbf x_{t-1}+\sqrt{\beta_t}\boldsymbol\epsilon ,\quad\text{where }\boldsymbol\epsilon \sim \mathcal N(\mathbf0,\textbf{I}) \tag{2}\]

๋˜ํ•œ ์ €์ž๋“ค์€ ์ด๋Ÿฌํ•œ ๋…ธ์ด์ฆˆ ์ฃผ์ž… ๊ณผ์ •์— Markovian ๊ฐ€์ •์„ ๋„์ž…ํ–ˆ๋‹ค.
์ฆ‰, ํ˜„์žฌ ์ƒํƒœ $\vx_t$๋Š” ์˜ค์ง ์ง์ „ ์ƒํƒœ์ธ $\vx_{t-1}$์—๋งŒ ์˜์กดํ•œ๋‹ค.

์ด๋Ÿฌํ•œ ์„ฑ์งˆ ๋•๋ถ„์—, $t=0$๋ถ€ํ„ฐ $t=T$๊นŒ์ง€ ์—ฐ์†์ ์œผ๋กœ ๋…ธ์ด์ฆˆ๋ฅผ ์ฃผ์ž…ํ•˜๋Š” ์ „์ฒด ๊ณผ์ • (Joint ๋ถ„ํฌ)์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฐ step๋ณ„ ์ „์ด ํ™•๋ฅ  (Transition probability)์˜ ์—ฐ์†์ ์ธ ๊ณฑ์…ˆ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

\[q(\mathbf x_{1:T}\mid\mathbf x_0):=q(\vx_1\mid\vx_0) \tag{3}q(\vx_2\mid\vx_1)\cdots q(\vx_T\mid\vx_{T-1})\]

๊ฒฐ๋ก ์ ์œผ๋กœ Forward Process๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜๋œ๋‹ค.

\[q(\mathbf x_{1:T}\mid\mathbf x_0):=\prod_{t=1}^Tq(\mathbf x_t\mid\mathbf x_{t-1}) \tag{4}\]

Variance Scheduler

์‹ (2)์— ๋“ฑ์žฅํ•˜๋Š” $\beta_t$๋ฅผ Variance Scheduler๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ, ์ด๋Š” ๋งค step $t$๋งˆ๋‹ค ์ด์ „ step์˜ ์ •๋ณด๋ฅผ ์–ผ๋งˆ๋‚˜ ์œ ์ง€ํ•˜๊ณ  ์ƒˆ๋กœ์šด ๋…ธ์ด์ฆˆ๋ฅผ ์–ผ๋งˆ๋‚˜ ์„ž์„์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ์ด๋‹ค.

Linear, Cosine ๋“ฑ ์—ฌ๋Ÿฌ ์Šค์ผ€์ค„๋Ÿฌ ํ•จ์ˆ˜๊ฐ€ ์žˆ์ง€๋งŒ, ๋Œ€๋ถ€๋ถ„์˜ Variance Scheduler๋Š” ๊ณตํ†ต์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ทœ์น™์„ ๋”ฐ๋ฅธ๋‹ค.

  • ๋…ธ์ด์ฆˆ ์ฃผ์ž… ์ดˆ๋ฐ˜ ๋‹จ๊ณ„ ($t$๊ฐ€ ์ž‘์„ ๋•Œ): ์ด๋ฏธ์ง€์˜ ๊ตฌ์กฐ๊ฐ€ ์ˆœ์‹๊ฐ„์— ํŒŒ๊ดด๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด $\beta_t$๋ฅผ ๋งค์šฐ ์ž‘์€ ๊ฐ’์œผ๋กœ ์„ค์ •ํ•œ๋‹ค.
  • ๋…ธ์ด์ฆˆ ์ฃผ์ž… ํ›„๋ฐ˜ ๋‹จ๊ณ„ ($t$๊ฐ€ ํด ๋•Œ): ๋ฐ์ดํ„ฐ๋ฅผ ์™„์ „ํ•œ ๊ฐ€์šฐ์‹œ์•ˆ ๋…ธ์ด์ฆˆ๋กœ ๋น ๋ฅด๊ฒŒ ์ˆ˜๋ ด์‹œํ‚ค๊ธฐ ์œ„ํ•ด $\beta_t$๋ฅผ ๋” ํฐ ๊ฐ’์œผ๋กœ ์„ค์ •ํ•œ๋‹ค.

๊ฒฐ๊ณผ์ ์œผ๋กœ ์ฃผ์ž…๋˜๋Š” ๋…ธ์ด์ฆˆ์˜ ๊ฐ•๋„๊ฐ€ ๊ณ ์ •๋˜์–ด ์žˆ์ง€ ์•Š๊ณ  ์ง„ํ–‰ ๋‹จ๊ณ„์— ๋”ฐ๋ผ ์œ ๋™์ ์œผ๋กœ ๋ณ€ํ•ด์•ผ ํ•˜๋ฏ€๋กœ, $\beta_t$๋Š” ํƒ€์ž„์Šคํ… $t$์— ์ข…์†๋œ ํ•จ์ˆ˜๋กœ ์ •์˜๋œ๋‹ค.

Closed-form Sampling

์•ž์„  ์ •์˜๋Œ€๋กœ๋ผ๋ฉด $\vx_t$๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด $1$๋ถ€ํ„ฐ $t$๊นŒ์ง€ ๋งค step๋งˆ๋‹ค ์—ฐ์‚ฐ์„ ๋ฐ˜๋ณตํ•ด์•ผ ํ•  ๊ฒƒ ๊ฐ™์ง€๋งŒ, ์‹ค์ œ๋กœ๋Š” ์›๋ณธ ๋ฐ์ดํ„ฐ $\vx_0$์—์„œ ์ž„์˜์˜ time step $t$์˜ ์ƒํƒœ๋ฅผ ํ•œ ๋ฒˆ์— ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋Š” Closed-form ์ˆ˜์‹์ด ์กด์žฌํ•œ๋‹ค.

์ด๋ฅผ ์œ„ํ•ด $\alpha_t:=1-\beta_t$์™€ ๋ˆ„์ ๋œ ๊ณฑ์„ ์˜๋ฏธํ•˜๋Š” $\bar\alpha_t:=\prod_{s=1}^t\alpha_s$๋ฅผ ์ƒˆ๋กญ๊ฒŒ ์ •์˜ํ•˜๋ฉด, Marginal ๋ถ„ํฌ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ „๊ฐœํ•  ์ˆ˜ ์žˆ๋‹ค.

\[q(\mathbf x_t\mid\mathbf x_0)=\mathcal{N}(\mathbf x_t;\sqrt{\bar\alpha_t}\mathbf x_0,(1-\bar\alpha_t)\mathbf I) \tag{5}\]

๋”ฐ๋ผ์„œ ์‹ค์ œ ์ฝ”๋“œ์—์„œ๋Š” $t$๋ฒˆ์˜ Markov Chain์„ ์ผ์ผ์ด ๊ฑฐ์น˜์ง€ ์•Š๊ณ , ์ž„์˜์˜ step $t$์— ๋Œ€ํ•œ ๋…ธ์ด์ฆˆ ๋‚€ ์ด๋ฏธ์ง€๋ฅผ ๋ฐ”๋กœ ์ƒ˜ํ”Œ๋งํ•œ๋‹ค.

ํ•˜์ง€๋งŒ ํ™•๋ฅ  ๋ณ€์ˆ˜์—์„œ ๊ฐ’์„ ์ง์ ‘ ์ƒ˜ํ”Œ๋งํ•˜๋Š” ๊ณผ์ •์€ ๋ฏธ๋ถ„์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ, ์—ญ์ „ํŒŒ ๋˜ํ•œ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

์ด๋ฅผ ์œ„ํ•ด Reparameterization Trick์„ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜์‹์„ ๋ฌด์ž‘์œ„์„ฑ๊ณผ ๊ฒฐ์ •๋ก ์  ์—ฐ์‚ฐ์œผ๋กœ ๋ถ„๋ฆฌํ•œ๋‹ค.
๊ฒฐ๊ณผ์ ์œผ๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด ๋ง์…ˆ ํ˜•ํƒœ๋กœ ๋ณ€ํ˜•ํ•˜์—ฌ ์‹ค์ œ ์ฝ”๋“œ์— ๊ตฌํ˜„๋œ๋‹ค.

\[\mathbf x_t=\sqrt{\bar{\alpha}_t}\mathbf x_0+\sqrt{(1-\bar{\alpha}_t)}\boldsymbol\epsilon ,\quad\text{where }\boldsymbol\epsilon \sim \mathcal N(\mathbf0,\textbf{I}) \tag{6}\]

Reverse Process (Training)

Reverse Process๋Š” ์™„์ „ํ•œ ๋…ธ์ด์ฆˆ ๋ถ„ํฌ $\vx_T\sim\mathcal{N}(0,\text{I})$์—์„œ ๋…ธ์ด์ฆˆ๋ฅผ ์ ์ง„์ ์œผ๋กœ ์ œ๊ฑฐํ•จ์œผ๋กœ์จ, ์›๋ณธ ๋ฐ์ดํ„ฐ $\vx_0$๋ฅผ ๋ณต์›ํ•˜๋Š” ๊ณผ์ •์ด๋‹ค.

์ด๋ก ์ ์œผ๋กœ Forward Process์˜ ๊ฐ ๋…ธ์ด์ฆˆ ์ฃผ์ž… step์ด ๋งค์šฐ ์ž‘๋‹ค๋ฉด, ๊ทธ ์—ญ๋ฐฉํ–ฅ์˜ ํ™•๋ฅ  ๊ถค์  ์—ญ์‹œ ๋™์ผํ•˜๊ฒŒ ๊ฐ€์šฐ์‹œ์•ˆ ๋ถ„ํฌ์˜ ํ˜•ํƒœ๋ฅผ ๋ค๋‹ค๋Š” ๊ฒƒ์ด ์•Œ๋ ค์ ธ ์žˆ๋‹ค.

์‹ค์ œ ์—ญ๋ฐฉํ–ฅ ๋ถ„ํฌ์˜ ๊ณ„์‚ฐ ๋ถˆ๊ฐ€๋Šฅ์„ฑ (Intractability)

์ด๋ฅผ ์ˆ˜ํ•™์ ์œผ๋กœ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ๋ฒ ์ด์ฆˆ ์ •๋ฆฌ๋ฅผ ์ ์šฉํ•˜๋ฉด, Reverse Process์˜ 1step์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œํ˜„๋œ๋‹ค.

\[q(\vx_{t-1}\mid\vx_t)=\frac{q(\vx_t\mid\vx_{t-1})q(\vx_{t-1})}{q(\vx_t)} \tag{7}\]

์œ„ ์ˆ˜์‹์—์„œ $q(\vx_t\mid\vx_{t-1})$๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ง์ ‘ ์ •์˜ํ•œ ๋ถ„ํฌ์ด๊ธฐ ๋•Œ๋ฌธ์— ์•Œ๊ณ  ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ $q(\vx_{t-1})$์™€ $q(\vx_t)$๋Š” ์šฐ๋ฆฌ๊ฐ€ ์•Œ ์ˆ˜ ์—†๋Š” ์ „์ฒด ๋ฐ์ดํ„ฐ์…‹์˜ Marginal ๋ถ„ํฌ์ด๋‹ค.
๋”ฐ๋ผ์„œ ์‹ค์ œ ์—ญ๋ฐฉํ–ฅ ๋ถ„ํฌ $q(\vx_{t-1}\mid\vx_t)$๋ฅผ ์ง์ ‘ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ์„ ํ†ตํ•œ ๊ทผ์‚ฌ

์ง์ ‘ ๊ณ„์‚ฐ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ, ์ €์ž๋“ค์€ ์ด๋ฅผ ํ•™์Šต ๊ฐ€๋Šฅํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ $\theta$๋ฅผ ๊ฐ€์ง„ ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ $p_\theta$๋กœ ๊ทผ์‚ฌํ•˜๋Š” ๋ฐฉ์‹์„ ํƒํ•˜์˜€๋‹ค.

Reverse Process ์—ญ์‹œ Markov Chain์„ ๋”ฐ๋ฅธ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉฐ, ๋ชจ๋ธ์ด ์˜ˆ์ธกํ•˜๋Š” ์ „์ฒด Reverse Process๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์ •์˜๋œ๋‹ค.

\[p_\theta(\mathbf x_{0:T}):=p(\vx_T)\prod_{t=1}^Tp_\theta(\vx_{t-1}\mid\vx_t) \tag{8}\]

Tractable Posterior์˜ ์œ ๋„

๊ทธ๋ ‡๋‹ค๋ฉด ๋ชจ๋ธ $p_\theta(\vx_{t-1}\mid\vx_t)$๋ฅผ ๋„๋Œ€์ฒด ์–ด๋–ค ์ •๋‹ต์„ ๋ณด๊ณ  ํ•™์Šต์‹œ์ผœ์•ผ ํ• ๊นŒ?

๋‹คํ–‰ํžˆ๋„ ์šฐ๋ฆฌ๋Š” ์ƒ์„ฑ ๋ชจ๋ธ์„ ํ•™์Šต์‹œํ‚ฌ ๋•Œ, ์›๋ณธ ๋ฐ์ดํ„ฐ $\vx_0$๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

์•ž์„œ ํ™•์ธํ–ˆ๋“ฏ์ด ์ง์ „ step๋งŒ์„ ๊ณ ๋ คํ•˜๋Š” $q(\vx_{t-1}\mid\vx_t)$๋Š” ๊ตฌํ•  ์ˆ˜ ์—†์ง€๋งŒ, ์—ฌ๊ธฐ์— ์›๋ณธ ์ด๋ฏธ์ง€ $\vx_0$๋ฅผ ์กฐ๊ฑด๋ถ€๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฒ ์ด์ฆˆ ์ •๋ฆฌ์™€ Forward Process์˜ ์„ฑ์งˆ์„ ์ด์šฉํ•ด Closed-form์˜ ๊ฐ€์šฐ์‹œ์•ˆ ๋ถ„ํฌ๋ฅผ ์œ ๋„ํ•  ์ˆ˜ ์žˆ๋‹ค.

\[q(\vx_{t-1}\mid\vx_t,\vx_0) = \mathcal{N}(\vx_{t-1};\tilde{\mu}_t(\vx_t,\vx_0),\tilde{\beta}_t\vI) \tag{9}\]

์ด ๋ถ„ํฌ์˜ ํ‰๊ท  $\tilde{\mu}_t$์™€ ๋ถ„์‚ฐ $\tilde{\beta}_t$๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด $\vx_t$์™€ $\vx_0$์— ๋Œ€ํ•œ ์„ ํ˜• ๊ฒฐํ•ฉ์œผ๋กœ ๋„์ถœ๋œ๋‹ค.

\[\tilde{\mu}_t(\vx_t,\vx_0)= \frac{\sqrt{\bar{\alpha}_{t-1}}\beta_t}{1-\bar{\alpha}_t}\vx_0 +\frac{\sqrt{\alpha_t}(1-\bar{\alpha}_{t-1})}{1-\bar{\alpha}_t}\vx_t \quad,\quad \tilde{\beta}_t=\frac{1-\bar{\alpha}_{t-1}}{1-\bar{\alpha}_t}\beta_t \tag{10}\]

๊ฒฐ๋ก ์ ์œผ๋กœ, ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ $p_\theta$๋Š” ์ด ๋ถ„ํฌ๋ฅผ ๊ทผ์‚ฌํ•˜๋„๋ก ํ•™์Šต๋œ๋‹ค.

DDPM ์›๋…ผ๋ฌธ์—์„œ๋Š” ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ์ด ํ‰๊ท ๋งŒ ์˜ˆ์ธกํ•˜๋„๋ก ํ•˜๊ณ , ๋ถ„์‚ฐ์„ ํ•™์Šตํ•˜์ง€ ์•Š๋Š” ์ƒ์ˆ˜ $\sigma_t^2\vI$๋กœ ๊ณ ์ •ํ–ˆ๋‹ค.

์ดํ›„ ๋ฐœํ‘œ๋œ Improved Denoising Diffusion Probabilistic Models ๋…ผ๋ฌธ์—์„œ๋Š” ์ด ๋ถ„์‚ฐ๊นŒ์ง€ ๋ชจ๋ธ์ด ์ง์ ‘ ํ•™์Šตํ•˜๋„๋ก ๊ตฌ์กฐ๋ฅผ ๊ฐœ์„ ํ•˜์—ฌ, ๋” ์ ์€ step์œผ๋กœ๋„ ๋†’์€ ํ€„๋ฆฌํ‹ฐ์˜ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.

Reverse Process (Inference)

ํ•™์Šต์ด ์™„๋ฃŒ๋œ ํ›„ ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•  ๋•Œ๋Š”, ์™„์ „ํ•œ ๊ฐ€์šฐ์‹œ์•ˆ ๋…ธ์ด์ฆˆ $\vx_T$์—์„œ ์ถœ๋ฐœํ•˜์—ฌ ์•„๋ž˜์˜ ์ˆ˜์‹์„ ํ†ตํ•ด ๋งค step๋งˆ๋‹ค ์ ์ง„์ ์œผ๋กœ ๋…ธ์ด์ฆˆ๋ฅผ ๊ฑท์–ด๋‚ธ๋‹ค.

\[\vx_{t-1}=\frac{1}{\sqrt{\alpha_t}}\bigg( \vx_t-\frac{\beta_t}{\sqrt{1-\bar\alpha_t}}\boldsymbol\epsilon_\theta(\vx_t,t) \bigg)+\sigma_t\vz ,\quad\text{where }\vz\sim\mathcal{N}(\mathbf0,\vI) \tag{11}\]

์ด ๊ณผ์ •์„ $t=T$๋ถ€ํ„ฐ $t=1$๊นŒ์ง€ ์—ญ์ˆœ์œผ๋กœ ๋ฐ˜๋ณตํ•˜๋ฉด ์ตœ์ข…์ ์œผ๋กœ ๊นจ๋—ํ•œ ์›๋ณธ ์ด๋ฏธ์ง€ ํ˜•ํƒœ์˜ $\vx_0$๋ฅผ ์–ป๊ฒŒ ๋œ๋‹ค.

Training Objective

์ƒ์„ฑ ๋ชจ๋ธ์˜ ๊ถ๊ทน์ ์ธ ๋ชฉํ‘œ๋Š” ๋ชจ๋ธ์ด ์ƒ์„ฑํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์‹ค์ œ ๋ฐ์ดํ„ฐ์˜ ๋ถ„ํฌ๋ฅผ ๋”ฐ๋ฅด๋„๋ก Log-likelihood๋ฅผ ์ตœ๋Œ€ํ™”ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

ํ•˜์ง€๋งŒ ์ด Log-likelihood๋ฅผ ์ง์ ‘ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ, VAE์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ELBO (Evidence Lower Bound)๋ฅผ ์‚ฌ์šฉํ•ด Negative Log-likelihood์˜ ์ƒํ•œ์„ ์„ ์ตœ์†Œํ™”ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•™์Šต์„ ์ง„ํ–‰ํ•œ๋‹ค.

\[\mathbb{E}\big[-\log p_\theta(\vx_0)\big]\leq \mathbb{E}_q\bigg[ -\log p(\vx_T)-\sum_{t\geq1}\log\frac{p_\theta(\vx_{t-1}\mid\vx_t)}{q(\mathbf x_t\mid\mathbf x_{t-1})} \bigg]:=L \tag{12}\]

Markov Chain ์„ฑ์งˆ๊ณผ Tractable Posterior์„ ํ™œ์šฉํ•˜๋ฉด, ์šฐํ•ญ์˜ ELBO ์ˆ˜์‹์„ ์•„๋ž˜์™€ ๊ฐ™์ด 3๊ฐœ์˜ ํ•ญ์œผ๋กœ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

\[\mathbb{E}_q \Bigg[ \underbrace{D_{\mathrm{KL}}\left(q(\vx_T \mid \vx_0) \,\|\, p(\vx_T)\right)}_{L_T} + \underbrace{\sum_{t > 1} D_{\mathrm{KL}}\left(q(\vx_{t-1} \mid \vx_t, \vx_0) \,\|\, p_\theta(\vx_{t-1} \mid \vx_t)\right)}_{L_{t-1}} - \underbrace{\log p_\theta(\vx_0 \mid \vx_1)}_{L_0} \Bigg] \tag{13}\]
  • $L_T$ (Regularization Loss): $\beta_t$๋ฅผ ํ•™์Šต์‹œํ‚ค๋Š” ํ•ญ์ด์ง€๋งŒ ์‹คํ—˜์—์„œ๋Š” $\beta_t$๋ฅผ ๊ณ ์ •๋œ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋‘๊ธฐ ๋•Œ๋ฌธ์— ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ๋Š” ํ•ญ์ด๋‹ค.
  • $L_{t-1}$ (Denoising Loss): ๋ชจ๋ธ์˜ ํ•ต์‹ฌ ํ•™์Šต ๋Œ€์ƒ์ด๋ฉฐ, ๋งค step์—์„œ ์˜ˆ์ธกํ•œ ๋ถ„ํฌ์™€ ์‹ค์ œ ๋ถ„ํฌ์˜ ์ฐจ์ด๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ํ•ญ์ด๋‹ค.
  • $L_0$ (Reconstruction Loss): Reverse Process์˜ ๋งˆ์ง€๋ง‰ step ($t=1\to0$)์—์„œ ์ด๋ฏธ์ง€๋ฅผ ๋ณต์›ํ•˜๋Š” ํ•ญ์œผ๋กœ, ์ •์ œ๋œ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํ•ญ์ด๋‹ค.

Simplified Training Objective

์ €์ž๋“ค์€ ์•„๋ž˜์™€ ๊ฐ™์ด ๋‹จ์ˆœํ™”ํ•œ ๋ชฉ์ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ ๋” ์ข‹์€ ์ƒ˜ํ”Œ์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์„ ์‹คํ—˜์ ์œผ๋กœ ํ™•์ธํ–ˆ๋‹ค๊ณ  ํ•œ๋‹ค.

\[L_{\text{simple}}(\theta):= \mathbb{E}_{t,\mathbf x_0,\boldsymbol\epsilon} \bigg[\lVert\boldsymbol\epsilon-\boldsymbol\epsilon_\theta(\vx_t,t)\rVert^2\bigg] \tag{14}\]

์œ„ ์ˆ˜์‹์—์„œ $\vx_t=\sqrt{\bar\alpha_t}\mathbf x_0+\sqrt{1-\bar\alpha_t}\boldsymbol\epsilon$์ด๋‹ค.

์‹ (14)์˜ ๋‹จ์ˆœํ™”๋œ ์†์‹ค ํ•จ์ˆ˜์— ๋”ฐ๋ฅด๋ฉด, ๋ชจ๋ธ $\boldsymbol\epsilon_\theta$๋Š” ์›๋ณธ ๋ฐ์ดํ„ฐ $\vx_0$์—์„œ ํ˜„์žฌ ์ƒํƒœ $\vx_t$๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์ฃผ์ž…๋œ ์ „์ฒด ๋…ธ์ด์ฆˆ $\boldsymbol\epsilon$์„ ์˜ˆ์ธกํ•˜๋„๋ก ํ•™์Šต๋œ๋‹ค.

Pseudo Code

fig2

Training

  1. $t$๋ฅผ $[1,T]$ ๋ฒ”์œ„์—์„œ ๋žœ๋ค์œผ๋กœ ์ƒ˜ํ”Œ๋งํ•œ๋‹ค.
  2. $q(\mathbf x_t\mid\mathbf x_0)$ ์ˆ˜์‹์„ ์ด์šฉํ•ด ํ•ด๋‹น $t$์—์„œ์˜ ๋…ธ์ด์ฆˆ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
  3. ๋ชจ๋ธ $\boldsymbol\epsilon_\theta$๋Š” ์ƒ์„ฑ๋œ $\mathbf x_t$์™€ $t$๋ฅผ ์ž…๋ ฅ๋ฐ›์•„, $\mathbf x_t$์— ์ฃผ์ž…๋œ ์ „์ฒด ๋…ธ์ด์ฆˆ $\vepsilon$๋ฅผ ์˜ˆ์ธกํ•œ๋‹ค.
  4. ์‹ (14)์˜ MSE Loss๋ฅผ ๊ตฌํ•œ ํ›„, ์—ญ์ „ํŒŒ๋ฅผ ํ†ตํ•ด ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.
  5. ์œ„ ๊ณผ์ •์„ epoch๋งŒํผ ๋ฐ˜๋ณตํ•œ๋‹ค.

์—ฌ๊ธฐ์„œ ์œ ์˜ํ•  ์ ์€, ํ•˜๋‚˜์˜ ์ด๋ฏธ์ง€๋ฅผ ํ•™์Šตํ•  ๋•Œ $t$๋ฅผ ๊ฑฐ๊พธ๋กœ ๋‚ด๋ ค์˜ค๋ฉด์„œ ๋ชจ๋“  step์— ๋Œ€ํ•ด Loss๋ฅผ ๊ตฌํ•˜๊ณ  ์—ญ์ „ํŒŒ๋ฅผ ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
๋Œ€์‹ , ์ €์ž๋“ค์€ ๋งค๋ฒˆ ๋ฌด์ž‘์œ„ $t$๋ฅผ ํ•˜๋‚˜๋งŒ ๋ฝ‘์•„ ํ•œ ๋ฒˆ์— ์˜ˆ์ธกํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ–ˆ๋‹ค.
์ˆ˜๋งŽ์€ ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ์…‹์—์„œ ์ด ๋ฌด์ž‘์œ„ ์ถ”์ถœ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋‹ค ๋ณด๋ฉด, ๋ชจ๋ธ์€ ๊ฒฐ๊ตญ $t=1$๋ถ€ํ„ฐ $T๊นŒ์ง€ ์ „์ฒด ๊ตฌ๊ฐ„์— ๊ฑธ์นœ ๋…ธ์ด์ฆˆ ์ œ๊ฑฐ ํŒจํ„ด์„ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ํ•™์Šตํ•˜๊ฒŒ ๋œ๋‹ค.

Inference

  1. $\vx_T$๋ฅผ $\mathcal{N}(\mathbf0,\vI)$์—์„œ ์ƒ˜ํ”Œ๋งํ•œ๋‹ค.
  2. ํ˜„์žฌ time step์ด $t>1$์ด๋ผ๋ฉด, $\vz$๋ฅผ $\mathcal{N}(\mathbf0,\vI)$์—์„œ ์ƒ˜ํ”Œ๋งํ•œ๋‹ค.
  3. ํ˜„์žฌ $\mathbf x_t$์™€ $t$๋ฅผ ์ž…๋ ฅ์œผ๋กœ ํ•˜์—ฌ, ๋„คํŠธ์›Œํฌ๊ฐ€ ํ•ด๋‹น time step์—์„œ์˜ ๋…ธ์ด์ฆˆ๋ฅผ ์˜ˆ์ธกํ•œ๋‹ค.
  4. ์˜ˆ์ธก๋œ ๋…ธ์ด์ฆˆ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ $\mathbf x_{t-1}$์„ ๊ณ„์‚ฐํ•œ๋‹ค.
  5. (2)~(4) ๊ณผ์ •์„ $t=T,\dots,1$ ๋™์•ˆ ๋ฐ˜๋ณตํ•œ๋‹ค.
  6. ์ตœ์ข…์ ์œผ๋กœ $\mathbf x_0$๋ฅผ ์–ป๋Š”๋‹ค.