Review

Denoising Diffusion Probabilistic Model이란 무엇일까? (2)

2024-04-23
2024-04-23
등록일AI&영상처리개발팀
Denoising-Diffusion-Probabilistic-Model이란-무엇일까-2


 summary 
이미지 생성 인공지능의 새로운 지평을 연 DDPM을 꼼꼼하게 접근해본다.
 



 

Denoising Diffusion Probabilistic Model에 대한 이해 - 2


Bayes’ rule을 사용하면

 

\(q(x_{t-1}|x_t,x_0)=\frac{q(x_{t-1},x_t,x_0)}{q(x_t,x_0)}=\frac{q(x_t|x_{t-1},x_0)q(x_{t-1}|x_0)}{q(x_t|x_0)}\)

 

이 된다. 이는

 

\(\begin{align*} q(x_{t-1}|x_t,x_0)&=\frac{q(x_t|x_{t-1},x_0)q(x_{t-1}|x_0)}{q(x_t|x_0)}\\ &\propto\exp\bigg(-\frac{1}{2}\bigg(\frac{(x_t-\sqrt{\alpha_t}x_{t-1})^2}{\beta_t} + \frac{(x_{t-1}-\sqrt{\overline{\alpha}_{t-1}}x_0)^2}{1-\overline{\alpha}_{t-1}} - \frac{(x_t-\sqrt{\overline{\alpha}_t}x_0)^2}{1-\overline{\alpha}_t}\bigg)\bigg)\\ &=\exp\bigg(-\frac{1}{2}\bigg(\big(\frac{\alpha_t}{\beta_t}+\frac{1}{1-\overline{\alpha}_{t-1}}\big)x_{t-1}^2-\big(\frac{2\sqrt{\alpha_t}}{\beta_t}x_t+\frac{2\sqrt{\overline{\alpha}_{t-1}}}{1-\overline{\alpha}_{t-1}}x_0\big)x_{t-1}+C\bigg) \end{align*}\)

 

이다. 이 때 \(C \)는 \(x_{t-1}\)을 포함하지 않는 상수 항이다. 이로부터

 

\(\widetilde{\beta}_t=\frac{1}{\frac{\alpha_t}{\beta_t}+\frac{1}{1-\overline{\alpha}_{t-1}}}=\frac{1-\overline{\alpha}_{t-1}}{{1-\overline{\alpha}_t}}\cdot\beta_t\)

 

 

\(\begin{align*}\widetilde{\mu}_t(x_t,x_0) &= \big(\frac{\sqrt{\alpha}_t}{\beta_t}x_t+\frac{\sqrt{\overline{\alpha}_{t-1}}}{1-\overline{\alpha}_{t-1}}x_0\big)/\big(\frac{\alpha_t}{\beta_t}+\frac{1}{1-\overline{\alpha}_{t-1}}\big)\\ &=\frac{\sqrt{\alpha_t}(1-\overline{\alpha}_{t-1})}{1-\overline{\alpha}_t}x_t+\frac{\sqrt{\overline{\alpha}_{t-1}}\beta_t}{1-\overline{\alpha}_t}x_0\end{align*}\)

 

를 얻는다.

 

Forward Process

Forward process는 reparameterization을 통해 학습할 수 있지만 저자들은 \(\beta_t\)를 상수로 놓고 실험을 진행했다.

 

Reverse Process

\(L_{1:T-1}\)로 정의되는 reverse process는 \(p_{\theta}(x_{t-1}|x_t)=\mathcal{N}(x_{t-1};\mu_{\theta}(x_t,t),\Sigma_{\theta}(x_t,t))\)로 정의되는 것을 앞에서 살펴보았다.

\(\Sigma_{\theta}(x_t,t)=\sigma_t^2I\)로 정의하여 학습을 시작하였다.

실험적으로 \(\sigma_t^2=\beta_t\)\(\sigma_t^2=\widetilde{\beta}_t=\frac{1-\overline{\alpha}_{t-1}}{{1-\overline{\alpha}_t}}\cdot\beta_t\)는 비슷한 성능을 보였다고 한다.

전자는 \(x_0\sim\mathcal{N}(0,I)\)에 대해 가장 좋은 성능을 보였고, 후자는 \(x_0\)이 한 점으로 정의된 것에 대해서 가장 좋은 성능을 보였다고 한다.

다음으로 평균 \(\mu_{\theta}(x_t,t)\)를 얻기 위하여 \(x = {-b \pm \sqrt{b^2-4ac} \over 2a}p_{\theta}(x_{t-1}|x_t)=\mathcal{N}(x_{t-1};\mu_{\theta}(x_t,t),\sigma_t^2I)\)에 대하여

 

\(L_{t-1}=\mathbb{E}_q\bigg[\frac{1}{2\sigma_t^2}\|\widetilde{\mu}_t(x_t,x_0)-\mu_{\theta}(x_t,t)\|^2\bigg]+C\)

 

라는 closed form을 loss term으로 두었다. 이를 정리하면

 

\(L_{t-1}=\mathbb{E}_{x_0,\epsilon}\bigg[\frac{1}{2\sigma_t^2}\bigg\|\frac{1}{\sqrt{\alpha_t}}\bigg(x_t(x_0,\epsilon)-\frac{\beta_t}{\sqrt{1-\overline{\alpha_t}}}\epsilon\bigg)-\mu_{\theta}(x_t(x_0,\epsilon),t)\bigg\|^2\bigg]+C \)

 

가 된다.

이 때 \(x_t(x_0,\epsilon)=\sqrt{\overline{\alpha}_t}x_0+\sqrt{1-\overline{\alpha}_t}\epsilon\)이고 \(\epsilon\sim\mathcal{N}(0,I)\)를 따른다.

이는 \(\mu_{\theta}\)\(\frac{1}{\sqrt{\alpha}_t}(x_t-\frac{\beta_t}{\sqrt{1-\overline{\alpha}_t}}\epsilon)\)를 예측해야 한다는 것을 의미한다.

\(x_t\)가 model의 input으로 들어가므로, 다음과 같은 parametrization이 가능하다:

 

\(\mu_{\theta}(x_t,t)=\tilde{\mu}_t\bigg(x_t,\frac{1}{\sqrt{\overline{\alpha}}_t}(x_t-\sqrt{1-\overline{\alpha}_t}\epsilon_{\theta}(x_t))\bigg)=\frac{1}{\sqrt{\alpha}_t}\bigg(x_t-\frac{\beta_t}{\sqrt{1-\overline{\alpha}_t}}\epsilon_{\theta}(x_t,t)\bigg)\)

 

이들을 정리하면

 

\(\mathbb{E}_{x_0,\epsilon}\bigg[\frac{\beta_t^2}{2\sigma_t^2\alpha_t(1-\overline{\alpha}_t)}\|\epsilon-\epsilon_{\theta}(\sqrt{\overline{\alpha}_t}x_0+\sqrt{1-\overline{\alpha}_t}\epsilon, t)\|^2\bigg]\)

 

가 loss가 된다.

 

Data scaling, reverse process, and loss

데이터는 \([-1,1]\)사이에 위치한다고 가정하자.

Discrete log likelihood를 얻기 위해서 저자들은 reverse process를 다음처럼 정의하였다:

 

\(p_{\theta}(x_0|x_1)=\prod_{i=1}^D\int_{\delta_-(x^i_0)}^{\delta_+(x_0^i)}\mathcal{N}(x;\mu_{\theta}^i(x_1,1)\sigma_1^2)dx\)

\(\delta_+(x)=\begin{cases}\infty&\text{if }x=1\\x+\frac{1}{255}&\text{if }x<1\end{cases}\quad\delta_-(x)=\begin{cases}-\infty&\text{if }x=-1\\x-255&\text{if }x>-1\end{cases}\)

 

이 때 \(D\)는 data dimension이고 \(i\)\(D\)차원 데이터의 \(i\)번째 coordinate를 의미한다.

또한 저자들은 loss의 구현 및 sample quality를 다음처럼 간소화된 loss로 정의하는 것이 더 좋다는 것을 발견하였다:

 

\(\mathbb{E}_{t,x_0,\epsilon}\bigg[\|\epsilon-\epsilon_{\theta}(\sqrt{\overline{\alpha}_t}x_0+\sqrt{1-\overline{\alpha}_t}\epsilon, t)\|^2\bigg]\)

 

Experiments

이렇게 해서 탄생한 DDPM을 학습한 결과는 다음과 같다:
 


 

또한 pixel-space에서의 interpolation은 다음과 같이 잘 작동함을 증명하였다:
 


 

이렇게 이미지 생성 모델에 있어서 큰 반향을 몰고 왔던 DDPM을 살펴보았다. 현재까지도 DDPM은 그 원리와 개선 모델들이 지속적으로 나오고 있는 큰 연구 분야로, 의료 영상에의 적절한 사용처도 기대해봄직하다.

#AI

#AI-Study

#Deep-learning

#Denoising-Diffusion-Probabilistic-Model

#Diffusion Model

#Corelinesoft

#Coreline AI

Contact

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

문의하기