Review

Score-based generative modeling (SBGM)이란 무엇일까? (3)

AI&영상처리개발팀
AI&영상처리개발팀
등록일2024. 03. 08
Scorebased-generative-modeling-SBGM이란-무엇일까-3


 summary 
Score-based generative modeling (NCSN v1)은 데이터 분포를 이해하기 위한 접근법으로, Kingma가 2014년에 활용한 Variational Inference의 개념에서 출발하여 꼼꼼히 수식적으로 NCSN v1의 나머지 부분과 실험 및 저자들의 insight를 따라가 본다.
 



Improved Techniques for Training Score-Based Generative Models 논문의 이해 - 1

앞 글 1, 2에서 score-based model에 대한 계산들을 살펴보았다.
본 글에서는 improved techniques for training score-based generative models 논문에 대한 계산과 결과들을 살펴본다.
 

Langevin dynamics

Score-based model은 단순히 noise를 추가하는 것이 아니라 다음과 같은 iterative Langevin dynamics의 inference 과정을 따른다.
$$
x_t\leftarrow x_{t-1} + \alpha\nabla_x\log p(x_{t-1}) + \sqrt{2\alpha}z_t
$$
for \(1\leq t\leq T\). 이 때 \(z_t\)는 표준 다변량 정규분포를 따르는 noise term이다. 하지만 앞선 글에서 살펴보았듯 \(\nabla_x\log p(x_{t-1})\)을 알기는 불가능하므로 우리는 학습된 score model \(s_{\theta}(x)\)를 사용하여 이를 근사한다. 즉 실제로 사용하게 되는 Langevin dynamics는 다음과 같은 형태이다:
$$
x_t\leftarrow x_{t-1} + \alpha s_{\theta}(x) + \sqrt{2\alpha}z_t
$$
이 과정은 \(\log p(x)\)라는 log-density를 찾아가는 noisy gradient ascent로 해석될 수도 있다.



Score-based generative modeling

Initial Noise Scale

데이터셋 \(\{x^{(1)}, x^{(2)}, \cdots,x^{(N)}\}\)이 있다고 하고 이들은 \(p_{data}(x)\)라는 분포에서 iid로 샘플링되었다고 가정하자. N이 충분히 크고, 우리가 다음의 근사를 할 수 있다고 하자:
$$
p_{data}(x)\approx\hat{p}_{data}(x):=\frac{1}{N}\sum_{i=1}^N\delta(x=x^{(i)})
$$
이 때 \(\delta\)는 Dirac measure (다른 말로는 point mass distribution)이다. 이 데이터가 \(\mathcal{N}(0,\sigma_1^2I)\)로 pertubation되었다면 이 경험적 분포인 \(\hat{p}_{data}\)를  다음의 정의처럼 수정하는 것이 가능하다:
$$
\hat{p}_{\sigma_1}:=\frac{1}{N}\sum_{i=1}^Np^{(i)}(x)
$$
이 때 \(p^{(i)}(x):=\mathcal{N}(x|x^{(i)},\sigma_1^2I)\)로 정의한다. 즉, 각 데이터들에 perturbation을 거는 것을 의미한다. 결국 우리가 사용할 것은 \(\hat{p}_{\sigma_1}\)이므로 inference시의 Langevin dynamics는 score function \(\nabla_x\log\hat{p}_{\sigma_1}(x)\)에 의존한다.


Proposition 1

위의 정의들에 더불어, \(r^{(i)}(x):=\frac{p^{(i)}(x)}{\sum_{k=1}^Np^{(k)}(x)}\)로 정의하자. 그러면 자연스레 score function은
$$
\nabla_x\log\hat{p}_{\sigma_1}(x) = \sum_{i=1}^Nr^{(i)}(x)\nabla_x\log p^{(i)}(x)
$$
이 된다. 더 나아가서,
$$
\begin{align}\mathbb{E}_{p^{(i)}(x)}[r^{(j)}(x)]&=\int\frac{p^{(i)}(x)p^{(j)}(x)}{\sum_{k=1}^Np^{(k)}(x)}dx\nonumber\\
&\leq\int\frac{p^{(i)}(x)p^{(j)}(x)}{p^{(i)}(x)+p^{(j)}(x)}dx\nonumber\\
&=\frac{1}{2}\int\frac{2}{\frac{1}{p^{(i)}(x)}+\frac{1}{p^{(j)}(x)}}\\
&\leq\frac{1}{2}\int\sqrt{p^{(i)}(x)p^{(j)}(x)}\\
&=\frac{1}{2}\frac{1}{(2\pi\sigma_1^2)^{D/2}}\int\exp\bigg(-\frac{1}{4\sigma_1^2}\bigg(\bigg\|x-x^{(i)}\bigg\|^2+\bigg\|x-x^{(j)}\bigg\|^2\bigg)\bigg)dx\nonumber\\
&=\frac{1}{2}\frac{1}{(2\pi\sigma_1^2)^{D/2}}\int\exp\bigg(-\frac{1}{4\sigma_1^2}\bigg(\bigg\|x-x^{(i)}\bigg\|^2+\bigg\|x-x^{(i)}+x^{(i)}-x^{(j)}\bigg\|^2\bigg)\bigg)dx\nonumber\\
&=\frac{1}{2}\frac{1}{(2\pi\sigma_1^2)^{D/2}}\int\exp\bigg\{-\frac{1}{2\sigma_1^2}\bigg(\bigg\|x-x^{(i)}\bigg\|^2+(x-x^{(i)})^T(x^{(i)}-x^{(j)})+\frac{\big\|x^{(i)}-x^{(j)}\big\|^2}{2}\bigg)\bigg\}\nonumber\\
&=\frac{1}{2}\frac{1}{(2\pi\sigma_1^2)^{D/2}}\int\exp\bigg(-\frac{1}{2\sigma_1^2}\bigg(\bigg\|x-x^{(i)}+\frac{x^{(i)}-x^{(j)}}{2}\bigg\|^2+\frac{\big\|x^{(i)}-x^{(j)}\big\|^2}{4}\bigg)\bigg\}dx\nonumber\\&=\frac{1}{2}\exp\bigg(-\frac{\big\|x^{(i)}-x^{(j)}\big\|}{8\sigma_1^2}\bigg)\frac{1}{(2\pi\sigma_1^2)^{D/2}}\int\exp\bigg\{-\frac{1}{2\sigma_1^2}\bigg\|x-x^{(i)}+\frac{x^{(i)}-x^{(j)}}{2}\bigg\|^2\bigg)\bigg\}dx\nonumber\\&=\frac{1}{2}\exp\bigg(-\frac{\|x^{(i)}-x^{(j)}\|^2}{8\sigma_1^2}\bigg)\nonumber\end{align}
$$
이 때 \((1)\)에서 \((2)\)로 넘어가는 과정에서 기하-조화평균(geometric mean-harmonic mean) 부등식이 쓰였다. 따라서 이를 정리하면
$$
\begin{equation}\mathbb{E}_{p^{(i)}(x)}[r^{(j)}(x)]\leq\frac{1}{2}\exp\bigg(-\frac{\|x^{(i)}-x^{(j)}\|^2}{8\sigma_1^2}\bigg)\end{equation}
$$
을 만족한다.
이로부터 우리가 얻는 교훈 첫 번쨰.


Technique 1

Sample들의 모든 조합 중에서 maximum distance만큼 \(\sigma_1\)을 선택하자. 그러면 \((3)\)의 좌변이 maximize되므로 generated image의 diversity가 커지게 된다.


Other Noise Scales

\(\sigma_L\)과 \(\sigma_1\)을 정한 다음 그 사이의 noise scale들을 정의해야 할 필요가 있다. 이들을 \(\{\sigma_i\}_{i=1}^L\)로 쓰자. 이들을 찾는 과정에서, grid search로 noise를 찾는 것은 매우 비용이 많이 든다. 따라서 두 번쨰 목표는 noise scale을 찾는 것이다. 먼저 상황을 단순화하기 위해서 데이터가 딱 하나 뿐이라고 하자. 즉, 모든 \(\forall1\leq i\leq L\)에 대해서 \(p_{\sigma_{i}}(x)=\mathcal{N}(x|0,\sigma_i^2I)\)라고 하는 것이다. 이를 잘 이해하기 위해서 \(p_{\sigma_{i}}(x)\)를 초구(hyperspherical) 좌표계로 변환하자. 이는 \(p(\phi)p_{\sigma_i}(r)\)이 된다. \(p_{\sigma_{i}}(x)\)가 등방성(isotropic) 가우시안 분포이기 때문에 각도에 관한 항인 \(p(\phi)\)는 균질하고 모든 noise scale에 대해서 공유된다. 따라서 여기에 대해서는 할 말이 별로 없고 우리가 관심을 가져야 하는 것은 \(p_{\sigma_{i}}(r)\)이고 \(x\sim\mathcal{N}(0,\sigma^2I)\)이고 \(r=\|x\|_2\)라고 한다면 \(\chi^2\)-분포의 정의에 따라 \(s:=\|x\|_2^2/\sigma^2\sim\chi^2_D\)이게 된다. 따라서
$$
p(r) = \frac{1}{2^{D/2}\Gamma(D/2)}s^{D/2}e^{-s/2}
$$
를 얻고 \(r=\|x\|_2=\sigma\sqrt{s}\)라는 변수변환(change of variables)를 통해
$$
\begin{align*}p(r)&=\frac{1}{\frac{\partial r}{\partial s}}\cdot p(s)\\
&=\frac{1}{\frac{\sigma}{2\sqrt{s}}}\cdot p(s)\\
&=\frac{2\sqrt{s}}{\sigma}\cdot p(s)\\
&=\frac{2\sigma\sqrt{s}}{\sigma^2}p(s)\\
&=\frac{2r}{\sigma^2}p(s)\end{align*}
$$
이므로
$$
p(r)=\frac{2r}{\sigma^2}p_s(s)=\frac{2r}{\sigma^2}p_s\bigg(\frac{r^2}{s^2}\bigg)=\frac{1}{2^{D/2-1}\Gamma(D/2)}\frac{r^{D-1}}{\sigma^D}\exp\bigg(-\frac{r^2}{2\sigma^2}\bigg)
$$
을 얻게 된다. 또한 \(x\sim\mathcal{N}(0,\sigma^2I)\)이므로 \(x^2/\sigma^2\sim\chi_1^2\)이고 따라서 \(\mathbb{E}[x^2]=\sigma^2\), \(\text{Var}[x^2]=2\sigma^4\)이다. 결국 \(x_1,\cdots,x_D\sim\mathcal{N}(0,\sigma^2)\)인 iid sample이라면 중심극한정리에 의해 \(D\to\infty\)인 경우
$$
\frac{x_1^2+\cdots+x_D^2}{D}\xrightarrow{p}\sigma^2
$$

$$
\sqrt{D}\bigg(\frac{x_1^2+\cdots+x_D^2}{D}-\sigma^2\bigg)\xrightarrow{d}\mathcal{N}(0,2\sigma^4)
$$
가 동시에 성립한다. 이는 다음과 동치이다:
$$
\sqrt{D}\bigg(\frac{r^2}{D}-\sigma^2\bigg)\xrightarrow{d}\mathcal{N}(0,2\sigma^4)
$$
Delta method를 적용하면
$$
\sqrt{D}\bigg(\frac{r}{\sqrt{D}}-\sigma\bigg)\xrightarrow{d}\mathcal{N}(0,\sigma^2/2)
$$
가 되고 이는

라는 말과 동치이다. 위 내용을 정리하자.


Proposition 2.

위 가정과 표기법에 따르면
$$
p(r) = \frac{1}{2^{D/2-1}\Gamma(D/2)}\frac{r^{D-1}}{\sigma^D}\exp\bigg(-\frac{r^2}{2\sigma^2}\bigg)\quad\text{and}\quad r-\sqrt{D}\sigma\xrightarrow{d}\mathcal{N}(0,\sigma^2/2)\text{ when }D\to\infty
$$
이다.
논의의 편의를 위해 \(m_i:=\sqrt{D}\sigma\), \(s_i^2=\sigma^2/2\)로 정의하자. 앞선 상황에서 각도 \(p(\varphi)\)는 등방성이었으므로 걱정할 필요가 없고, 우리가 신경 써야 할 부분은 \(p_{\sigma_i}(x)\)와 \(p_{\sigma_{i-1}}(x)\)가 크게 overlap되는 것 뿐이다. \(\mathcal{I}_{i-1}:=[m_{i-1}-3s_{i-1}, m_{i-1}+3s_{i+1}]\) 정도로 구간을 넓게 잡으면, noise scale들이 \(p_{\sigma_i}(r\in\mathcal{I}_{i-1})=\Phi(\sqrt{2D}(\gamma_i-1)+3\gamma_i)-\Phi(\sqrt{2D}(\gamma_i-1)-3\gamma_i)=C\)가 되므로 \(\gamma_i:=\sigma_{i-1}/\sigma_i\)에 대해 \(C\)가 적당히 크다면 충분히 overlap 된다. (단, \(\Phi\)는 Gaussian의 cdf.) 따라서 \(\gamma_2=\gamma_3=\cdots=\gamma_L\)이고 \(\{\sigma_i\}_{i=1}^L\)은 기하수열이 된다.
실제로 우리는 noise scale을 충분히 많이 잡아서 \(C\approx1\)이 되기를 원한다. 하지만 이는 비용적 측면에서 너무 비싸고, \(C\approx0\)은 너무 작다는 실험적 결론을 얻을 수 있었다. 따라서 여기에서 두 번째 교훈.


Technique 2.

\(\{\sigma_{i}\}_{i=1}^L\)들을 기하수열로 잡는데, 공비가 \(\gamma\)인 기하수열로 잡되, \(\gamma\)는 \(\Phi(\sqrt{2D}(\gamma-1)+3\gamma)-\Phi(\sqrt{2D}(\gamma-1)-3\gamma)=0.5\)가 되도록 잡는다.


(이어서 계속)

#AI

#AI-Study

#Deep-learning

#SBGM

#Score-based model

#Corelinesoft

#Coreline AI

Contact

제품, 인재 채용, 투자 관련 또는 기타 문의사항이 있으신 경우 편하신 방법으로 연락주시기 바랍니다

문의하기