z Subspace Diffusion Generative Models 설명
본문 바로가기

Generative Model

Subspace Diffusion Generative Models 설명

728x90

 

 

Abstract

 

Score based model은 최근 굉장히 좋은 성능을 보이는 생성 모델입니다. 하지만 굉장히 고차원에서 훈련 및 샘플링이 진행되기 때문에 굉장히 느립니다.

이와 같이 high dimension에서 진행하기보다 subspace으로 projection하여 필요한 부분에 대해서만 sampling을 진행하게 된다면 더 좋은 효율을 보일 수 있을 것입니다.

 

Introduction

 

이미지는 보통 low dimensional information이 굉장히 큰 비중을 차지하고 세밀한 부분에 대해서는 high dimensional information이 관여합니다.

(SVD를 통한 이미지 분해라던지, DDPM과 같은 score based model에서의 sampling 과정을 살펴보면 알 수 있습니다.)

 

그렇다면 굳이 매번 high dimensional information을 가지고 sampling을 진행할 필요가 없음을 짐작할 수 있습니다.

이와 같이 high dimensional information을 가지고 훈련, 샘플링을 하게 되면 여러 문제가 생기게됩니다.

 

 

1. High dimensional extrapolation.

 

기존의 manifold 가설과 같이 보통 데이터 분포는 low dimensional distribution으로 이루어져있게 됩니다. 만약 high dimensional space (entire support) 에서 score function을 훈련하게 되면 대다수의 support는 훈련에 관여하지 않게 됩니다.

 

이와 같은 support에서는 score function의 uncertain extrapolation abilities가 요구되게 됩니다.

이런 요인 없이 low dimensional score function을 사용하게 된다면 더 안정적이고 좋은 성능을 낼 수 있을 것 입니다.

 

 

2. Computational cost

 

 

3. Subspace diffusion model

 

보통 data들은 선형부분 공간의 주변에 위치하게 됩니다. 즉 "주성분"이라고 할 수 있는 것들은 선형 부분공간에 보통 위치하게 될거고, 해당 선형 부분공간의 complement에는 다른 정보들이 위치하게 될 것입니다.

 

즉, 선형 부분공간에 직교하는 공간에 대한 성분은 isotropic forward diffusion process에서 더 빨리 Gaussian noise 형태가 될 것 입니다.

 

때문에 먼저 더 빨리 Guassian noise 형태가 된다면 이후부터는 high dimensional information은 사용하지 않아도 되고, subspace에 해당하는 low dimensional information만 사용하면 됩니다.

 

샘플링 시, lower noise level(실제 사진에 가까운 샘플)에서는 full dimensional network를 사용하고 higher noise level(노이즈에 가까운 샘플)에서는 subspace network를 사용합니다. (나중에 언급하겠지만 하나의 모델로만 사용한다.)

 

뒤에 설명하기 앞서 중요한 지식이 하나 있는데, 이는 subspace를 어떻게 볼 것인지에 대한 것입니다.
보통 이미지의 global structure는 lower frequency에 대해 지배됩니다. 즉, adjacent pixels 값들은 매우 연관이 깊습니다.
그리고 다시 말하면, lower dimensional image는 subspace에 가까이 위치한다고 생각 할 수 있습니다.

 

 

Background

Score based models (SDE)

Forward Process

Reverse Process

Subspace Diffusion

 

앞서 말했듯이, isotropic한 process를 갖기 때문에 Score based model을 통한 process 요소를 아래와 같이 표현할 수 있습니다.

 

처음 시작할 때는 full space에서 시작하게 됩니다. forward diffusion의 경우 완성된 이미지를 destroy 시켜나가는 과정입니다. 때문에 high dimensional information 부터 destroy 해나가는 것입니다.

 

그리고 시간이 지남에 따라 smaller subspace로 제한하면 됩니다.

 

istropic forward diffusion은 subspace diffusion으로 변환될 수 있습니다.

 

\((0,T)\) 범위의 K+1개의 interval을 생각해봅시다. \((t_0, t_1), ..., (t_K, t_K+1)\) (표기상 편리를 위해 \(t_0 = 0, t_{K+1} = T\))

 

그렇다면 orthonormal columns로 이루어진 \(U_k\)를 사용하여 위와같은 식을 도출할 수 있습니다.

단, \(U_k \in R^{d\times n_k} \), \(n_k \leq d\) -> \(R^d\)의 subspace를 span하는 것이라 생각할 수 있습니다.

 

위의 \(U_k\)를 사용한 subspace를 k-th subspace라고 부르고, 이 columns는 k-th subspace의 basis라고 합시다.

 

\(U_j U_j^TU_k = U_k\)인 점을 응용하여 점진적으로 더 작은 subspace를 정의할 것입니다. \(t_k, t_{k+1}\) interval에서 U_k를 통해.

 

 

뒷항이 0으로 떨어지기 때문에 위와 같이 /(f(x,t)/)를 정의할 수 있습니다.

 

 

그리고 map의 관점에서 complement는 위와 같은 관계를 갖습니다.

즉, 위 \(f(x,t)\) 식 중, 마지막 부분인 \((U_kU_k^T - I_d)\)를 \(-(I_d - U_kU_k^T)\)로 본다면, k-th subspace의 complement에 해당하는 요소를 뺀다고 생각할 수 있습니다.

 

 

 

지금까지의 내용을 잘 보여주는 figure입니다.

 

처음에 완전한 image는 full space에 대해 forward diffusion process를 진행하다가보면, subspace에 대한 complement 요소는 사라지게 됩니다.

그리고 subspace에 해당하는 요소는 계속 훈련에 참여하게 됩니다.

(어느 순간을 기점으로는 subspace 해당 요소만..)

 

Notation

 

 

Score Matching

 

이제 score를 훈련할 때 어떻게 해야하는지 생각해야합니다.

 

subspace \(k\)에 대해 사영되는 시점을 \(t_k\)라고 했을 때 \((t_k < t < t_{k+1})\)의 time interval에 대해 생각해봅시다.

 

이 경우에서의 \(p(x,t)\)에 대한 support는 k-th subspace입니다. 즉, subspace 기준 \(t_k\)에 따라 다른 모델을 훈련해야합니다.

 

근데 훈련은 어떻게 진행되어야할까요?

 

k-th subspace에 대한 dimension은 \(n_k\)일 것입니다. 그리고 이는 해당 subspace에 대한 orthonormal matrix \(U_k\)를 사용하여 \(dx_1 = U_k^T dx \) 이런 관계를 나타낼 수 있을 것입니다.

 

이제 지금까지 설명한 바를 K=1 이라는 조건에서 생각해봅시다. (subspace가 1개만 존재하는 경우.)

이를 기존 full space의 SDE 식에 집어 넣어 전개해보면,

 

 

위와 같이 결과가 나오게 됩니다.

 

즉, full space와 동일한 SDE 식을 띔을 알 수 있습니다. (\(dw_1 = U_1^Tdw\) Brownian diffusion in \(R^n_1\))

 

subspace에서의 perturbation kernel \(p(x_1(t) | x_1(0))\)은 full space와 동일한 형태를 띕니다.

 

 

Sampling

 

Sampling 시에는 reverse step를 조심스럽게 생각해야합니다. boundary time \(t_k\)에 대해서 그 다음 projection step을 고려해줘야하기 때문입니다. boundary time \(t_k\)에서 space를 \(k-1\)번째 subspace로 옮겨줘야합니다.

(더 높은 차원!)

 

이를 위해 k번쨰 subspace에 orthogonal한 isotropic gaussian noise를 주입해주면 됩니다.

(diffusion process에 있어서 orthogonal한 부분이 isotropic gaussian noise를 통해 먼저 destroy 되었듯이, reverse 과정에서도 해당 subspace에 대해 어느정도 reverse diffusion process를 거쳤다면 해당 subspace에 대해 orthogonal한 isotropic gaussian nosie를 주입해주면 됩니다.)

 

이와 같이 orthogonal 한 noise를  \(x^\bot_{k|k-1}\)이라고 합니다.

 

이런 isotropic gaussian noise를 주입하기 위해서 isotropic한 variance를 알아야합니다. (Gaussian nosie의 파라미터)

 

 

 

variance는 위와 같은 형태를 띕니다.

제 생각엔, time이 0일 때 어쨌든 isotropic한 forward diffusion process를 거쳐 time \(t_k\)에서의 샘플이 만들어 질텐데, 이러한 과정은 affine한 형태를 띈 수식들로 이루어집니다. 즉, variance식에 affine한 수식을 그대로 집어넣어서 유도된 결과가 아닐까 싶습니다.

 

지금까지의 설명에 대한 알고리즘입니다.

 

위 알고리즘에서 유의해서 봐야할 점은, \(P^\bot_{k|k-1}\)의 등장입니다. 본 operator는 kth subspace에 직교하는 공간에 투영하게 하는 projection operator를 k-1th subspace의 basis로 표현한 것입니다. 즉, 단순히, gaussian noise를 추출하게 되면 \(R^{n_{k-1}}\)의 모든 공간에 대해 정보를 갖게 되는데 이 정보들을 kth subspace에 직교하는 공간에 모두 투영시키는 것을 의미합니다. (k-1 th subspace basis로 표현됨.)

 

그리고 \(U_{k|k-1}x_k + x^\bot_{k|k-1}\)의 표현에 의해 k-th subspace에 해당하는 sample \(x_{k}\)가 k-1th subspace로 이동하게 됩니다.

 

논문에서 이부분에 대한 언급 후, 어떤 특정 상황에 대해서 다르게 표현하는 방법을 이야기하는데 이에 대해서는 이해를 잘 못했기 때문에 나중에 다시 수정하도록 하겠습니다 ㅜ

 

Image Subspaces

이제 데이터 형태를 image라고 제한을 두고 생각해봅시다. 이미지의 특성 상 인접한 픽셀끼리는 깊게 연관되어있고 비슷한 값을 갖습니다.

 

즉, 위에서 언급했듯이, image의 downsampled version을 subspace라고 대응시킬 수 있을 것입니다.

 

그리고 reverse에서 더 높은 차원의 subspace로 투영시키는 과정을 upsample이라고 대응 시킬 수 있습니다.

 

논문에서는 정확한 subspace의 계산을 위해 resolution이 2의 power를 갖는다고 가정합니다.

 

 

그리고 여기에서의 downsampling은 위의 수식과 같은 avg pooling 형식입니다.

 

물론 이러한 subspace에 대한 더 바람직한 method는 더 존재할 수 있습니다. (PCA, Patch-PCA ...)

이에 대한 성능은 아래와 같습니다.

 

RMSD : Root mean square distance

Patch PCA에 대한 설명은 Appendix A.

 

 

 

 

728x90