Review

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

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


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



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

앞 글에 이어서, improved techniques for training score-based generative models 논문을 계속 살펴보기로 한다.

 

Incorporating the noise information

고화질 이미지들에 대해서, 저자들은 앞 글에서의 technique 1과 2를 통해 큰 \( \sigma_1 \)​을 잡고 다양한 noise scale에 대해서 학습을 하는 것을 추천했다. 원래 NCSN 논문에서 저자들은 각 noise scale을 다루기 위해 scale의 separate set과 bias의 separate scale을 통해 접근하였다.
하지만 이 방식은 \( L\)에 대해 메모리가 선형적으로 증가하고 NCSN이 normalization layer이 없으면 작동하지 않는다. NCSN 본 논문에 나온 것처럼, 저자들이 실험적으로 관찰한 것은
 

\( \|s_{\sigma}(x,\sigma)\|_2\propto1/\sigma\)
 

라는 것이다. 따라서 저자들은 NCSN을 \( 1/\sigma\)로 나눠줄 것을 제안한다.

 

Technique 3

NCSN을 다음처럼 정규화하는 것을 추천한다:
 

\( s_{\theta}(x,\sigma)=s_{\sigma}(x)/\sigma\)
 

이 때 \( s_{\theta}(x)\)는 unconditioned score network이다.

 

Configuring annealed Langevin dynamics

NCSN을 annealed Langevin dynamics로 샘플링하기 위해서는 noise scale \(T\)마다 sampling의 수를 정해야 하고 step size parameter \( \epsilon \)을 정해야 한다. 원래 NCSN의 논문에서는 \( \epsilon=2\times10^{-5}\)이고 \( T=100\)이어야 하는데, 다른 noise scale에서는 이를 어떻게 정해야 하는지 불명확하다.

이를 이론적으로 접근하기 위해서, 다시 한 번 앞 글에서처럼 \( p_{\sigma_{i}}(x)=\mathcal{N}(x|0,\sigma_{i}^{2}I)\)로 데이터셋이 한 점만으로 구성되어 있다고 가정한다.

Langevin dynamics가 다음처럼 구성된다는 것을 다시 상기하자.
 

\( x_{t+1}\leftarrow x_t+\alpha\nabla_{x}\log p_{\sigma_{i}}(x_t)+\sqrt{2\alpha}z_t\)

 

이 때 \( x_0\sim p_{\sigma_{i}}(x)\)이고 \( z_t\sim\mathcal{N}(0,I)\)이다. 다행히도, \( x_T\)​의 분포는 closed form으로 표현이 가능하다.

조건들로부터, 다음이 성립한다:
 

\( x_0\sim p_{\sigma_{i-1}}(x)=\mathcal{N}(0,\sigma_{i-1}^{2}I)\)
 

\( x_{t+1}\leftarrow x_t+\alpha\nabla_{x}\log p_{\sigma_{i}}(x_t)+\sqrt{2\alpha}z_t=x_{t}-\alpha\frac{x_{t}}{\sigma_{i}^{2}}+\sqrt{2\alpha}z_{t}\)
 

따라서 \( x_{t}\)​의 variance는 다음을 만족한다:
 

\( \text{Var}[x_{t}]=\begin{cases}\sigma_{i-1}^{2}I&\text{if }t=0\\ \bigg(1-\frac{\alpha}{\sigma_{i}^{2}}\bigg)^2\text{Var}[x_{t-1}]+2\alpha I&\text{otherwise}\end{cases}\)
 

이제
 

\( v:=\frac{2\alpha}{1-(1-\frac{\alpha}{\sigma_{i}})^2}I\)


라고 하면
 

\( \text{Var}[x_{t}]-v= \bigg(1-\frac{\alpha}{\sigma_{i}^{2}}\bigg)^2(\text{Var}[x_{t-1}]-v)\)


가 성립한다. 따라서
 

\( \begin{align*}&\text{Var}[x_{t}]-v= \bigg(1-\frac{\alpha}{\sigma_{i}^{2T}}\bigg)^2(\text{Var}[x_{0}]-v)\\ \Rightarrow&\text{Var}[x_{t}]= \bigg(1-\frac{\alpha}{\sigma_{i}^{2T}}\bigg)^2(\text{Var}[x_{0}]-v)+v\\ \Rightarrow&s_{T}^{2}=\bigg(1-\frac{\varepsilon}{\sigma_{i}^{2}}\bigg)^{2T}\bigg(\sigma_{i-1}^{2}-\frac{2\epsilon}{1-(1-\frac{\alpha}{\sigma_{i}^{2}})^2}\bigg)+\frac{2\alpha}{1-(1-\frac{\alpha}{\sigma_{i}^{2}})^2}\end{align*}\)
 

이 된다. 이제 \( \alpha\)\( \epsilon\sigma_{i}^{2}/\sigma_{L}^{2}\)으로 바꾸면,

 

Proposition 3.

\( \gamma=\sigma_{i-1}/\sigma_{i}\)라고 하자. \( \alpha=\epsilon\cdot\frac{\sigma_{i}^{2}}{\sigma_{L}^{2}}\)일 때, \( x_T\)​는 다음 분포를 따른다: \( x_T\sim\mathcal{N}(0,s_{T}^{2}I)\). 이 때

 

\( \frac{s_{T}^{2}}{\sigma_{i}^{2}}=\bigg(1-\frac{\varepsilon}{\sigma_{L}^{2}}\bigg)^{2T}\bigg(\gamma^{2}-\frac{2\epsilon}{\sigma_{L}^{2}-\sigma_{L}^{2}(1-\frac{\epsilon}{\sigma_{L}^{2}})^2}\bigg)+\frac{2\epsilon}{\sigma_{L}^{2}-\sigma_{L}^{2}(1-\frac{\epsilon}{\sigma_{L}^{2}})^2}\)


이다.

을 얻는다.

 

Technique 4.

\( T\)를 가용한 자원 내에서 크게 잡고 \( \epsilon\)을 위 Proposition의 식이 가능한 1이 되도록 잡는다.

 

Improving stability with moving average

Training의 stability를 높이기 위해서 저자들은 실험적으로 NCSN이 artifact를 보임에 주목했고, 이를 해결하기 위해 \( m=0.999\)정도로 둔 다음 parameter update를 \(\theta'\leftarrow m\theta' + (1-m)\theta_i\)로 업데이트 하는 moving average를 둠으로 해결하였다.

 

Technique 5.

위 방식처럼 parameter를 moving average를 통해 update한다.

 

Results

저자들은 다양한 실험을 통해 위 테크닉들이 효과적임을 증명하였고 결과를 간략하게 살펴보면,
 



NCSN의 결과보다 NCSN v2의 결과가 더 다양하고 양질인 것을 알 수 있다.

#AI

#AI-Study

#Deep-learning

#SBGM

#Score-based model

#Corelinesoft

#Coreline AI

Contact

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

문의하기