AI_Tech부스트캠프 week20...[2] From VAE to Diffusion

Leejaegun·2025년 1월 5일
0

AI_tech_CV트랙 여정

목록 보기
71/74

1. Recap

(1). Latent Variable Models

잠재변수 모델은 관측 데이터 x\mathbf{x}잠재 변수 z\mathbf{z}를 활용하여,
복잡한 확률 분포 p(x)p(\mathbf{x})를 단순한 조건부 분포(예: p(xz)p(\mathbf{x} \mid \mathbf{z})) 형태로 표현하려는 방법입니다.

주요 특징

  1. 복잡한 모델링을 단순화

    • 직접 x\mathbf{x}를 모델링하기 어려울 때, 잠재 변수 z\mathbf{z}를 도입하면
      p(x)=p(xz)p(z)dzp(\mathbf{x}) = \int p(\mathbf{x} \mid \mathbf{z})\,p(\mathbf{z})\,d\mathbf{z}
      같은 구조로 쪼개어 표현할 수 있습니다.
  2. 비지도 학습에 유리

    • 클러스터링, 표현 학습, 생성 모델 등에서 잠재 변수를 통해 데이터의 잠재 구조를 학습할 수 있습니다.
  3. 학습 난이도 (No free lunch)

    • 잠재 변수가 관측되지 않으므로, 완전히 관측된 모델에 비해 학습 과정이 더 복잡합니다.
    • 보통 최대가능도 추정(EM 알고리즘), 변분 추론(ELBO), MCMC 등 다양한 기법이 필요합니다.

(2). Hierarchical Variational Autoencoders

정의
A HVAE(Hierarchical VAE)는 기존 VAE(Variational Autoencoder)를 확장한 모델로, 잠재 변수를 여러 개의 층위(hierarchy)로 쌓아서 표현합니다.
즉, 단 하나의 잠재 변수(zz)만 사용하는 VAE와 달리, HVAE는 z1,z2,,zLz_1, z_2, \dots, z_L처럼 다층 구조를 가집니다.

왜 여러 층위(hierarchies)를 쓰나?

  • 복잡한 데이터 구조를 더 잘 표현하기 위해
    • 예를 들어, 사람 얼굴 이미지를 모델링할 때,
      • 첫 번째 잠재 변수가 전반적인 형태(예: 얼굴 윤곽)을,
      • 두 번째 잠재 변수가 세부 특성(예: 눈, 코, 입 배치)을,
      • 세 번째 잠재 변수가 더 미세한 특징(예: 주근깨, 표정)
        와 같이 계층적으로 특징을 분리해서 나타낼 수 있습니다.
  • 더 풍부한 표현력
    • 단일 층위의 VAE보다 훨씬 복잡하고 세밀한 분포를 학습할 수 있습니다.

어떻게 동작하나?

  1. 인코더(Encoder)

    • 입력 xx를 받으면, 여러 층위의 잠재 변수 각각에 대해 분포 파라미터(예: 평균, 분산)를 추정합니다.
    • 예: qϕ(zLx),  qϕ(zL1x,zL),  q_{\phi}(z_L \mid x), \; q_{\phi}(z_{L-1} \mid x, z_L), \;\dots
      • 위에서부터 차례대로 잠재 변수를 샘플링해 내려가는 구조입니다.
  2. 디코더(Decoder)

    • 마지막 층위부터 순차적으로(혹은 동시에) 잠재 변수들을 입력받아, 최종적으로 xx를 복원(reconstruct)합니다.
    • 예: pθ(xz1,z2,,zL)p_{\theta}(x \mid z_1, z_2, \dots, z_L)
      • 상위 층위의 zz는 이미지의 큰 윤곽, 하위 층위 zz는 세부 정보를 재구성하는 식으로 진행됩니다.
  3. 학습 (ELBO 최적화)

    • 일반 VAE와 마찬가지로, 증거 하한(ELBO)을 최대화하는 방식으로 학습합니다.
    • 다만 다층 구조 때문에, ELBO 역시 여러 층위의 KL 발산 항 등을 포함하게 됩니다.

+추가) HVAE의 ELBO

  1. logp(x)\log p(\mathbf{x}) 정의
logp(x)=logp(x,z1:T)dz1:T.\log p(\mathbf{x}) = \log \int p(\mathbf{x}, \mathbf{z}_{1:T}) \, d\mathbf{z}_{1:T}.
  • z1:T\mathbf{z}_{1:T}은 여러 층위(Hierarchies)의 잠재변수를 통칭합니다.
    예: z1,z2,,zT\mathbf{z}_1, \mathbf{z}_2, \dots, \mathbf{z}_T.
  1. 임의의 분포 qϕ(z1:Tx)q_{\phi}(\mathbf{z}_{1:T} \mid \mathbf{x}) 도입
logp(x)=logp(x,z1:T)qϕ(z1:Tx)qϕ(z1:Tx)dz1:T.\log p(\mathbf{x}) = \log \int \frac{p(\mathbf{x}, \mathbf{z}_{1:T}) \, q_{\phi}(\mathbf{z}_{1:T} \mid \mathbf{x})} {q_{\phi}(\mathbf{z}_{1:T} \mid \mathbf{x})} \, d\mathbf{z}_{1:T}.
  • 분모·분자를 qϕ(z1:Tx)q_{\phi}(\mathbf{z}_{1:T} \mid \mathbf{x})로 곱/나눗셈하여, 기대값(기댓값) 형태로 바꿀 수 있습니다.
  1. 기댓값 형태로 표현

    =logEz1:Tqϕ(z1:Tx)[p(x,z1:T)qϕ(z1:Tx)].= \log \mathbb{E}_{\mathbf{z}_{1:T} \sim q_{\phi}(\mathbf{z}_{1:T} \mid \mathbf{x})} \biggl[ \frac{p(\mathbf{x}, \mathbf{z}_{1:T})}{q_{\phi}(\mathbf{z}_{1:T} \mid \mathbf{x})} \biggr].
  2. Jensen's Inequality 적용 → ELBO 하한

    logEz1:Tqϕ(z1:Tx)[]        Ez1:Tqϕ(z1:Tx)[log(p(x,z1:T)qϕ(z1:Tx))].\log \mathbb{E}_{\mathbf{z}_{1:T} \sim q_{\phi}(\mathbf{z}_{1:T} \mid \mathbf{x})} \bigl[\dots\bigr] \;\;\ge\;\; \mathbb{E}_{\mathbf{z}_{1:T} \sim q_{\phi}(\mathbf{z}_{1:T} \mid \mathbf{x})} \Bigl[ \log \bigl(\frac{p(\mathbf{x}, \mathbf{z}_{1:T})}{q_{\phi}(\mathbf{z}_{1:T} \mid \mathbf{x})}\bigr) \Bigr].

이를 다시 풀어서 쓰면,

logp(x)        Ez1:Tqϕ(z1:Tx)[logp(x,z1:T)]우도 항    Ez1:Tqϕ(z1:Tx)[logqϕ(z1:Tx)]엔트로피(또는 정규화) 항\log p(\mathbf{x}) \;\;\ge\;\; \underbrace{ \mathbb{E}_{\mathbf{z}_{1:T}\sim q_\phi(\mathbf{z}_{1:T}\mid \mathbf{x})} [\log p(\mathbf{x},\mathbf{z}_{1:T})] }_{\text{우도 항}} \;-\; \underbrace{ \mathbb{E}_{\mathbf{z}_{1:T}\sim q_\phi(\mathbf{z}_{1:T}\mid \mathbf{x})} [\log q_\phi(\mathbf{z}_{1:T}\mid \mathbf{x})] }_{\text{엔트로피(또는 정규화) 항}}

이를 ELBO(증거 하한)라고 하며, HVAE에서는 z1:T\mathbf{z}_{1:T} (다층 잠재변수들)로 인해 이 항이 여러 계층 구조를 포함하게 됩니다.


2. 해석

  • p(x,z1:T)p(\mathbf{x}, \mathbf{z}_{1:T}): 입력 x\mathbf{x}와 모든 층위의 잠재변수 z1:T\mathbf{z}_{1:T}를 함께 설명하는(=생성하는) 확률분포
  • qϕ(z1:Tx)q_{\phi}(\mathbf{z}_{1:T} \mid \mathbf{x}): 인코더(추론 모델)가 x\mathbf{x}를 보고 각 잠재변수 z1:T\mathbf{z}_{1:T}를 어떻게 샘플링할지를 나타내는 분포
  • ELBO:
    L(x;ϕ,θ)=Eqϕ(z1:Tx)[logpθ(x,z1:T)logqϕ(z1:Tx)].\mathcal{L}(\mathbf{x}; \phi, \theta) = \mathbb{E}_{q_{\phi}(\mathbf{z}_{1:T}\mid \mathbf{x})} \bigl[ \log p_{\theta}(\mathbf{x}, \mathbf{z}_{1:T}) - \log q_{\phi}(\mathbf{z}_{1:T}\mid \mathbf{x}) \bigr].
    • 여기서 z1:T\mathbf{z}_{1:T}가 여러 계층으로 구성되므로,
      logpθ(x,z1:T)\log p_{\theta}(\mathbf{x}, \mathbf{z}_{1:T}) 역시
      logpθ(xz1,,zT)+logpθ(z1:T)\log p_{\theta}(\mathbf{x} \mid \mathbf{z}_1, \dots, \mathbf{z}_T) + \log p_{\theta}(\mathbf{z}_{1:T}) 형태로 확장됩니다.
    • logqϕ(z1:Tx)\log q_{\phi}(\mathbf{z}_{1:T}\mid \mathbf{x}) 또한 계층마다 조건부 구조((zlzl+1,)(z_{l}\mid z_{l+1},\dots))를 가질 수 있습니다.

3. 요점 정리

  • Hierarchical VAE(HVAE)에서는 잠재변수 z\mathbf{z}가 여러 계층 z1:T\mathbf{z}_{1:T}로 확장됩니다.
  • ELBO를 유도하는 기본 방식(logp(x)\log p(\mathbf{x})에 Jensen's Inequality 적용)은 VAE와 동일하지만, 잠재변수를 적분(또는 합)하는 범위z1,,zT\mathbf{z}_{1}, \dots, \mathbf{z}_{T} 전부로 확장됩니다.
  • 그 결과, 복잡한 z1:T\mathbf{z}_{1:T} 구조를 모델링하기 위한 ELBO가 자연스럽게 도출되며, 이는 여러 KL term, 혹은 여러 조건부 분포 항을 포함하게 됩니다.

장점 & 단점

  • 장점
    • (1) 복잡한 데이터를 더 잘 모델링 가능
    • (2) 계층적 표현 학습: 레이어별로 데이터의 추상화 수준이 달라짐
  • 단점
    • (1) 구조가 복잡해 학습 난이도가 높음
    • (2) 계산 비용이 증가: 여러 층위를 거치므로 파라미터 수도 많아짐

결론

HVAE는 잠재 변수의 다층 구조를 통해 데이터를 더 풍부하고 계층적으로 표현할 수 있는 방법입니다.
VAE와 동일한 원리(ELBO 최적화, 인코더/디코더 구조) 위에서, 각 층위별로 잠재 변수를 추가하여 더 복잡한 분포를 학습하게 만든 모델이라고 이해할 수 있습니다.

2. Variational Diffusion Model

(1). Variational Diffusion Model

VDM은 기본적으로 Markovian HVAE(Hierarchical VAE)의 한 형태로 볼 수 있습니다. 다만, 다음 세 가지 핵심 제약을 둠으로써 “Diffusion”(확산) 과정을 활용하는 모델이 됩니다:

  1. 잠재 공간의 차원데이터 차원과 동일하다.
q(z1:Tx)=q(z1x)t=2Tqϕ(ztzt1)q(z_{1:T} \mid x) = q(z_1 \mid x)\,\prod_{t=2}^T q_\phi\bigl(z_t \mid z_{t-1}\bigr)

can be rewritten as:

q(x1:Tx0)=t=1Tqϕ(xtxt1).q(x_{1:T} \mid x_0) = \prod_{t=1}^T q_\phi\bigl(x_t \mid x_{t-1}\bigr).
  1. 각 타임스텝에서의 잠재 인코더 구조는 학습되지 않으며, 선형 가우시안(linear Gaussian) 형태고정된다.
    • 즉, 아래와 같은 형태를 가정합니다:
      q(xtxt1)=N(xt  ;  αtxt1  ,(1αt)I),q(x_t \mid x_{t-1}) = \mathcal{N}\bigl(x_t \; ; \; \sqrt{\alpha_t} x_{t-1} \;, (1-\alpha_t) I\bigr),
      여기서 xt1x_{t-1}은 이전 스텝의 표본(이미지)이고, xtx_t는 그 다음 스텝으로 “더 노이즈가 섞인” 표본입니다.
  2. 최종 타임스텝 TT에 이르면, 잠재 변수(또는 데이터)가 표준 정규분포(standard Gaussian)가 되도록 αt\alpha_t를 스케줄링한다.(즉 αt\alpha_t는 스텝을 밟을 수록 0에 가깝게 합니다.)
    p(x0:Txt1)=p(xT)t=1Tpθ(xt1xt)p(x_{0:T} \mid x_{t-1}) = p(x_T)\,\prod_{t=1}^T p_\theta\bigl(x_{t-1} \mid x_t\bigr)

where

p(xT)=N(xT  ;  0,I).p(x_T) = \mathcal{N}(x_T \; ; \; 0, I).
  • 즉, 시간이 지남에 따라 노이즈가 점차 강해져서 마지막엔 완전한 가우시안 상태에 가까워진다는 설정입니다.

왜 이런 제약을 두나?

  • (1) 데이터 차원과 동일:
    보통 VAE는 낮은 차원의 zz를 사용하지만, Diffusion Model에서는 시간에 따라 “이미지(데이터)” 자체가 변형되므로, 잠재 변수도 데이터와 같은 차원을 갖게 됩니다.

  • (2) 선형 가우시안 형태(학습 X):
    각 스텝에서 노이즈를 섞는 과정이 고정된 수식대로 진행된다고 가정하여, 모델이 학습해야 할 파라미터를 크게 줄입니다. 대신 디코더(역방향 확산 과정)가 학습의 주요 대상이 됩니다.(선형 가우시안”이라고 부르는 이유는, “가우시안 노이즈를 추가하는 규칙”이 시간 tt별로 고정·선형적인 형태를 가지도록 설계했기 때문)

  • (3) 표준 정규화로 귀결:

    마지막 스텝이 완전한 노이즈 상태(정규분포)라는 가정으로, 생성 과정(디노이징 역방향)을 명확히 정의할 수 있습니다.

정리하면, Variational Diffusion Model(VDM)Markovian HVAE에 “시간에 따라 점진적으로 데이터에 노이즈를 추가하는 인코더”를 도입한 형태입니다. 이 노이즈 추가 과정은

  • 데이터 차원과 동일한 잠재공간에서
  • 고정된 선형 가우시안 수식으로
  • 최종적으로 표준 가우시안에 도달하도록
    설계됨으로써, 이미지를 “노이즈 → 깨끗한 이미지” 방향으로 학습(역방향 확산)하는 방식을 사용합니다.

(2). ELBO: 1st try

Diffusion Model(또는 Variational Diffusion Model, VDM)에서도, 다른 확률 생성 모델(예: HVAE)과 마찬가지로 ELBO를 최대화하는 방식으로 학습할 수 있습니다.

1. logp(x)\log p(x) 문제

  • 우리가 구하고 싶은 것은 logp(x)\log p(x)입니다.
  • 하지만 p(x)=p(x0:T)dx1:Tp(x) = \int p(x_{0:T}) \, dx_{1:T} 꼴로,
    중간 스텝( x1:Tx_{1:T} )을 모두 적분(혹은 합)해야 하므로 직접 계산이 매우 어렵습니다.

2. 보조 분포 q(x1:Tx0)q(x_{1:T} \mid x_0) 도입

  1. 아이디어

    • q(x1:Tx0)q(x1:Tx0)\frac{q(x_{1:T}\mid x_0)}{q(x_{1:T}\mid x_0)} = 1 이므로, p(x0:T)p(x_{0:T})에 곱해도 식은 같게 유지됩니다.
    • 이처럼 q()q(\cdot)라는 분포를 곱했다 뗐다 하면서, 기댓값 형태로 바꾸어 ELBO를 유도합니다.
  2. 적분을 기댓값으로

    logp(x0:T)dx1:T=logp(x0:T)q(x1:Tx0)q(x1:Tx0)dx1:T=log(Eq(x1:Tx0)[p(x0:T)q(x1:Tx0)]).\log \int p(x_{0:T}) \, dx_{1:T} = \log \int \frac{p(x_{0:T}) \, q(x_{1:T}\mid x_0)}{q(x_{1:T}\mid x_0)} \, dx_{1:T} = \log \Bigl( E_{q(x_{1:T}\mid x_0)} \bigl[ \frac{p(x_{0:T})}{q(x_{1:T}\mid x_0)} \bigr] \Bigr).
  3. Jensen's Inequality

    • logE[]E[log()]\log E[\cdot] \ge E[\log(\cdot)]
    • 따라서
      logp(x)=logp(x0:T)dx1:T    Eq(x1:Tx0)[logp(x0:T)q(x1:Tx0)].\log p(x) = \log \int p(x_{0:T})\, dx_{1:T} \;\ge\; E_{q(x_{1:T}\mid x_0)} \Bigl[\log \frac{p(x_{0:T})}{q(x_{1:T}\mid x_0)}\Bigr].
    • 오른쪽 식이 바로 ELBO(증거 하한)의 형태가 됩니다.

3. ELBO의 구체적 형태

  • p(x0:T)p(x_{0:T})를 조건부 분포들( p(x0x1)p(x_0 \mid x_1), p(xtxt+1)p(x_t \mid x_{t+1}) 등)로 분해하고,
  • q(x1:Tx0)q(x_{1:T}\mid x_0)도 마찬가지로 분해해주면,
    Eq(x1:Tx0)[log(p(x0:T)q(x1:Tx0))]=Eq[logp(x0x1)]    (KL 항들의 합)    E_{q(x_{1:T}\mid x_0)}\Bigl[\log \bigl(\frac{p(x_{0:T})}{q(x_{1:T}\mid x_0)}\bigr)\Bigr] = E_{q}\bigl[\log p(x_0\mid x_1)\bigr] \;-\; \text{(KL 항들의 합)} \;-\; \dots
  • 이때 항들을 Likelihood(재구성 항), Prior matching(KL 항), Consistency 항 등으로 해석할 수 있습니다.


🤔어떻게 저렇게 3개로 딱 떨어지는 건가??

아예 처음부터 “왜 이렇게 식이 분해되고, 저항들이 어디서 나오는지”를 직관적으로 짚어보면 이해가 조금 더 쉬울것입니다. 핵심은 다음 두 가지 과정입니다.

  1. 확률분포를 전개(factorization)해서 분자와 분모를 쪼갠다.
  2. 쪼개진 로그항들을 다시 묶어서(혹은 재배치해서) KL 발산(KL divergence)이나 로그우도(log-likelihood) 형태로 정리한다.

아래에서는 이 과정을 단계별로 풀어서 설명하겠습니다.

1. 식의 시작: logp(x0:T)q(x1:Tx0)\log\frac{p(x_{0:T})}{q(x_{1:T}\mid x_0)}

시작점이 되는 항은 다음과 같습니다.

log(p(x0:T)q(x1:Tx0)).\log\Bigl(\frac{p(x_{0:T})}{q(x_{1:T}\mid x_0)}\Bigr).
  • x0x_0조건(관측)이라 생각하고, x1:Tx_{1:T}숨겨진(잠재) 시계열 변수로 생각할 수 있습니다.
  • p(x0:T)p(x_{0:T})는 “전체 시퀀스에 대한 진짜 분포(혹은 모델)”
  • q(x1:Tx0)q(x_{1:T}\mid x_0)는 “우리가 사용하고 싶은 (근사) 변분분포”

즉, log(p/q)\log\bigl(p/q\bigr) 형태는 “진짜(모델) 분포와 근사(변분) 분포가 얼마나 다른가”를 드러내는 표현입니다.

2. 분자(p(x0:T)p(x_{0:T}))와 분모(q(x1:Tx0q(x_{1:T}\mid x_0))를 어떻게 쪼갰나?

식에서 보면 분자가 이렇게 되어 있습니다.

p(x0:T)=p(xT)pθ(x0x1)t=1T1pθ(xtxt+1).p(x_{0:T}) = p(x_T)\,p_\theta\bigl(x_0 \mid x_1\bigr)\,\prod_{t=1}^{T-1}p_\theta\bigl(x_t \mid x_{t+1}\bigr).

그리고 분모는

q(x1:Tx0)=q(xTxT1)t=1T1q(xtxt1).q(x_{1:T} \mid x_0) = q\bigl(x_T \mid x_{T-1}\bigr) \prod_{t=1}^{T-1} q\bigl(x_t \mid x_{t-1}\bigr).
  • 원래 연쇄법칙(chain rule) 으로 p(x0:T)p(x_{0:T})를 분해하면 보통
    p(x0)t=1Tp(xtx0,,xt1)\displaystyle p(x_0)\prod_{t=1}^T p(x_t \mid x_0,\dots, x_{t-1})
    이런 식이 되죠.
  • 그런데 여기서는 모델이 “역방향”으로 조건을 거는 형태(xtxt+1x_t \mid x_{t+1})를 채택해서, 저렇게 factorization이 된 겁니다.
    • 이건 “Hidden Markov Model”을 뒤집어서 본다든지, “backward RNN” 같은 걸 떠올리시면 됩니다.
    • 즉, “xt+1x_{t+1}을 알면 xtx_t가 어떻게 분포되는가” 식으로 잡은 모델인겁니다.

분모 역시, 우리가 설정한 변분분포 qqMarkov 구조를 가정해서

q(x1:Tx0)  =  t=1Tq(xtxt1),q(x_{1:T}\mid x_0) \;=\; \prod_{t=1}^T q\bigl(x_t \mid x_{t-1}\bigr),

(단, x1x0x_{-1}\equiv x_0 같은 식으로 정하면 됩니다.)
이렇게 간단히 factorization을 한 형태라고 볼 수 있습니다.

3. log(pq)\log(\frac{p}{q})각 항별로 묶어서 쓰기

위처럼 분자를

p(xT)pθ(x0x1)t=1T1pθ(xtxt+1),p(x_T)\,p_\theta\bigl(x_0 \mid x_1\bigr)\,\prod_{t=1}^{T-1}p_\theta\bigl(x_t \mid x_{t+1}\bigr),

분모를

q(xTxT1)t=1T1q(xtxt1),q\bigl(x_T \mid x_{T-1}\bigr)\,\prod_{t=1}^{T-1} q\bigl(x_t \mid x_{t-1}\bigr),

로 써놓고, log(pq)\log\bigl(\frac{p}{q}\bigr)를 취하면 당연히:

log(p(x0:T)q(x1:Tx0))=log(p(xT)pθ(x0x1)t=1T1pθ(xtxt+1)q(xTxT1)t=1T1q(xtxt1)).\log\Bigl(\frac{p(x_{0:T})}{q(x_{1:T}\mid x_0)}\Bigr) = \log\left( \frac{p(x_T)\,p_\theta(x_0 \mid x_1)\,\prod_{t=1}^{T-1} p_\theta(x_t \mid x_{t+1})} {q(x_T \mid x_{T-1})\,\prod_{t=1}^{T-1} q(x_t \mid x_{t-1})} \right).

즉,

=log(p(xT))+log(pθ(x0x1))+t=1T1log(pθ(xtxt+1))    (log(q(xTxT1))+t=1T1log(q(xtxt1))).= \log\Bigl(p(x_T)\Bigr) + \log\Bigl(p_\theta(x_0 \mid x_1)\Bigr) + \sum_{t=1}^{T-1}\log\Bigl(p_\theta(x_t \mid x_{t+1})\Bigr) \;-\; \Bigl( \log\bigl(q(x_T \mid x_{T-1})\bigr) + \sum_{t=1}^{T-1}\log\bigl(q(x_t \mid x_{t-1})\bigr) \Bigr).

“로그 분자의 합 – 로그 분모의 합”이 되는 거죠.

그런 다음 필요한 항들을 서로 묶어서

  • logpθ(x0x1)\log p_\theta(x_0\mid x_1)는 그대로 남기고,
  • p(xT)p(x_T)vs q(xTxT1)q(x_T\mid x_{T-1})는 KL 발산 형태로 묶고,
  • pθ(xtxt+1)p_\theta(x_t\mid x_{t+1})q(xtxt1,xt+1)q(x_t\mid x_{t-1}, x_{t+1})를 또 KL 형태로 묶고,

이런 식으로 정리해서 KL 발산 + 로그우도 형태로 재배열하는 겁니다.

4. 최종적으로 “3개 항”이 나오는 이유

위에서 말한 “묶기”를 살짝 수학적으로 해 보면,

  • (1) 재구성 항:
    Eq(x1x0)[logpθ(x0x1)]\mathbb{E}_{q(x_1\mid x_0)}[\log p_\theta(x_0\mid x_1)]
    → 잠재변수 x1x_1가 주어졌을 때 x0x_0를 얼마나 잘 복원하느냐(=우도, reconstruction)

  • (2) Prior matching:
    Eq(xT1x0)[KL(q(xTxT1)  p(xT))]- \mathbb{E}_{q(x_{T-1}\mid x_0)}[\mathrm{KL}(\,q(x_T\mid x_{T-1})\|\;p(x_T)\,)]
    → 맨 끝(혹은 시작) 시점의 분포가 사전분포p(xT)p(x_T)와 맞아야 함

  • (3) Consistency(시간적 일관성):
    t=1T1Eq(xt1,xt+1x0)[KL(q(xtxt1,xt+1)  pθ(xtxt+1))]- \sum_{t=1}^{T-1} \mathbb{E}_{q(x_{t-1}, x_{t+1}\mid x_0)}[\mathrm{KL}(\,q(x_t\mid x_{t-1},x_{t+1})\|\;p_\theta(x_t\mid x_{t+1})\,)]
    → 중간 시점 xtx_t가 양방향으로 모델과 맞아야 함(“앞에서 본 것” + “뒤에서 본 것”이 모순되지 않아야 한다)

즉,
1. “관측 x0x_0를 잘 재구성(reconstruct)해야 한다.”
2. “끝(혹은 처음) 지점의 잠재변수 분포가 사전에 맞아야 한다.”
3. “중간 시점들도 시간축 양방향으로 일관성(consistency)을 유지해야 한다.”

이렇게 정리되면서 3가지 항이 나옵니다.
이건 사실 VAE(변분 오토인코더)가 (우도)(KL)\text{(우도)} - \text{(KL)} 형태를 갖는 것과 같은 맥락이고,
여기서는 시계열 구조가 들어가서 KL 항이 여러 개로 나뉜다고 보시면 됩니다.

5. 직관적으로 보면…

  • 우리는 logp(x0)\log p(x_0)를 최대화하고 싶은데, 직접 계산하기 어려움.
  • 그래서 “변분분포 q(x1:Tx0)q(x_{1:T}\mid x_0)”를 한 번 씌워서
    logp(x0)Eq[log(p/q)]=Eq[logp]Eq[logq].\log p(x_0) \ge \mathbb{E}_{q}[\log (p/q)] = \mathbb{E}_{q}[\log p] - \mathbb{E}_{q}[\log q].
  • 위에서 logp\log plogq\log q를 시계열 구조대로 쪼개다 보니,
    • logpθ(x0x1)\log p_\theta(x_0\mid x_1)” 같은 재구성 항,
    • “KL( (q) || (p) )” 형태의 규제(regulation) 항
      (시간방향, 뒤집힌 시간방향, 혹은 사전분포와의 정합)이 여러 개 튀어나옴.

결국 이걸 전부 합쳐서 최대화해주면,

  • (1) 데이터 재구성도 잘 되면서,
  • (2) 시계열 잠재변수들도 모델이 원하는 구조/분포에 맞춰서 정렬(alignment)되도록 학습
    하게 되는 겁니다.

6. 요약

  • 분수 pq\frac{p}{q}를 factorization 해서 로그를 취하면, (로그 분자) – (로그 분모) 항들이 주루룩 나옴.
  • 그 항들을 어떻게 묶어주느냐에 따라,
    1. 재구성(likelihood) 항
    2. Prior와의 KL 항
    3. 중간 시점들 간의 KL 항(시간적 일관성)
      로 자연스럽게 구분됨.
  • 3개 묶음이 바로 식에서 보이는 형태입니다.
  • 전반적인 구조는 VAE가 (재구성 우도)(KL 발산)\text{(재구성 우도)} - \text{(KL 발산)} 형태를 갖는 것과 같지만, 시계열 특성 때문에 KL 항이 여러 개(끝 시점, 중간 시점들 등)로 세분화된다고 보면 이해하기 쉽습니다.

따라서 복잡해 보이지만, 결국은

logp(x)\log p(x)의 변분 하한(ELBO)을 시계열 구조에 맞게 쪼갠 것”

4. 그림을 통한 이해

  • x0x_0: 실제 관측된 이미지(고양이 사진 예시).
  • x1,x2,,xTx_1, x_2, \dots, x_T: 중간 스텝에서 점차 노이즈가 추가된 이미지.
  • 전방(Forward) 과정 q(xt+1xt)q(x_{t+1}\mid x_t) vs. 역방향(Backward) 과정 p(xtxt+1)p(x_t\mid x_{t+1}).
  • 최종 xTx_T순수한 노이즈 상태가 되면, 역방향으로 노이즈를 제거하며 x0x_0에 도달하는 과정을 모델링할 수 있습니다.

요약

  1. logp(x)\log p(x) 직접 계산 어려움

    • 중간 스텝 x1:Tx_{1:T} 적분 때문에 계산량이 폭발.
  2. q(x1:Tx0)q(x_{1:T}\mid x_0) 도입

    • 적분을 기댓값 형태로 바꾸고, Jensen 부등식을 통해 ELBO를 얻음.
  3. ELBO 항 해석

    • Likelihood( x0x_0를 복원 ),
    • KL 항(모델 분포 vs. 보조 분포 일치),
    • Consistency(시간 스텝 간 정합성) 등.
  4. Diffusion Model 맥락

    • 전방 과정: 이미지에 노이즈 첨가
    • 역방향 과정: 노이즈 제거(디노이징)
    • ELBO 최대화로, 실제 이미지를 잘 복원(생성)하는 디노이징 과정을 학습

위와 같이 VDM에서도 다른 VA류 모델처럼, logp(x)\log p(x)에 대한 하한을 최대화(ELBO)함으로써 학습할 수 있습니다.

(3). ELBO: 2nd try(한 번에 한 개의 랜덤 변수에 대해 기댓값을 계산하기)

이번에는 ELBO를 유도하는 과정에서, 각 항을 한 번에 한 개의 랜덤 변수에 대한 기댓값 형태로 재구성해봅시다.

1. 문제 설정

  • 원래는 q(xtxt1)q(x_t \mid x_{t-1}) 라고 썼지만, 실제로는 x0x_0(처음 관측 데이터)까지 고려해야 합니다.
  • 그래서 q(xtxt1,x0)q(x_t \mid x_{t-1}, x_0)처럼 쓰면, 중간 스텝 xtx_txt1x_{t-1}x0x_0 모두에 의존하도록 표현 가능합니다.

핵심 아이디어(Key Insight)

  • Bayes' Rule를 사용하여,
    q(xtxt1,x0)  =  q(xt1xt,x0)q(xtx0)q(xt1x0).q(x_t \mid x_{t-1}, x_0) \;=\; \frac{q(x_{t-1}\mid x_t, x_0)\,q(x_t\mid x_0)}{q(x_{t-1}\mid x_0)}.
  • 이렇게 분해해두면, 나중에 적분(합)을 기댓값 형태로 바꾸고 나서, 한 스텝씩 기댓값을 정의하는 데 도움이 됩니다.

2. ELBO 식 다시 살펴보기

  1. 첫 번째 모습

    logp(x)    Eq(x1:Tx0)[log(p(x0:T)q(x1:Tx0))].\log p(x) \;\ge\; E_{q(x_{1:T}\mid x_0)} \Bigl[ \log \bigl( \frac{p(x_{0:T})}{q(x_{1:T}\mid x_0)} \bigr) \Bigr].
  2. 분해

    • p(x0:T)p(x_{0:T})p(xT)p(xT1xT)p(x0x1)p(x_T)\,p(x_{T-1}\mid x_T)\,\dots\,p(x_0\mid x_1) 등으로 쪼개고,
    • q(x1:Tx0)=t=1Tq(xtxt1,x0)q(x_{1:T}\mid x_0) = \prod_{t=1}^T q(x_t \mid x_{t-1}, x_0) 형태로 나타냅니다.
    • 각 항을 로그 안에 모아두면,
      log(p(x0:T)q(x1:Tx0))=logp(xT)+logp(xT1xT)++logp(x0x1)    t=1Tlogq(xtxt1,x0).\log \bigl( \frac{p(x_{0:T})}{q(x_{1:T}\mid x_0)} \bigr) = \log p(x_T) + \log p(x_{T-1}\mid x_T) + \dots + \log p(x_0\mid x_1) \;-\; \sum_{t=1}^T \log q(x_t \mid x_{t-1}, x_0).
  3. 한 스텝씩 기댓값

    • 위 항들을 묶어보면, 한 스텝(xtx_t)에 해당하는 항들이 깔끔하게 정리되어,
    • Eq(x1:Tx0)[]E_{q(x_{1:T}\mid x_0)}[\cdots] 안에서 t=1t=1부터 TT까지 순서대로 항을 나눌 수 있습니다.

3. 결과적으로 얻는 ELBO 형태

아래와 같은 꼴로 나타낼 수 있게 됩니다:

  1. Likelihood(재구성 항)

    • Eq(x1x0)[logpθ(x0x1)]E_{q(x_1\mid x_0)} [\,\log p_\theta(x_0\mid x_1)\,]
    • "최종적으로 x0x_0 (원본 데이터)를 어떻게 잘 복원하느냐?"
  2. Prior matching

    • KL(q(xTx0)  p(xT))-\,KL\bigl(q(x_T\mid x_0)\,\|\;p(x_T)\bigr)
    • 맨 끝 상태($ x_T $)가 사전에 정한 분포(예: 노이즈)와 일치하도록.
  3. Denoising matching

    • t=2TEq(xt,xt+1x0)[KL(q(xt1xt,x0)  pθ(xt1xt))]-\,\sum_{t=2}^T E_{q(x_t,x_{t+1}\mid x_0)} \bigl[ KL\bigl(q(x_{t-1}\mid x_t,x_0)\,\|\;p_\theta(x_{t-1}\mid x_t)\bigr) \bigr]
    • 각 단계에서 "디노이징" 역방향 분포가 잘 맞도록 하는 항.

아래 수식은, 어떤 확률 모델 (p(x))에 대해 변분(variational) 방법을 이용해 로그가능도 (\log p(x))를 하한(lower bound)으로 표현한 식입니다. 흔히 VAE(Variational AutoEncoder)나 그 변형 모델에서 자주 보게 되는 형태이며, 시계열 데이터를 다룰 때(또는 순서가 있는 데이터를 다룰 때) 쓰이는 특수한 버전이라 볼 수 있습니다.


Likelihood, prior Matching, Denoising matching에 대해서 자세하게 풀어써보자.

식의 형태

우선 식을 단계적으로 살펴봅시다. 맨 위 식은 다음과 같습니다.

logp(x)        Eq(x1:Tx0) ⁣[log(p(x0:T)q(x1:Tx0))].\log p(x) \;\;\ge\;\; \mathbb{E}_{q(x_{1:T}\mid x_0)}\!\Bigl[\log\Bigl(\frac{p(x_{0:T})}{q(x_{1:T}\mid x_0)}\Bigr)\Bigr].
  • x0x_0은 어떤 관측 데이터(혹은 조건으로 주어진 변수)라고 생각할 수 있습니다.
  • x1:T=(x1,x2,,xT)x_{1:T} = (x_1, x_2, \dots, x_T)는 우리가 모델링하고 싶은 잠재(혹은 숨겨진) 시퀀스입니다.
  • q(x1:Tx0)q(x_{1:T}\mid x_0)변분 분포(variational distribution)로, 실제 우리가 다루기 어려운 p(x1:Tx0)p(x_{1:T}\mid x_0) 대신 근사하여 사용하는 분포입니다.

이 식은 변분 부등식(ELBO, Evidence Lower BOund)의 전형적인 형태로,

logp(x)        Eq[logplogq].\log p(x) \;\;\ge\;\; \mathbb{E}_{q}[\log p - \log q].

분자·분모 확장

그 다음 단계에서 분자   p(x0:T)\;p(x_{0:T})와 분모   q(x1:Tx0)\;q(x_{1:T} \mid x_0)를 순차적으로 factorization(분해)해서 적어줍니다:

p(x0:T)  =  p(xT)pθ(x0x1)t=1T1pθ(xtxt+1),p(x_{0:T}) \;=\; p(x_T)\,p_\theta(x_0 \mid x_1)\,\prod_{t=1}^{T-1}p_\theta(x_t \mid x_{t+1}),
q(x1:Tx0)  =  q(xTxT1)t=1T1q(xtxt1).q(x_{1:T} \mid x_0) \;=\; q(x_T \mid x_{T-1}) \,\prod_{t=1}^{T-1} q(x_t \mid x_{t-1}).

이를 식에 대입하면,

log(p(x0:T)q(x1:Tx0))  =  log(p(xT)pθ(x0x1)t=1T1pθ(xtxt+1)q(xTxT1)t=1T1q(xtxt1)).\log \left(\frac{p(x_{0:T})}{q(x_{1:T}\mid x_0)}\right) \;=\; \log\left( \frac{ p(x_T)\,p_\theta(x_0 \mid x_1)\,\prod_{t=1}^{T-1} p_\theta(x_t \mid x_{t+1}) }{ q(x_T \mid x_{T-1}) \,\prod_{t=1}^{T-1} q(x_t \mid x_{t-1}) } \right).

항의 묶음

이 식은 적절히 묶어서 세 가지 항으로 나눌 수 있습니다. 실제 식에서는,

Eq(x1:Tx0)[logpθ(x0x1)]  Eq(xT1x0)[KL(q(xTxT1)p(xT))]  t=1T1Eq(xt1,xt+1x0)[KL(q(xtxt1,xt+1)pθ(xtxt+1))].\begin{aligned} \mathbb{E}_{q(x_{1:T}\mid x_0)} \Bigl[ \log p_\theta(x_0 \mid x_1) \Bigr] &-\; \mathbb{E}_{q(x_{T-1}\mid x_0)} \Bigl[ \mathrm{KL}\bigl(q(x_T\mid x_{T-1}) \,\|\, p(x_T)\bigr) \Bigr]\\ &-\; \sum_{t=1}^{T-1} \mathbb{E}_{q(x_{t-1},x_{t+1}\mid x_0)} \Bigl[ \mathrm{KL}\bigl(q(x_t \mid x_{t-1}, x_{t+1}) \,\|\, p_\theta(x_t \mid x_{t+1})\bigr) \Bigr]. \end{aligned}

이렇게 정리됩니다. 식에 달려 있는 주석을 보면 각각 다음과 같이 해석이 붙어 있습니다.

  1. Likelihood (reconstruction) 항

    Eq(x1x0)[logpθ(x0x1)]\mathbb{E}_{q(x_1 \mid x_0)} \bigl[\log p_\theta(x_0 \mid x_1)\bigr]
    • 모델이 잠재표현 x1x_1에서 원래 관측치 x0x_0를 얼마나 잘 재구성(reconstruct) 하는지 나타내는 항입니다.
    • VAE에서 흔히 logpθ(xz)\log p_\theta(x \mid z) 형태로 나타나는 “재구성 항”과 같은 역할입니다.
  2. Prior matching 항

    Eq(xT1x0)[KL(q(xTxT1)p(xT))]-\,\mathbb{E}_{q(x_{T-1}\mid x_0)} \Bigl[ \mathrm{KL}\bigl(q(x_T\mid x_{T-1}) \,\|\, p(x_T)\bigr) \Bigr]
    • 뒤쪽 시점 xTx_T에 대해, 사전분포(prior) p(xT)p(x_T)와 변분분포 q(xTxT1)q(x_T \mid x_{T-1})가 가까워지도록(혹은 일치하도록) 만드는 항입니다.
    • 즉, KL\mathrm{KL} 발산(Kullback-Leibler divergence)을 최소화하여,qqpp에 맞게끔 “정렬(matching)”되는 효과가 있습니다.
  3. Consistency 항

    t=1T1Eq(xt1,xt+1x0)[KL(q(xtxt1,xt+1)pθ(xtxt+1))].-\,\sum_{t=1}^{T-1} \mathbb{E}_{q(x_{t-1},x_{t+1}\mid x_0)} \Bigl[ \mathrm{KL}\bigl(q(x_t \mid x_{t-1}, x_{t+1}) \,\|\, p_\theta(x_t \mid x_{t+1})\bigr) \Bigr].
    • 중간 시점들 t=1,,T1t=1,\dots,T-1에 대해, 앞 시점(xt1x_{t-1})과 뒤 시점(xt+1x_{t+1})을 알고 있을 때의 변분분포 q(xtxt1,xt+1q(x_t\mid x_{t-1}, x_{t+1})가, 모델의 사후 혹은 조건부분포 pθ(xtxt+1)p_\theta(x_t \mid x_{t+1})와 가까워지도록 만드는 항입니다.
    • 이를 통해 시계열(혹은 순차) 구조에서 시간축 양방향 정보를 조화롭게 맞추어 주는 “일관성(consistency)”을 구현합니다.

전체적인 의미

  • logp(x)\log p(x)의 하한(ELBO):
    우리가 직접 계산하기 어려운 logp(x)\log p(x) 대신, 변분분포 qq를 정의해 두고

    logp(x)        Eq[logplogq]\log p(x) \;\;\ge\;\; \mathbb{E}_{q} [\log p - \log q]

    형태로 우변(ELBO)을 최대화함으로써 logp(x)\log p(x)를 최대화하는 효과를 갖게 됩니다(변분추론의 핵심 아이디어).

  • 재구성 + 정규화(prior, consistency) 항:
    위 세 항을 요약하면,

    1. 재구성(likelihood): 잠재변수로부터 원본 x0x_0를 잘 복원
    2. 사전분포와 정합: 끝 시점(T 시점)의 분포가 사전에 맞도록(regularization)
    3. 중간 단계들의 일관성: 시계열 구조 상에서 변분분포와 모델의 조건부분포가 일치하도록

    이 세 가지를 같이 최적화함으로써, 모델이 시계열 구조관측 데이터를 재구성하는 능력을 동시에 학습하게 됩니다.

정리

위 식은 시계열(또는 순서가 있는 잠재변수 구조)을 갖춘 변분 오토인코더류 모델에서 자주 볼 수 있는 변분 하한(ELBO)의 확장판입니다.

  • 첫 번째 항(재구성)은 “입력을 주고 잠재변수를 통해 다시 입력을 복원했을 때 정확도”를 높이는 방향으로 작용하고,
  • 두 번째·세 번째 항은 “잠재변수 분포가 사전분포와 어떻게 일치해야 하고, 시계열 구조에서 어떻게 일관성을 유지해야 하는지”를 KL 발산 형태로 강제하여 모델을 정규화(regularize)합니다.

이런 방식을 통해 모델은 자료의 시계열적 특성을 내적으로 학습하여, 보이지 않는 부분에 대해서도 자연스럽게 샘플링하거나, 추론할 수 있게 됩니다. 요약하면,

  1. ELBO = (재구성 항) – (KL 발산 항들의 합)
  2. 각 KL 발산 항은 모델의 prior 및 조건부 구조와 변분분포를 가깝게 만든다
  3. 이를 통해 데이터를 잘 복원하면서도, 잠재변수의 시계열 구조를 잘 맞춰주는 학습이 가능해진다

라는 점이 핵심입니다.

4. 그림 설명

  • x0x_0: 원본 이미지(고양이)
  • x1,,xT1,xTx_1,\dots,x_{T-1}, x_T: 점차 노이즈가 섞여서 달라지는 이미지들
  • q(xtxt1,x0)q(x_t\mid x_{t-1},x_0): 전방(Forward) 과정의 분포, 실제 노이즈 추가 과정
  • pθ(xt1xt)p_\theta(x_{t-1}\mid x_t): 역방향(Backward) 과정의 분포, 모델이 학습해야 하는 디노이징
  • 한 번에 하나의 xtx_t에 대한 기댓값을 따로 구해서 전체를 합치면, ELBO를 간단히 표현할 수 있습니다.

요약

  1. q(xtxt1,x0)q(x_t \mid x_{t-1},x_0)로 쓰는 이유

    • 각 스텝 xtx_t가 이전 스텝 xt1x_{t-1}뿐 아니라 초기 상태 x0x_0에도 의존함을 명시.
  2. Bayes' Rule로 분해

    • q(xt1xt,x0)=q(xt1x0)q(xtx0)q(xtx0)q(x_{t-1}\mid x_t,x_0) = \frac{q(x_{t-1}\mid x_0)\,q(x_t\mid x_0)}{q(x_t\mid x_0)},
    • 이를 활용해 기댓값 계산 시 한 스텝씩 나누어 다룸.
  3. ELBO 결과

    • (Likelihood) + (Prior matching) + (Denoising matching) 형태로 항들이 깔끔히 정리됨.
    • 모델이 pθ(xt1xt)p_\theta(x_{t-1}\mid x_t)를 학습(디노이징)하는 항목이 주로 중요.

이 과정을 통해, ELBO를 좀 더 단계별로 나누어 살펴볼 수 있고, 각 항을 단 하나의 랜덤 변수에 대한 기댓값으로 계산함으로써 변동성(분산)을 줄이고 학습을 용이하게 만들 수 있습니다.

3. Other equivalent parameterizations

3.1 Other equivalent parameterizations: ver. 2

본 내용은 확산 모델(Diffusion Model)에서 다른 형태의(Equivalent) 파라미터화가 어떻게 유도되는지를 단계적으로 보여줍니다.
결론부터 말하자면, 우리가 Reverse Process의 분포를 모델링할 때,
x0x_0 또는 ϵ0\epsilon_0 관점에서 파라미터를 잡는 방식이 서로 동치임을 증명하고 있습니다.

1. 기본 식: xtx_tx0x_0ϵ0\epsilon_0로 나타내기

일반적으로 DDPM(Denoising Diffusion Probabilistic Model)에서,
tt번째 타임스텝의 샘플 xtx_t는 아래와 같이 노이즈 추가로 표현할 수 있습니다.

xt=αtx0+1αtϵ0,x_t = \sqrt{\overline{\alpha}_t}\,x_0 + \sqrt{\,1 - \overline{\alpha}_t\,}\,\epsilon_0,
  • 여기서 αt\overline{\alpha}_t는 시그마 스케줄에 따라 정의된 누적 항(예: α1αt\alpha_1 \cdots \alpha_t의 곱)
  • ϵ0\epsilon_0x0x_0에 섞인 가우시안 노이즈(표준 정규분포)입니다.

2. x0x_0xtx_tϵ0\epsilon_0로부터 복원하기

위 식을 재배열하면, x0x_0에 대한 표현은 다음과 같습니다.

x0=xt1αtϵ0αt.x_0 = \frac{\,x_t - \sqrt{\,1 - \overline{\alpha}_t\,}\,\epsilon_0\,}{\sqrt{\,\overline{\alpha}_t\,}}.

이 식은 “주어진 xtx_tϵ0\epsilon_0가 있을 때, 원본 이미지(또는 데이터) x0x_0를 어떻게 추정할 수 있는가”를 보여줍니다.

3. μq(xt,x0)\mu_q(x_t, x_0)에 위 식 대입하기

Reverse Process에서, 시점 tt에서 t1t-1로 갈 때의 조건부 분포
q(xt1xt,x0)q(x_{t-1} \mid x_t, x_0)평균(Mean) 항을 μq(xt,x0)\mu_q(x_t, x_0)라고 부릅니다.
μq\mu_q는 보통 다음과 같이 쓸 수 있습니다.

μq(xt,x0)=αt(1αt1)xt  +  αt1(1αt)x01αt.\mu_q(x_t, x_0) = \frac{ \sqrt{\overline{\alpha}_t\,(1 - \overline{\alpha}_{t-1})}\,x_t \;+\; \sqrt{\overline{\alpha}_{t-1}\,(1 - \alpha_t)}\,x_0 }{ 1 - \overline{\alpha}_t }.

이제 위에서 구한 x0x_0 (즉, x0=xt1αtϵ0αtx_0 = \frac{x_t - \sqrt{1 - \overline{\alpha}_t}\,\epsilon_0}{\sqrt{\overline{\alpha}_t}})를 대입하면,

μq(xt,x0)=αt(1αt1)xt  +  αt1(1αt)( ⁣xt1αtϵ0αt)1αt.\mu_q(x_t, x_0) = \frac{ \sqrt{\overline{\alpha}_t\,\bigl(1 - \overline{\alpha}_{t-1}\bigr)}\,x_t \;+\; \sqrt{\,\overline{\alpha}_{t-1}\,\bigl(1 - \alpha_t\bigr)}\, \Bigl(\!\frac{x_t - \sqrt{\,1 - \overline{\alpha}_t\,}\,\epsilon_0}{\sqrt{\overline{\alpha}_t}} \Bigr) }{ 1 - \overline{\alpha}_t }.

이를 간단히 정리하면 다음처럼 됩니다.

μq(xt,x0)=1αt  xt    1αt1αtαtϵ0.\mu_q(x_t, x_0) = \frac{1}{\sqrt{\overline{\alpha}_t}}\;x_t \;-\; \frac{\,1 - \alpha_t\,}{\sqrt{\,1 - \overline{\alpha}_t\,}\,\sqrt{\overline{\alpha}_t}}\,\epsilon_0.

결국 μq(xt,x0)\mu_q(x_t, x_0)xtx_tϵ0\epsilon_0만으로 표현 가능해집니다.

4. KL 발산 최소화 & 파라미터화

DDPM에서 Reverse Process를 근사하기 위해, θ\theta 파라미터를 갖는 μθ\mu_\theta(혹은 ϵθ\epsilon_\theta)를 사용합니다.
즉, pθ(xt1xt)N ⁣(xt1;μθ(xt,t),Σq(t)).p_\theta(x_{t-1} \mid x_t) \approx \mathcal{N}\!\bigl(x_{t-1};\,\mu_\theta(x_t, t),\,\Sigma_q(t)\bigr).

이를 정확한 정규분포 N ⁣(μq,Σq(t))\mathcal{N}\!\bigl(\mu_q, \Sigma_q(t)\bigr)와 가까워지게 만들려면, 다음 KL 발산을 최소화합니다.

argminθKL ⁣(N ⁣(xt1;μq,Σq(t))N ⁣(xt1;μθ,Σq(t))).\arg\min_\theta \, KL\!\Bigl( \mathcal{N}\!\bigl(x_{t-1};\,\mu_q,\,\Sigma_q(t)\bigr) \,\big\|\, \mathcal{N}\!\bigl(x_{t-1};\,\mu_\theta,\,\Sigma_q(t)\bigr) \Bigr).

이는 평균끼리의 차이에 대한 2차 노름(유클리드 거리)을 최소화하는 문제와 동일해집니다.

=argminθ  12σq2(t)μθ(xt,t)    μq(xt,x0)22.= \arg\min_\theta \;\frac{1}{2\,\sigma_q^2(t)}\, \bigl\|\mu_\theta(x_t, t) \;-\; \mu_q(x_t, x_0)\bigr\|_2^2.

4.1 x0x_0 대신 ϵ0\epsilon_0로 파라미터화하기

방금 본 식에서,
μq(xt,x0)\mu_q(x_t, x_0)x0x_0 대신 ϵ0\epsilon_0(노이즈)로도 표현 가능합니다.
따라서 θ\theta가 예측하려는 대상

  • x0x_0를 직접 예측하기”
  • ϵ0\epsilon_0를 예측하기”
    등으로 바꿀 수 있으며, 최종적으로는 같은 형태의 목표함수(오차)가 됩니다.

이 과정을 풀어 쓰면,

  1. μθ(xt,t)\mu_\theta(x_t, t)가 “x0x_0를 직접 복원”하도록 설계 시, 2차 오차는
    x^θ(xt,t)x02.\|\hat{x}_\theta(x_t, t) - x_0\|^2.

  2. μθ(xt,t)\mu_\theta(x_t, t)가 “ϵ0\epsilon_0(노이즈)를 예측”하도록 설계 시,
    x0x_0 대신 ϵ0\epsilon_0를 통해 같은 KL 발산을 유도할 수 있음.
    결국
    ϵθ(xt,t)ϵ02\|\epsilon_\theta(x_t, t) - \epsilon_0\|^2
    형태의 Loss가 등장.

이 두 관점은 서로 등가이며, 실제 구현 시 노이즈를 예측하는 파라미터화(ϵθ\epsilon_\theta 방식)이 더 안정적으로 학습된다는 보고가 많습니다.

5. 최종 정리

  • xt=αtx0+1αtϵ0x_t = \sqrt{\overline{\alpha}_t}\,x_0 + \sqrt{\,1 - \overline{\alpha}_t\,}\,\epsilon_0
    주어진 x0x_0표준 노이즈 ϵ0\epsilon_0가 있으면 노이즈 섞인 샘플 xtx_t를 구할 수 있음.

  • 이를 재배열하면
    x0=xt1αtϵ0αt.x_0 = \frac{x_t - \sqrt{1 - \overline{\alpha}_t}\,\epsilon_0}{\sqrt{\overline{\alpha}_t}}.

  • Reverse 분포 q(xt1xt,x0)q(x_{t-1} \mid x_t, x_0)의 평균
    μq(xt,x0)\mu_q(x_t, x_0)xt,ϵ0x_t, \epsilon_0로만 표현 가능.

  • μθ\mu_\theta(학습 파라미터)와 μq\mu_q(정확 분포) 사이의 KL 발산을 최소화
    → 곧 x0x_0ϵ0\epsilon_0 를 예측하는 문제로 볼 수 있음.

  • x0x_0 예측” vs “ϵ0\epsilon_0 예측”은 동등하며,
    구현상 노이즈 예측이 더 일반적으로 쓰인다.

이렇게 해서 버전 2의 파라미터화(= ϵ0\epsilon_0 관점)를 사용해도,
결국 같은 목표(KL 최소화)로 귀결된다는 것을 보여주는 것이 Other Equivalent Parameterizations의 핵심 내용입니다.

3.2 Other equivalent parameterizations: ver. 3

이번 버전(ver. 3)에서는 Tweedie's Formula를 활용하여, Gaussian 변수참된 사후평균을 추정하는 관점에서 Reverse Process를 파라미터화하는 방법을 보여줍니다.

1. Tweedie's Formula

  • 가우시안 변수 zN(z;μz,Σz)z \sim \mathcal{N}(z; \mu_z, \Sigma_z)에 대해,
    Tweedie's Formula는 아래와 같이 말합니다.

    E[μzz]=z  +  Σz  zlogp(z).\mathbb{E}[\mu_z \mid z] = z \;+\; \Sigma_z \;\nabla_z\,\log p(z).

    이는 zz의 posterior mean을,
    샘플 자체(zz) + log-likelihood의 기울기” 형태로 표현한다는 점이 핵심입니다.

2. 우리 문제에 적용하기

  • DDPM 설정에서, xtx_t가 주어졌을 때, 원본 데이터 x0x_0의 분포는

    q(xtx0)  =  N ⁣(xt;αtx0,(1αt)I).q(x_t \mid x_0) \;=\; \mathcal{N}\!\bigl(x_t; \sqrt{\overline{\alpha}_t}\,x_0,\,(1 - \overline{\alpha}_t)\mathbf{I}\bigr).
  • 이에 대응하여, E[μxtx0]\mathbb{E}[\mu_{x_t} \mid x_0] 즉, 사후평균을 구해보면

    E[μxtx0]=αtx0  =  xt  +  (1αt)xtlogp(xt).\mathbb{E}\bigl[\mu_{x_t} \mid x_0\bigr] = \sqrt{\overline{\alpha}_t}\,x_0 \;=\; x_t \;+\; \bigl(1 - \overline{\alpha}_t\bigr)\,\nabla_{x_t}\,\log p(x_t).

    여기서 마지막 식에서 xtx_t가 Tweedie's Formula의 zz에 해당하고, (1αt)xtlogp(xt)\bigl(1 - \overline{\alpha}_t\bigr)\,\nabla_{x_t}\,\log p(x_t) 부분이Σzzlogp(z)\Sigma_z \nabla_z\,\log p(z)에 대응됩니다.

  • 따라서 x0x_0를 추정하는 식도

    x0=xt  +  (1αt)xtlogp(xt)αt.x_0 = \frac{x_t \;+\; \bigl(1 - \overline{\alpha}_t\bigr)\,\nabla_{x_t}\,\log p(x_t)}{\sqrt{\overline{\alpha}_t}}.

3. 다시 μq(xt,x0)\mu_q(x_t, x_0)로 연결하기

  • Reverse Process에서의 진짜(mean) 분포 q(xt1xt,x0)q(x_{t-1} \mid x_t, x_0)는 이전 버전과 마찬가지로,

    μq(xt,x0)=αt(1αt1)xt  +  αt1(1αt)x01αt.\mu_q(x_t, x_0) = \frac{ \sqrt{\alpha_t\,(1-\overline{\alpha}_{t-1})}\,x_t \;+\; \sqrt{\overline{\alpha}_{t-1}\,(1-\alpha_t)}\,x_0 }{ 1 - \overline{\alpha}_t }.
  • ver. 3에서는 x0x_0 대신,
    x0=xt+(1αt)xtlogp(xt)αtx_0 = \frac{x_t + (1 - \overline{\alpha}_t)\,\nabla_{x_t}\,\log p(x_t)}{\sqrt{\overline{\alpha}_t}}
    를 대입해 정리하면,

    μq(xt,x0)=1αtxt  +  1αtαtxtlogp(xt).\mu_q(x_t, x_0) = \frac{1}{\sqrt{\alpha_t}}\,x_t \;+\; \frac{1 - \alpha_t}{\sqrt{\alpha_t}}\,\nabla_{x_t}\,\log p(x_t).

즉, Tweedie's Formula를 이용하면,
μq\mu_qxtx_t와 그에 대한 log-likelihood 기울기로 간단히 표현됨을 보입니다.

4. KL 발산 최소화 & 새로운 파라미터화

  • 우리가 학습할 Reverse 분포 pθ(xt1xt)p_\theta(x_{t-1} \mid x_t)
    N ⁣(xt1;μθ(xt,t),Σq(t))\mathcal{N}\!\bigl(x_{t-1};\,\mu_\theta(x_t, t),\,\Sigma_q(t)\bigr) 형태로 잡을 때,
    참 분포(평균 μq\mu_q)와의 KL 발산을 최소화하는 문제는,

    argminθ  KL ⁣(N(xt1;μq,Σq(t))    N(xt1;μθ,Σq(t))),\arg\min_\theta \;KL\!\Bigl( \mathcal{N}(x_{t-1};\,\mu_q,\Sigma_q(t)) \;\big\|\; \mathcal{N}(x_{t-1};\,\mu_\theta,\Sigma_q(t)) \Bigr),

    다시 말해,

    argminθ  12σq2(t)μθ(xt,t)μq(xt,x0)2.\arg\min_\theta \;\frac{1}{2\,\sigma_q^2(t)}\, \bigl\|\mu_\theta(x_t, t) - \mu_q(x_t, x_0)\bigr\|^2.
  • ver. 3의 관점에서는, μq(xt,x0)\mu_q(x_t, x_0)

    1αtxt  +  1αtαtxtlogp(xt)\frac{1}{\sqrt{\alpha_t}}\,x_t \;+\; \frac{1 - \alpha_t}{\sqrt{\alpha_t}}\,\nabla_{x_t}\,\log p(x_t)

    로 표기할 수 있으므로,
    모델이 기울기(Score) xtlogp(xt)\nabla_{x_t}\,\log p(x_t)를 직접 예측하도록
    파라미터화할 수도 있음을 시사합니다.

  • 즉, 노이즈 예측(ver. 2) 대신,
    Score 예측(ver. 3) 방식도 동등하게 KL 발산을 최소화할 수 있다는 것이 결론입니다.

5. 요약

  1. Tweedie's Formula:

    E[μzz]=z+Σzzlogp(z)\mathbb{E}[\mu_z \mid z] = z + \Sigma_z\,\nabla_z\,\log p(z)

    가우시안 샘플 zz사후평균을 “z+(log-likelihood 기울기)z + \text{(log-likelihood 기울기)}”로 표현.

  2. 이를 xtx_tx0x_0 관계에 대입:
    x0x_0μq(xt,x0)\mu_q(x_t, x_0)xtx_txtlogp(xt)\nabla_{x_t}\,\log p(x_t)로 표현됨.

  3. Reverse Processμq\mu_q

    1αtxt+1αtαt  xtlogp(xt)\frac{1}{\sqrt{\alpha_t}}\,x_t + \frac{1 - \alpha_t}{\sqrt{\alpha_t}}\;\nabla_{x_t}\,\log p(x_t)

    형태로 두고, 이를 근사하기 위해 Score(기울기)를 예측하는 모델을 학습할 수 있음.

  4. 결국, 노이즈 예측과 마찬가지로, Score 예측 역시
    정확한 Reverse Process를 구현하기 위한 동등한 파라미터화로 볼 수 있음.

이로써 Other Equivalent Parameterizations ver. 3는,
Tweedie's Formula를 활용하여 Score-Based 관점의 파라미터화를 제시한다는 점이 핵심입니다.

3.3 A Schematic Overview

3.4 From Scores to Samples: Langevin Dynamics

2차원 분포 예시

  1. 왼쪽 그림: Score 함수

    • 화살표(벡터)들은 sθ(x)s_\theta(x), 즉 확률 분포의 로그 확률밀도의 그라디언트(Score)를 나타낸다.
    • 여기서는 사각형 모양의 데이터를 가정했을 때, 그 데이터 분포에 대응하는 Score가 어떤 방향을 갖는지를 시각화한 것이다.
    • 화살표가 분포의 바깥쪽에서 안쪽으로 향하거나, 혹은 특정 모서리를 따라 방향이 달라지는 모습 등을 볼 수 있다.
  2. 가운데 그림: Score를 직접 따라가는(Deterministic) 업데이트

    • 점(파란색으로 표시된 샘플들)이 초기 위치에서부터, xt+1~=xt~+ϵ2sθ(xt~)x_{\tilde{t+1}} = x_{\tilde{t}} + \frac{\epsilon}{2} s_\theta(x_{\tilde{t}}) 규칙에 따라 이동한다.
    • 즉, 각 점이 Score 벡터가 가리키는 방향으로 조금씩 업데이트된다.
    • 잡음 없이 오로지 Score의 방향만을 따라가다 보면, 최종적으로 데이터 분포가 모이는 특정 영역에 정렬되는 경향을 보인다.
  3. 오른쪽 그림: Langevin Dynamics

    • 가운데 그림의 업데이트 식에 노이즈 항을 추가한 형태, 즉 xt+1~=xt~+ϵ2sθ(xt~)+ϵztx_{\tilde{t+1}} = x_{\tilde{t}} + \frac{-\epsilon}{2} s_\theta(x_{\tilde{t}}) + \sqrt{\epsilon} z_t (단 ztN(0,I)z_t \sim \mathcal{N}(0, I))를 적용한 과정이다.
    • Score를 따라가되, 매 스텝마다 무작위 잡음을 섞어주어 샘플들이 확률적으로 움직인다.
    • 결과적으로 MCMC (마르코프 연쇄 몬테카를로) 방식인 Langevin 샘플링을 통해, 점들이 보다 부드럽게(확률적으로) 해당 분포에 모이게 된다.

3.5 Score-based Generative Modeling with SDEs


아래쪽 이미지는 Score-based Generative Modeling확률미분방정식(SDE) 관점에서 해석한 그림이다.

  1. Forward SDE (데이터 → 노이즈)

    • 식: dx=f(x,t)dt+g(t)dwdx = f(x, t)\,dt + g(t)\,dw
    • 시간이 00에서 시작해 TT로 갈 때까지, 원본 데이터(고양이 이미지)가 점점 더 노이즈가 추가되어 흐릿해지고, 완전히 무작위 상태가 된다.
    • 이 과정을 정방향 과정(Forward Process) 혹은 순방향 확산이라고도 부른다.
  2. Reverse SDE (노이즈 → 데이터)

    • 식: dx=[f(x,t)g2(t)xlogpt(x)]dt+g(t)dwdx = [f(x, t) - g^2(t)\,\nabla_x \log p_t(x)]\,dt + g(t)\,dw
    • Forward SDE의 반대 방향으로 진행하여, 노이즈 상태에서 데이터 상태로 샘플을 복원한다.
    • 여기서 g2(t)xlogpt(x)g^2(t)\,\nabla_x \log p_t(x)가 Score 항(로그 확률밀도의 그라디언트) 역할을 하게 된다.
    • 실제 샘플링 시에는, 시간 TT에서 완전히 노이즈가 껴 있는 상태(x(T)x(T))부터 시작해, Score 정보를 이용해 점진적으로 노이즈를 제거(역방향 확산)하면서 원본 이미지에 가까운 샘플을 생성한다.

4. 후기

와 생성형 AI가 이렇게 어려울 줄은 몰랐다. 정말 많은 수식이 필요한것 같다. 계속 보다보면 알 수 있다..!! ϕ\phiting!

profile
Lee_AA

0개의 댓글

관련 채용 정보