xoft.tistory.com를 참고하여 Diffusion model 이해에 필요한 기본 개념을 정리했다.
목차
Probability vs. Likelihood
MLE(Maximum Likelyhood Estimation)
Markov Process(MP)(=Markov Chain)
Baysian Rule
KL Divergence
VAE
CLIP
SDS
Diffusion
Probability vs. Likelihood
Probability
확률분포 p(x)가 고정된 상태에서 관측 사건 x가 변화할 때의 확률.
일상적으로 쓰이는 확률의 의미. "어떤 일이 일어날 가능성"
Likelihood
관측된 데이터 x가 고정된 상태에서, 이를 설명할 수 있는 확률분포 pθ(x)가 변화할 때의 값.
주어진 데이터 x1,x2,...,xn가 특정 확률분포 pθ(x)에서 생성되었을 가능성
주어진 데이터가 특정 확률분포를 따를 가능성
Likelihood가 크다는 것은, 관측된 데이터가 해당 확률분포로부터 생성되었을 가능성이 크다는 것.
관측된 데이터를 잘 설명하는 확률분포를 찾는 MLE에서 쓰인다.
이산 Likelihood
L(θ;x)=P(x∣θ)=i=1∏npθ(xi)
pθ: PMF(확률질량함수), θ: 확률분포, x: 관측값
연속 Likelihood
L(θ;x)=P(x∣θ)=i=1∏nfθ(xi)
fθ: PDF(확률밀도함수)
log likelihood
log는 증가함수이므로, 최대 최소를 구할 때 log likelihood를 써도 상관없다.
ℓ(θ;x)=logL(θ;x)=i=1∑nlogpθ(xi)
ℓ(θ;x)=logL(θ;x)=i=1∑nlogfθ(xi)
Probability는 사건 x
의 확률을 계산하며, Likelihood는 특정 사건이 관측되었을 때 해당 사건을 잘 설명할 수 있는 확률분포를 찾는 데 사용됨.
MLE(Maximum Likelyhood Estimation)
(gmm - em algorithm에서 봤던 개념)
관측된 데이터를 가장 잘 설명하는 확률분포의 파라미터를 추정하는 방법.
주어진 데이터 x₁,x₂,...,xₙ에 대해, 확률분포 pθ(x)의 Likelihood를 최대화하는 θ를 찾음.
θ^=argθmaxi=1∏npθ(xi)=argθmaxi=1∑nlogpθ(xi)
Gaussian Distribution MLE
Gaussian Distribution의 log likelihood를 각각 μ, σ에 대해 미분하고, 0이 되는 지점을 찾는다.
p(x∣μ,σ)=σ2π1exp(−2σ2(x−μ)2)
- log likelihood
ℓ(μ,σ;x)=−2nlog(2π)−nlog(σ)−2σ21i=1∑n(xi−μ)2
평균 μ의 MLE: 데이터의 평균
μ^=n1i=1∑nxi=nx1+x2+⋯+xn
표준편차 σ 의 MLE: 데이터의 표준편차
σ^=n1i=1∑n(xi−μ^)2=n(x1−μ)2+(x2−μ^)2+⋯+(xn−μ^)2
Markov Process(MP)(=Markov Chain)
Markov Property를 갖는 discrete time stochastic process.
- Markov Property: 현재 상태가 오직 바로 이전(n-1) 상태에 의해서만 결정됨.
P(Xt∣Xt−1,Xt−2,…,X0)=P(Xt∣Xt−1)
-
discrete time: 시간이 이산적으로 표현됨(t=n, n-1, n-2, …)
-
stochastic process: 시간에 따라 어떤 사건이 발생할 확률이 변화하는 과정; 시간에 따라 상태가 확률적으로 변화
Baysian Rule
조건부 확률을 계산하는 공식으로, 관측된 데이터 D를 기반으로 모델 H의 사후 확률을 계산함.
P(H∣D)=P(D)P(D∣H)P(H)
- P(H∣D): 관측된 데이터를 기반으로 H가 참일 확률 (사후 확률).
- P(D∣H): H가 참일 때 데이터를 관측할 확률 (Likelihood).
- P(H): 사전 확률.
- P(D): 관측된 데이터를 기반으로 한 전체 확률.
KL Divergence
두 확률분포 p와 q 간의 차이를 측정하는 지표.
분포 p가 q에 비해 얼마나 "다르게" 분포되어 있는지를 나타내는 척도.
정보량의 차이를 수치화하며, Loss 함수로 자주 사용됨.
Diffusion model에서 Forward process와 Reverse process의 분포 차이를 줄이는 데 활용됨.
공식
이산 확률 분포
DKL(p∣∣q)=x∑p(x)logq(x)p(x)
연속 확률 분포
DKL(p∣∣q)=∫p(x)logq(x)p(x)dx
특징
DKL(p∣∣q)≥0.
DKL(p∣∣q)=DKL(q∣∣p (거리개념이 아님).
분포 p와 q가 동일하면 DKL(p∣∣q)=0.
엔트로피
엔트로피는 확률 분포가 가지는 "불확실성"의 양을 나타내며, KL Divergence는 두 분포의 엔트로피 차이를 측정하는 방식.
DKL(p∥q)=H(p,q)−H(p)
- H(p): 분포p의 엔트로피(정보량)
- H(p,q): 분포 p와 q가 함께 발생할 때의 합동 엔트로피(p와 q가 동시에 발생할 때 얻을 수 있는 정보량)
이때 정보량이란 질문의 정보량!
VAE
Variational Auto Encoder
Autoencoder 기반의 모델로, 특정 데이터의 잠재 공간(latent space)을 확률분포로 학습.
데이터를 단일 점으로 학습하는 기존 Autoencoder와 달리, 잠재 변수를 확률분포 z p(z)로 모델링.
L=Eq(z∣x)[logp(x∣z)]−DKL(q(z∣x)∣∣p(z))
- 첫 번째 항: reconstruction loss
- 두 번째 항: 잠재 분포 q(z∣x)와 p(z) 간의 KL Divergence.
CLIP
Contrastive Language-Image Pretraining
OpenAI에서 2021년 개발한 텍스트와 이미지를 연결하는 모델
텍스트와 이미지 데이터를 동일한 잠재 공간(shared latent space)에 매핑하여 서로 간의 관련성을 학습함.
Contrastive Learning
입력 샘플 간의 비교를 통해 학습을 하는 것
입력 쌍(positive, negative)을 비교하여 학습.
관련 있는 쌍은 가까이, 관련 없는 쌍은 멀리 배치.
SDS
Score Distillation Sampling
DreamFusion에서 Text-to-3D 모델 학습에 처음 제안된 Loss 방식.
이미지-텍스트 모델(CLIP)을 활용하여 텍스트 조건에 맞는 3D 생성 모델을 학습.
Diffusion
Forward process
데이터를 점점 노이즈로 변환하는 과정.
데이터 x₀에서 시작하여 시간 t에 따라 점진적으로 노이즈를 추가:
q(xt∣xt−1)=N(xt;αtxt−1,(1−αt)I)
Reverse process
노이즈 데이터를 점진적으로 복원하는 과정.
학습 대상 분포는 pθ(xt−1∣xt).
L=DKL(q(xt−1∣xt)∣∣pθ(xt−1∣xt))
Forward process에서 관찰된 데이터로 Reverse process 분포를 학습하여 MLE를 최대화.
학습 대상: Pθ(Xt−1∣Xt); 확률분포 q에서 관측한 값으로 확률분포 pθ의 likelihood를 구했을 때 MLE.