๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

CS/์ธ๊ณต์ง€๋Šฅ

Simple Diffusion Image generate Model

728x90

 

Diffusion ๋ชจ๋ธ์€ ์ด๋ฏธ์ง€ ์ƒ์„ฑ ๋ชจ๋ธ๋กœ ๊ฐ€์žฅ ์ฃผ๋ชฉ๋ฐ›๊ณ  ์žˆ๋Š” ๋ชจ๋ธ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. 

๋‹ค์–‘ํ•œ ์š”๊ตฌ์กฐ๊ฑด์— ๋งž๋Š” ๊ณ ํ™”์งˆ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์„ ๋ฟ๋”๋Ÿฌ

ํ•™์Šต ๋ฐ์ดํ„ฐ์— ์—†๋Š” ํ˜•ํƒœ์˜ ์ด๋ฏธ์ง€๋“ค๋„ ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ Text๊ฐ€ ๋ฌ˜์‚ฌํ•˜๋Š” ๋Œ€๋กœ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด, Diffusion ๋ชจ๋ธ์€ ์–ด๋–ป๊ฒŒ ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•ด๋‚ด๋Š” ๊ฒƒ์ผ๊นŒ?

์ด๋ฅผ ์œ„ํ•ด ๋จผ์ € ๊ฐ€์šฐ์‹œ์•ˆ ๋ถ„ํฌ์™€ ํ™•์‚ฐ ๊ณผ์ •(diffusion processes)์ด ๋ฌด์—‡์ธ์ง€ ์ดํ•ดํ•ด๋ณด์ž.

 

๊ฐ€์šฐ์‹œ์•ˆ ๋ถ„ํฌ๋ž€?

 

๋งŽ์€ ์ž์—ฐ ํ˜„์ƒ๊ณผ ๋ฐ์ดํ„ฐ๊ฐ€ ์ด ๋ถ„ํฌ๋ฅผ ๋”ฐ๋ฅด๊ณ  ์žˆ์œผ๋ฉฐ, ์ •๊ทœ๋ถ„ํฌ๋ผ๊ณ ๋„ ๋ถˆ๋ฆฐ๋‹ค. 

์—ฐ์† ํ™•๋ฅ  ๋ถ„ํฌ์˜ ํ•˜๋‚˜๋กœ,

๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜๋œ๋‹ค. 

  • : ๋ณ€์ˆ˜
  • μ : ํ‰๊ท (mean)
  • σ2 : ๋ถ„์‚ฐ(variance)
  • σ : ํ‘œ์ค€ ํŽธ์ฐจ(standard deviation)

๊ฐ€์šฐ์‹œ์•ˆ ๋ถ„ํฌ๋Š” ์ค‘์‹ฌ ๊ทนํ•œ ์ •๋ฆฌ์— ์˜ํ•ด ํฐ ํ‘œ๋ณธ์˜ ํ‰๊ท ์ด ๊ฐ€์šฐ์‹œ์•ˆ ๋ถ„ํฌ์— ๊ฐ€๊นŒ์›Œ์ง€๋Š” ํŠน์„ฑ์„ ๊ฐ€์ง€๋ฏ€๋กœ ํ†ต๊ณ„์  ์ถ”๋ก ์—์„œ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•œ๋‹ค. 

 

๐Ÿ“Œ ์ค‘์‹ฌ ๊ทนํ•œ ์ •๋ฆฌ๋ž€?

์ถฉ๋ถ„ํžˆ ํฐ ํ‘œ๋ณธ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง„ ๋…๋ฆฝ์ ์ด๊ณ  ๋™์ผํ•˜๊ฒŒ ๋ถ„ํฌ๋œ ๋ฌด์ž‘์œ„ ๋ณ€์ˆ˜๋“ค์˜ ํ•ฉ์ด๋‚˜ ํ‰๊ท ์€ ์›๋ž˜ ๋ถ„ํฌ์˜ ํ˜•ํƒœ์— ์ƒ๊ด€์—†์ด ๊ฐ€์šฐ์‹œ์•ˆ ๋ถ„ํฌ(์ •๊ทœ ๋ถ„ํฌ)์— ๊ทผ์ ‘ํ•˜๊ฒŒ ๋œ๋‹ค. 

 

  • ์•ฝ 68%์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ํ‰๊ท ์—์„œ ํ‘œ์ค€ ํŽธ์ฐจ 1 ์ด๋‚ด์— ์กด์žฌ
  • ์•ฝ 95%์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ํ‰๊ท ์—์„œ ํ‘œ์ค€ ํŽธ์ฐจ 2 ์ด๋‚ด์— ์กด์žฌ
  • ์•ฝ 99.7%์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ํ‰๊ท ์—์„œ ํ‘œ์ค€ ํŽธ์ฐจ 3 ์ด๋‚ด์— ์กด์žฌ

=> ํ†ต๊ณ„์  ์ถ”๋ก ์—์„œ ํ‘œ๋ณธ ํ‰๊ท ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ์ˆ˜(ํ‰๊ท , ๋ถ„์‚ฐ ๋“ฑ)๋ฅผ ์ถ”์ •ํ•  ๋•Œ ์œ ์šฉํ•˜๋‹ค. ์ „๋ฐ˜์ ์œผ๋กœ ๊ฐ€์šฐ์‹œ์•ˆ ๋ถ„ํฌ๋Š” ๋””ํ“จ์ „ ๋ชจ๋ธ์—์„œ ๋…ธ์ด์ฆˆ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์ œ๊ฑฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํ™•๋ฅ  ๋ถ„ํฌ๋กœ, ๋ชจ๋ธ์ด ๋ฐ์ดํ„ฐ์˜ ๋ณต์› ๊ณผ์ •์„ ํ•™์Šตํ•˜๊ณ  ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•œ๋‹ค. 

 

 

Diffusion Process 

 

ํ™•์‚ฐ ๊ณผ์ •(diffusion processes)์€ ๊ฑฐ์˜ ํ™•์‹คํ•˜๊ฒŒ ์—ฐ์†์ ์ธ ์ƒ˜ํ”Œ ๊ฒฝ๋กœ๋ฅผ ๊ฐ€์ง€๋Š” ์—ฐ์† ์‹œ๊ฐ„ *๋งˆ๋ฅด์ฝ”ํ”„ ์ฒด์ธ(Markov chain)์˜ ํ•œ ์œ ํ˜•

์ด๋‹ค. ํ™•์‚ฐ ๊ณผ์ •์€ ๋ณธ์งˆ์ ์œผ๋กœ ํ™•๋ฅ ์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋งŽ์€ ํ˜„์‹ค์˜ ํ™•๋ฅ ์  ์‹œ์Šคํ…œ์„ ๋ชจ๋ธ๋งํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ํ™•๋ฅ ์  ์‹œ์Šคํ…œ์˜ ์‹œ๊ฐ„์— ๋”ฐ๋ฅธ ๋ณ€ํ™”๋ฅผ ์„ค๋ช…ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋ธ์ด๋ฉฐ ์‹œ๊ฐ„์— ๋”ฐ๋ผ ๋ฌด์ž‘์œ„๋กœ ๋ณ€ํ™”ํ•˜๊ณ , ์ด ๋ณ€ํ™”๋Š” ์—ฐ์†์ ์ด๋‹ค.

 

*๊ฐ ์‚ฌ๊ฑด์˜ ํ™•๋ฅ ์ด ์ด์ „ ์‚ฌ๊ฑด์—์„œ ๋‹ฌ์„ฑ๋œ ์ƒํƒœ์—๋งŒ ์˜์กดํ•˜๋Š” ์ผ๋ จ์˜ ๊ฐ€๋Šฅํ•œ ์‚ฌ๊ฑด์„ ์„ค๋ช…ํ•˜๋Š” ํ™•๋ฅ  ๋ชจ๋ธ์ด๋‹ค. ํ˜„์žฌ ์ƒํƒœ๋งŒ์ด ๋ฏธ๋ž˜ ์ƒํƒœ์— ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค๋Š” ์„ฑ์งˆ์„ ๊ฐ€์ง„๋‹ค.

 

 

์ดˆ๊ธฐ ์ด๋ฏธ์ง€๊ฐ€ ์ผ๋ จ์˜ ๋ถ„์ž๋“ค๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ , ๊ทธ๋ฆผ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ถ„์ž๋“ค ์ค‘ ํ•˜๋‚˜์˜ ๋ถ„์ž์— ์ดˆ์ ์„ ๋งž์ถ”์–ด ์•„์ฃผ ์งง์€ ์‹œ๊ฐ„ ๋‹จ์œ„๋กœ ์Šค๋ƒ…์ƒท์„ ์ฐ์—ˆ๋‹ค๊ณ  ์ƒ์ƒํ•œ๋‹ค๋ฉด, ๊ทธ ๋ถ„์ž๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์›€์ง์ผ ๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฌํ•œ ๋ถ„์ž์˜ ์›€์ง์ž„์€ ๊ฐ€์šฐ์‹œ์•ˆ ๋ถ„ํฌ(Gaussian Distribution)์„ ๋”ฐ๋ฅธ๋‹ค.

 

 

 

์ฆ‰, ํ‰๊ท  μ ๊ณผ ํ‘œ์ค€ ํŽธ์ฐจ σ๋ฅผ ๋”ฐ๋ฅด๋Š” ์ •๊ทœ๋ถ„ํฌ๋กœ ์›€์ง์ž„์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด, ๋งŒ์ผ ๋งค์‹œ๊ฐ„ t ๋งˆ๋‹ค ๊ฐ ๋ถ„์ž์˜ ์›€์ง์ž„์„ ๊ณ„์‚ฐํ•ด๋‚ผ ์ˆ˜ ์žˆ๋‹ค๋ฉด ์–ด๋–จ๊นŒ? ๋‹ค์Œ๊ณผ ๊ฐ™์ด Diffusion ๊ณผ์ •์„ ๊ฑฐ๊พธ๋กœ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

 

 

 

๊ทธ๋ฆฌ๊ณ  ์ง€๊ธˆ๊นŒ์ง€์˜ ๊ณผ์ •์„ ๊ทธ๋Œ€๋กœ Image ์˜ Pixel ๊ฐ’์— ์ ์šฉํ•ด๋ณด๊ฒ ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ถ„์ž์˜ ์›€์ง์ž„์„ ์ •๊ทœ ๋ถ„ํฌ๋ฅผ ๋”ฐ๋ฅด๋Š” Noise ๋กœ ๋ณด์•˜๊ธฐ ๋•Œ๋ฌธ์—, ์ดˆ๊ธฐ Image ์˜ Pixel ๊ฐ’์— ์ •๊ทœ ๋ถ„ํฌ๋ฅผ ๋”ฐ๋ฅด๋Š” Noise ๊ฐ’์„ ์ถ”๊ฐ€ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด๊ฒ ๋‹ค. 

 

 

 

๊ทธ๋ ‡๋‹ค๋ฉด Diffusion Process ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ํ‘œํ˜„๋  ๊ฒƒ์ด๋‹ค. 

 

 

์™ผ์ชฝ์ด ์›๋ณธ์ด๋ฏธ์ง€์ด๊ณ  ์ด ์ด๋ฏธ์ง€์˜ ๋ชจ๋“  ํ”ฝ์…€ ๊ฐ’์— Noise ๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ ๋งŒ๋“ค์–ด์ง„ ๊ฒฐ๊ณผ ์ด๋ฏธ์ง€๊ฐ€ ์˜ค๋ฅธ์ชฝ๊ณผ ๊ฐ™๋‹ค. 

์ด์ œ ์ด ๊ณผ์ •์„ ๋งค์šฐ ๋งŽ์ด ๋ฐ˜๋ณตํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œํ˜„๋œ๋‹ค.

 

 

์ด ๊ณผ์ •์€ Diffusion Process ์˜ Forward ๊ณผ์ •์ด๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฏธ์ง€ X0๋กœ๋ถ€ํ„ฐ ๋ชจ๋“  ํ”ฝ์…€ ๊ฐ’์— ์‹œ๊ฐ„ t๋งˆ๋‹ค Noise ๋ฅผ ์ฒจ๊ฐ€ํ•ด์ฃผ๋Š” Process ์ด๋‹ค. ์ด๋ ‡๊ฒŒ ์•„์ฃผ ๊ธด ์‹œ๊ฐ„ T๋ฒˆ์„ ๊ฑฐ์ณ ๋งŒ๋“ค์–ด์ง„ ์ด๋ฏธ์ง€ Xt ๋Š” ์™„์ „ํ•œ ๋…ธ์ด์ฆˆ ์ด๋ฏธ์ง€๊ฐ€ ๋œ๋‹ค. 

 

์•„๊นŒ, ๋งค ์‹œ๊ฐ„ t์—์„œ ์ฒจ๊ฐ€๋œ Noise๋ฅผ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ณผ์ •์„ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ–ˆ์—ˆ๋‹ค. 

 

 

 

๋”ฐ๋ผ์„œ ์‹œ๊ฐ„ t๋งˆ๋‹ค ์ด๋ฏธ์ง€ ํ”ฝ์…€ ๊ฐ’์— ์ฒจ๊ฐ€๋œ Noise ๊ฐ’์„ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋žœ๋คํ•œ ์ด๋ฏธ์ง€ Xt ๋กœ๋ถ€ํ„ฐ ์ง„์งœ ์ด๋ฏธ์ง€ X0๋กœ ๋˜๋Œ๋ฆฌ๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ด์งˆ ๊ฒƒ์ด๋‹ค.

 

Denoising Diffusion models

 

 

1. Forward diffusion process : ๋ฐ์ดํ„ฐ์— ์ ์ง„์ ์œผ๋กœ ๋…ธ์ด์ฆˆ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ์ „๋ฐฉ ๊ณผ์ •

2. Reverse denoising process : ๊ทธ ๋…ธ์ด์ฆˆ๋ฅผ ์ ์ง„์ ์œผ๋กœ ์ œ๊ฑฐ(denoise)ํ•˜์—ฌ ์›๋ž˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์›ํ•˜๋Š” ์—ญ๋ฐฉํ–ฅ ๊ณผ์ •

 

 

์ „๋ฐฉ ๊ณผ์ •

: ์›๋ž˜ ๋ฐ์ดํ„ฐ X0 ์— ์ ์ง„์ ์œผ๋กœ ๋…ธ์ด์ฆˆ๋ฅผ ๋”ํ•˜์—ฌ, ์—ฌ๋Ÿฌ๋‹จ๊ณ„ t ๋ฅผ ๊ฑฐ์ณ ์™„์ „ํžˆ ๋…ธ์ด์ฆˆํ™” ๋œ ๋ฐ์ดํ„ฐ XT ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

์ „๋ฐฉ ๊ณผ์ •์˜ ํ•™์Šต์ด ํ•„์š”ํ•œ ์ด์œ ๋Š”, ์ถ”ํ›„ ์—ญ๋ฐฉํ–ฅ ๊ณผ์ • ํ•™์Šต์— ๋ณธ ์ •๋ณด๊ฐ€ ์ด์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

 

์—ญ๋ฐฉํ–ฅ ๊ณผ์ • 

 

: ์™„์ „ํžˆ ๋…ธ์ด์ฆˆํ™”๋œ ๋ฐ์ดํ„ฐ Xt ์—์„œ ์‹œ์ž‘ํ•˜์—ฌ, ์ ์ง„์ ์œผ๋กœ ๋…ธ์ด์ฆˆ๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด์„œ ์›๋ž˜ ๋ฐ์ดํ„ฐ X0 ๋ฅผ ๋ณต์›ํ•œ๋‹ค. 

 

 

ํ•™์Šต ๋ชฉํ‘œ

 

Diffusion ๋ชจ๋ธ์˜ ํ•™์Šต์€ ์ „๋ฐฉ ๊ณผ์ •๊ณผ ์—ญ๋ฐฉํ–ฅ ๊ณผ์ •์˜ ์ฐจ์ด๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•œ๋‹ค. 

์ฆ‰, ๋ชจ๋ธ์ด ์ „๋ฐฉ ๊ณผ์ •์—์„œ ์ถ”๊ฐ€๋œ ๋…ธ์ด์ฆˆ๋ฅผ ์–ผ๋งˆ๋‚˜ ์ž˜ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ํ•™์Šตํ•œ๋‹ค. 

์ด๋ฅผ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์†์‹ค ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ๋ชจ๋ธ์ด ์˜ˆ์ธกํ•œ ๋…ธ์ด์ฆˆ๊ฐ€ ์‹ค์ œ ๋…ธ์ด์ฆˆ์™€ ์–ผ๋งˆ๋‚˜ ๊ฐ€๊นŒ์šด์ง€๋ฅผ ์ธก์ •ํ•œ๋‹ค. 

 

 

 

Ref

 

https://arxiv.org/abs/2006.11239

https://github.com/hojonathanho/diffusion