forward 과정의 사후분포 q(x_{t-1} | x_t, x_0) ddpm-posterior
DDPM의 forward 과정은 q(xt∣xt−1)=N(1−βtxt−1,βt)이고, 닫힌 형태의 주변분포는 q(xt∣x0)=N(αˉtx0,1−αˉt), αˉt=∏s=1t(1−βs)이다. αˉ0=1로 둔다.
x0를 알 때 한 step 앞의 사후분포는 가우시안이다.
q(xt−1∣xt,x0)=N(μ~t(xt,x0),β~t)
reverse 과정의 각 step은 이 분포에서 x0 자리에 신경망의 예측을 넣은 것이다. 함수 posterior(x0, xt, t, betas)를 완성해 (mean, var)를 반환한다.
인자
의미
x0, xt
같은 shape의 배열(또는 스칼라)
t
1 이상 len(betas) 이하의 정수 시각
betas
(T,) 배열. betas[t - 1]이 βt
힌트: 베이즈 정리로 q(xt−1∣xt,x0)∝q(xt∣xt−1)q(xt−1∣x0)이다. 두 가우시안 인자의 정밀도(분산의 역수)를 더하면 사후 정밀도가 되고, 사후 평균은 각 인자가 말하는 xt−1의 값을 정밀도로 가중평균한 것이다(11.4장). 정리하면