Post

Score Matching

Score Matching

๐Ÿ“„ ๊ด€๋ จ ๋…ผ๋ฌธ: [NeurIPS 2019] Generative Modeling by Estimating Gradients of the Data Distribution

๐Ÿ“„ ๊ด€๋ จ ๋…ผ๋ฌธ: [ICLR 2021] Score-Based Generative Modeling through Stochastic Differential Equations

Score Function

์—ฌ๋Ÿฌ ๊ฐœ์˜ ์‚ฐ์ด ์žˆ๋Š” ํ™•๋ฅ  ๊ณต๊ฐ„์—์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐ€์ง‘๋œ ๊ณณ์€ ์‚ฐ์˜ ์ •์ƒ์ด๊ณ , ์‚ฐ ์•„๋ž˜๋Š” ๋…ธ์ด์ฆˆ๋กœ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค.

์‚ฐ ์•„๋ž˜์—์„œ ์ •์ƒ์œผ๋กœ ๊ฐ€๊ธฐ ์œ„ํ•ด์„œ๋Š” ์–ด๋А ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐ€์•ผ ์ •์ƒ์ธ์ง€๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ๊ฐ€์ด๋“œ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
์ด ๋ฐฉํ–ฅ์„ ์•Œ๋ ค์ฃผ๋Š” ๊ฒƒ์ด ๊ทธ๋ž˜๋””์–ธํŠธ์ด๋‹ค.

fig1 [์ถœ์ฒ˜]

์ด ๊ธฐ์šธ๊ธฐ ๊ฐ’์„ ์ˆ˜ํ•™์ ์œผ๋กœ Score๋ผ๊ณ  ํ•˜๋ฉฐ, Log-Likelihood์˜ ๊ทธ๋ž˜๋””์–ธํŠธ๋กœ ์ •์˜๋œ๋‹ค.

\[\nabla_\vx\log p(\vx) \tag{1}\]

์ฆ‰, Score๋Š” ํ˜„์žฌ ์ƒํƒœ ๊ณต๊ฐ„์—์„œ ํ™•๋ฅ  ๋ฐ€๋„ ํ•จ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ๊ฐ€ํŒŒ๋ฅด๊ฒŒ ์ฆ๊ฐ€ํ•˜๋Š” ๋ฐฉํ–ฅ์„ ์•Œ๋ ค์ฃผ๋Š” ๊ทธ๋ž˜๋””์–ธํŠธ์ด๋‹ค.

์‹ (1) ์ž์ฒด๋ฅผ ํ•จ์ˆ˜๋กœ ๋ณด๊ณ , Score Function์ด๋ผ๊ณ ๋„ ํ•œ๋‹ค.

\[s(\vx)=\nabla_\vx\log p(\vx) \tag{2}\]

Score Matching

Score Matching์€ ๋ง ๊ทธ๋Œ€๋กœ ๋ฐ์ดํ„ฐ ๋ถ„ํฌ์˜ ๊ธฐ์šธ๊ธฐ์ธ Score Function์„ ์˜ˆ์ธกํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

fig2

์ฆ‰, ๋ชจ๋ธ์ด ์˜ˆ์ธกํ•œ Score์™€ ์‹ค์ œ ๋ฐ์ดํ„ฐ์˜ Score ๊ฐ„์˜ ์ฐจ์ด๋ฅผ ์ค„์ด๋„๋ก ํ•™์Šตํ•œ๋‹ค.

\[\mathcal{L}=\frac{1}{2}\mathbb{E}_{p_{data}(\vx)}\left[\lVert s_\theta(\vx)-\nabla_\vx\log p_{data}(\vx)\rVert_2^2\right] \tag{3}\]

ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์—๋Š” ์น˜๋ช…์ ์ธ ๋ชจ์ˆœ์ด ์žˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๋ชจ๋ธ์„ ํ•™์Šต์‹œํ‚ค๋Š” ์ด์œ ๋Š” ์‹ค์ œ ๋ฐ์ดํ„ฐ ๋ถ„ํฌ $p_{data}(\vx)$๋ฅผ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์ธ๋ฐ, ์œ„ ์‹์„ ๊ณ„์‚ฐํ•˜๋ ค๋ฉด ์‹ค์ œ ๋ฐ์ดํ„ฐ ๋ถ„ํฌ์˜ ๊ธฐ์šธ๊ธฐ๋ฅผ ์•Œ์•„์•ผ ํ•œ๋‹ค. ์ฆ‰, ์ •๋‹ต์„ ๋ชจ๋ฅด๋Š”๋ฐ ์ •๋‹ต๊ณผ ๋น„๊ตํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ธ ๊ฒƒ์ด๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅํ•œ ๊ธฐ๋ฒ•๋“ค์ด ๋ฐ”๋กœ Score Matching์ด๋‹ค.

Implicit Score Matching

2005๋…„ Hyvรคrinen์€ ๋ถ€๋ถ„ ์ ๋ถ„์„ ์ด์šฉํ•ด, ์‹ค์ œ ๋ฐ์ดํ„ฐ์˜ ๋ถ„ํฌ๋ฅผ ๋ชฐ๋ผ๋„ ์œ„ ๋ชฉ์  ํ•จ์ˆ˜๋ฅผ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Œ์„ ์ˆ˜ํ•™์ ์œผ๋กœ ์ฆ๋ช…ํ–ˆ๋‹ค. ์œ ๋„ ๊ณผ์ •์„ ๊ฑฐ์นœ ๋ชฉ์  ํ•จ์ˆ˜๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

\[\mathcal{L}=\mathbb{E}_{p_{data}(\vx)}\left[\text{tr}\left(\nabla_\vx s_\theta(\vx)\right) +\frac{1}{2}\lVert s_\theta(\vx)\rVert_2^2\right] \tag{4}\]

ํ•˜์ง€๋งŒ ์‹์— ํฌํ•จ๋œ $\text{tr}(\nabla_\vx s_\theta(\vx))$ ํ•ญ์€ ๋ชจ๋ธ ์ถœ๋ ฅ์˜ ์ž…๋ ฅ์— ๋Œ€ํ•œ ๋ฏธ๋ถ„๊ฐ’(Jacobian)์˜ ๋Œ€๊ฐํ•ฉ์„ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค.

์ด๋Š” ๋ฐ์ดํ„ฐ ์ฐจ์›์ด ์ปค์งˆ์ˆ˜๋ก ๊ณ„์‚ฐ๋Ÿ‰์ด ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ๋Š˜์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์—, ๋”ฅ๋Ÿฌ๋‹์— ์ง์ ‘ ์ ์šฉํ•˜๊ธฐ์—” ๋„ˆ๋ฌด ๋ฌด๊ฑฐ์› ๋‹ค.

Denoising Score Matching

Score Estimation์—์„œ๋Š” ๋ฌธ์ œ๊ฐ€ ํ•˜๋‚˜ ์žˆ๋Š”๋ฐ, ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋Š” ์˜์—ญ์—์„œ๋Š” ์ •ํ™•ํ•œ Score๋ฅผ ์ถ”์ •ํ•˜๊ธฐ ์–ด๋ ต๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

fig3

์ด๋ฅผ ์™„ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ์— ๋ถ„์‚ฐ์ด $\sigma^2$์ธ ๊ฐ€์šฐ์‹œ์•ˆ ๋…ธ์ด์ฆˆ๋ฅผ ๋”ํ•˜๊ณ , ๋…ธ์ด์ฆˆ๊ฐ€ ์„ž์ธ ๋ถ„ํฌ์˜ Score๋ฅผ ์ถ”์ •ํ•˜๋„๋ก ํ•˜์˜€๋‹ค.

\[p(\tilde{\vx}\mid\vx)=\mathcal{N}(\tilde{\vx};\vx,\sigma^2\vI) \tag{5}\]

์œ„ ์กฐ๊ฑด๋ถ€ ํ™•๋ฅ ์€ ์šฐ๋ฆฌ๊ฐ€ ์ง์ ‘ ์ •์˜ํ•œ ๊ฐ€์šฐ์‹œ์•ˆ ๋ถ„ํฌ์ด๊ธฐ ๋•Œ๋ฌธ์—, ๋ฏธ๋ถ„ ๋˜ํ•œ ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค.

\[\nabla_{\tilde{\vx}}\log p(\tilde{\vx}\mid\vx) =-\frac{\tilde{\vx}-\vx}{\sigma^2} \tag{6}\]

์ด๋•Œ, ์ถ”๊ฐ€ํ•˜๋Š” ๋…ธ์ด์ฆˆ์˜ ์–‘์ด ๋งŽ๋‹ค๋ฉด ์›๋ณธ ๋ฐ์ดํ„ฐ์˜ ๋ถ„ํฌ ์ž์ฒด๊ฐ€ ์†์ƒ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ ์ ˆํ•œ ์กฐ์ •์ด ํ•„์š”ํ•˜๋‹ค.

fig4

Vincent๋Š” ๋…ธ์ด์ฆˆ๊ฐ€ ์„ž์ธ ๋ฐ์ดํ„ฐ $\tilde{\vx}$์˜ Score๋ฅผ ์ถ”์ •ํ•˜๋Š” ๊ฒƒ์ด, ์›๋ณธ ๋ฐ์ดํ„ฐ $\vx$์˜ Score๋ฅผ ์ถ”์ •ํ•˜๋Š” ๊ฒƒ๊ณผ ์ตœ์ ํ™” ๊ด€์ ์—์„œ ๋™์น˜์ž„์„ ์ฆ๋ช…ํ–ˆ๋‹ค.

\[\mathcal{L}=\mathbb{E}\left[\lVert s_\theta(\tilde{\vx})-\nabla_{\tilde{\vx}}\log p_{data}(\tilde{\vx}\mid\vx)\rVert_2^2\right] =\mathbb{E}\left[\left\lVert s_\theta(\tilde{\vx})-\frac{\tilde{\vx}-\vx}{\sigma^2}\right\rVert_2^2\right] \tag{7}\]