data에 임의의 noise를 더해주는 forward process와 noise를 제거하는 reverse process를 학습하는 모델
forward process (diffusion process): data에 noise를 추가하는 과정으로, markov chain을 통해 점진적으로 noise를 더해나간다.
reverse process: gaussian noise에서 시작하여 점진적으로 noise를 제거해가는 과정
Prerequisite
What is ‘Diffusion’?
특정한 데이터의 패턴이 서서히 반복적인 과정을 거쳐 와해되는 과정(농도가 균일해지는)을 ‘Diffusion process’라 명명
비지도학습 방법론으로 활용되고 있음
Markov Chain
: Markov 성질을 갖는 이산확률과정
Markov 성질: “특정 상태의 확률(t+1)은 오직 현재(t)의 상태에 의존한다”
이산확률과정: 이산적인 시간(0초, 1초, 2초, ..) 속에서의 확률적 현상
P[st+1∣st]=P[st+1∣s1,..,t]
ex. “내일의 날씨는 오늘의 날씨만 보고 알 수 있다.” (내일의 날씨는 오로지 오늘의 날씨 만을 조건부로 하는 확률적 과정)
Latent Variable Model
: 잠재 변수 모델
관찰 가능한 데이터에서 직접 측정할 수 없는 '잠재 변수'를 이용해 모델을 구성하는 방식이다. 잠재 변수는 직접 관찰되지 않지만 관찰 가능한 데이터의 분포를 설명하는 데 중요한 역할을 하는 변수이다. 예를 들어, 사용자의 구매 패턴에서 각각의 구매 이벤트는 관찰 가능하지만, 사용자의 숨겨진 구매 선호도는 직접적으로 관찰할 수 없는 잠재 변수가 될 수 있다.
잠재 변수 모델은 관찰 데이터의 분포를 효과적으로 설명하고 복잡한 패턴을 파악하는 데 널리 사용된다. 잠재 변수를 사용하면 데이터의 차원을 줄일 수 있다(차원 축소된 데이터가 input이 된다).
DDPM의 forward process에서는 천 번의 iteration을 거쳐 noise를 더하는데, 이때 그 많은 과정을 하나하나 관측하지 않는다는(못 할수도 있음) 의미에서 그 변수를 모두 잠재 변수라고 하는 것이다.
직접적인 접근을 하지 않는 근사 문제이다.
KL Divergence
: 두 확률 분포 P, Q가 얼마나 다른지 측정하는 방법
P는 사후, Q는 사전 분포를 의미한다.
원본 데이터 확률 분포와 근사 분포와의 로그 차이 값의 기대값을 구하고자 한다.
DKL(P∥Q)=x∈X∑P(x)log(Q(x)P(x))
Overview of Generative Models
반복적인 변화(iterative transformation)를 활용한다는 점에서 Flow-based models와 유사
분포에 대한 변분적 추론을 통한 학습을 진행한다는 점은 VAE와 유사
VAE는 encoding하는 network와 latent code를 바탕으로 이미지를 decoding network 모두를 학습하는 반면,
Diffusion 모델은 이미지를 encoding하는 forward process는 fix된 채 이미지를 decoding하는 reverse process - single network만을 학습한다.
최근에는 Diffusion 모델의 학습에 Adversarial training을 활용하기도 함
Denoising Process에서 KL Divergence가 이용되고 있다. P라는 reverse process는 q라는 reverse process를 최대한 approximate할 수 있도록 학습하는 것이 보여진다.
+) Pθ가 U-net의 output
DDPM
1. 학습 목적식에서 Regularization term 제외(LT)
굳이 학습시키지 않아도 fixed noise scheduling으로 필요한 ‘isotropic gaussian’(등방성; 방향과 상관없음) 획득 가능하기 때문이다.
LT=DKL(q(xT∣x0)∣∣p(xT))
p가 generate하는 noise xT와 q가 x0라는 데이터가 주어졌을 때 generate하는 noise xT간의 분포 차이
이 term은 원래 VAE에서 posterior가 prior(가우시안 분포)를 따르도록 강제하는 loss이다. DDPM에서 forward process는 xT를 항상 가우시안 노이즈로 가정하기 때문에 LT는 항상 0에 가까운 상수가 된다.
(둘 사이의 KL divergence를 구하는 의미가 없다)
⇒ 학습과정에서 무시
2. Denoising Process의 목적식 재구성
1) 분산의 상수화
원래 mean & variance를 학습했다면, 이제는 mean만 학습해도 된다.
2) Denoising matching
Diffusion process와 Denoising process의 noise를 하나의 식으로 합친다.
결국 DDPM model(Ⲉ_θ)이 학습해야 하는 것은 주어진 t시점의 noise()뿐이다.
이처럼 각 시점의 다양한 scale의 gaussian noise를 예측해, denoising에 활용하고자 하는 것이 DDPM의 지향점이다.
Loss Function 유도
Lt−1=t>1∑DKL(q(xt−1∣xt,x0)∣∣pθ(xt−1∣xt))
p와 q의 reverse/forward process의 분포 차이. 이들을 최대한 비슷한 방향으로 학습한다.
q(xt−1∣xt,x0)와 pθ(xt−1∣xt)가 모두 가우시안(정규 분포)이기 때문에, KL divergence를 가우시안 분포 간의 KL divergence로 다시 나타낼 수 있다.
E[2σt21∣∣μt~(xt,x0)−μθ(xt,t)∣∣2]+C
Recall: xt=αtˉx0+(1−αtˉ)ϵ
Ho et al. NeurIPS 2020 observes that: μt~(xt,x0)=1−βt1(xt−1−αtˉβt)ϵ
They propose to represent the mean of the denoising model using a noise-prediction network:
우리가 알고 싶어하는 가우시안의 평균을 다음과 같이 모델링할 수 있다.
다른 값은 모두 동일하고, ϵθ(xt,t)이라는 noise prediction network를 통해 평균을 예측할 수 있게 된다.