[Diffusion Models] 확산 모델 이해하기 (4) - Energy-Based Model
오늘 글은 Energy-Based Model(EBM)이 무엇인지,
왜 “에너지(Energy)”라는 개념을 통해 확률분포를 정의하면 강력한 생성 모델이 될 수 있는지,
그리고 학습(Training) & 샘플링(Sampling) 단계에서
정규화 상수 $Z(\theta)$ 계산을 어떻게 우회하는지에 대한 내용을 정리해보았습니다.
에너지 기반 모델(EBM)의 핵심 수식과 개념, 역사, 학습·샘플링 방법, 확장 가능성 등을 추가적으로 정리해보았습니다.
특히 Boltzmann 분포, MCMC(Langevin Dynamics, Metropolis–Hastings 등), 학습 시 발생하는 수식(Gradient) 등을 자세히 다룹니다.
시작합니다.
1. 개요 (Description)
에너지 기반 모델(Energy-based Model, EBM)은
통계물리학의 정준 앙상블(Canonical Ensemble) 개념을 빌려, 데이터로부터 학습(Learning from data)을 수행하는 기법입니다.
흔히 “에너지(Energy)” 함수 $E_\theta (x)$ 를 정의하고,
이 함수로부터 확률 분포(Boltzmann 형태)를 유도해, 생성(Generative) 혹은 판별(Discriminative) 목적으로 사용할 수 있습니다.
다른 생성 모델(예: GAN, VAE, Normalizing Flow 등)과 달리, EBM은 임의의 함수 구조(특히 딥 뉴럴넷)로 에너지를 정의할 수 있어 “유연성”이 높습니다.
하지만 정규화 상수(Partition Function, $Z(\theta)$) 계산이 어려워, 실제 학습 시 MCMC 샘플링(특히 Langevin Dynamics 등)을 활용하는 특징이 있습니다.
- 1.1 간단 정리
- 에너지 함수 $E_\theta (x)$
- $\theta$는 학습 파라미터
- $x$는 입력 (이미지, 텍스트 등)
- Boltzmann 분포:
- $P_\theta (x) = \frac{exp(- \beta E_\theta (x))}{Z(\theta)}$
- , ($\beta \approx 1$인 경우가 많음)
- 여기서,
- $Z(\theta) = \inf exp (- \beta E_\theta (x)) dx$ (Partition Function)
- 학습:
- 실제 데이터를 높은 확률 (즉, 낮은 에너지)로 만들고, 가짜 샘플(모드)에는 높은 에너지를 부여
- 최대우도(MLE) 혹은 등가의 형태로 학습하려면, $\Delta _\theta \log P_\theta (x)$ 계산 필요
- 여기서 $\log Z(\theta)$ 항이 등장해 직접 계산이 난해 -> MCMC 샘플링 기반 추정
- 에너지 함수 $E_\theta (x)$
2. 수학적 형태 (Mathematical Formulation)
- 2.1 Boltzmann 형태와 정규화 상수
- EBM의 확률분포는 Boltzmann 볼츠만 분포 형태로 쓸 수 있습니다:
- $P_\theta (x) = \frac{exp(- \beta E_\theta (x))}{Z(\theta)}$, $Z(\theta) = \inf exp (- \beta E_\theta (x)) dx$
- $E_\theta (x)$: 에너지 함수 (Neural Network 등으로 파라미터화)
- $\beta$ : 상수 (주로 1로 두거나 스케일 파라미터로 사용)
- $Z(\theta)$: Partition Function (또는 정상화 상수)
- 모든 $x$에 대해 $exp(- \beta E_\theta (x))$를 적분한 값
- 고차원에서 계산이 매우 어렵기 때문에, 학습 시 직접 추정해야 함
- EBM의 확률분포는 Boltzmann 볼츠만 분포 형태로 쓸 수 있습니다:
- 2.2. Log Likelihood의 기울기
- 학습 목표: $\log P_\theta (x)$를 데이터 (훈련 샘플 $x$)에 대해 최적화 (MLE).
- However, $\log P_\theta (x)$는
- $\log P_\theta (x) = - \beta E_\theta (x) - \log Z(\theta)$
- 이를 미분 (Chain Rule)하면:
- $\Delta_\theta \log P_\theta (x) = - \beta \Delta_\theta E_\theta (x) - \Delta_\theta \log Z(\theta)$
- $\Delta_\theta \log Z(\theta)$는 다음과 같이 표현 가능:
- $\Delta_\theta \log Z(\theta) = \frac{1}{Z(\theta)} \Delta_\theta \inf exp(- \beta E_\theta (x))dx' = \mathbb{E}_{x\ \sim P_\theta} [\beta \Delta_\theta E_\theta (x')]$
- 결과적으로,
- $\Delta \log P_\theta (x) = \mathbb{E}_{x \sim P_\theta} [\Delta_ \theta E_\theta (x')] - \Delta_\theta E_\theta (x)$ (*)
- (여기서 $\beta = 1$로 놓으면 . $\beta$ 항은 생략)
- 2.3. MCMC를 통한 기댓값 추정
- 위 식, (*)에서 $\mathbb{E}_{x' \sim P_\theta} [\cdots]$ 항은 모델 분포 $P_\theta$에서의 기댓값입니다.
- 이를 직접 계산하기는 어려우나, Markov Chain Monte Carlo (MCMC)로부터 샘플 $x'$을 뽑아 근사할 수 있씁니다:
- $\Delta_\theta \log P_\theta (x) \approx \frac{1}{N} \sum_{i=1}^{N} \Delta_\theta E_\theta (x'_i) - \Delta_\theta E_\theta (x), x'_i \sim P_\theta$
- 그리고, 학습 목표 (데이터 $\log P_\theta (x)$ 최대화)에 따라, Stochastic Gradient Descent (또는 다른 최적화)로 $\theta$를 업데이트합니다.
3. Training 기법
- 3.1. Contrastive Divergence & Langevin Dynamics
- 학습 과정은 크게 두 단계로 볼 수 있습니다:
- 샘플링 (Synthesis): 현재 모델 $P_\theta $로부터 샘플 $x'$ 생성
- MCMC(예: Blocked Gibbs Sampling, 혹은 Stochastic Gradient Langevin Dynamics) 등
- 파라미터 업데이트: 식 (*)을 이용해 $\Delta_\theta \log P_\theta (x)$를 추정 -> $\theta$ 갱신
- 샘플링 (Synthesis): 현재 모델 $P_\theta $로부터 샘플 $x'$ 생성
- 3.1.1. Stochastic Gradient Langevin Dynamics (SGLD)
- Stochastic Gradient Langevin Dynamics (SGLD)
- EDM 학습에서 자주 쓰이는 MCMC 방법 중 하나:
- $x' \sim P_0$ (e.g., Gaussian 초기값)
- $x'_{i+1} = x'_i - \frac{\alpha}{2} \Delta_{x'_i} E_\theta (x'_i) + \epsilon_i, ~~~ \epsilon_i \sim \mathcal{N}(0, \alpha)$
- $\alpha$: 스텝 크기
- $\Delta_{x'_i} E_\theta (x'_i)$: 현재 샘플 위치에서의 에너지 기울기
- 노이즈 $epsilon_i$를 더해 확률적 이동
- EDM 학습에서 자주 쓰이는 MCMC 방법 중 하나:
- 이 과정을 여러 번 반복해 얻은 $x'$은 대략 $P_\theta$ 분포를 따른다고 볼 수 있습니다.
- Stochastic Gradient Langevin Dynamics (SGLD)
- 3.1.2. Replay Buffer 등
- 학습 효율을 위해, 과거에 샘플링한 $x'$를 버퍼에 저장하고, 그 위치에서 다시 MCMC를 이어서 진행하는 방식도 제안됨 (학습 가속)
- 학습 과정은 크게 두 단계로 볼 수 있습니다:
- Analsys by Synthesis 관점
- EBM 학습은 다음과 같이 해석할 수도 있다:
- 현재 모델이 생성한(Synthesis) 샘플과,
- 실제 데이터(Observed)를 비교하여, 모델이 실제 데이터에 더 낮은 에너지를(더 높은 확률) 주고, 슴플 중 잘못된 부분 (Outlier 등)에는 높은 에너지(낮은 확률)를 주도록 $\theta$를 조정
- 이를, Contrastive Divergence (Hinton, 2002) 방식이라 부르며,
- $\delta_\theta \log P_\theta (x)$를 데이터 - 모델 샘플 간의 차이로 업데이트
- 실제론 MCMC가 완벽히 수렴하진 않으나, 짧은 샘플링으로도 실용적 성능을 얻을 수 있음
- EBM 학습은 다음과 같이 해석할 수도 있다:
4. 샘플링 (Sampling)
EBM을 다 학습한 뒤, 새로운 샘플을 생성하고 싶다면, 모델 분포 $P_\theta (x) \propto exp(- E_\theta (x))$에서 MCMC를 통해 뽑으면 됩니다.
- 4.1. Metropolis-Hasting 알고리즘
- 새로운 제안 $x*$를 샘플링
- 수용확률 (Acceptance Probability)
- $P_{acc}(x_i \rightarrow x*) = min(1, \frac{P_\theta (x*)}{P_\theta (x_i)}) = min(1, \frac{exp(-E_\theta (x*))}{exp(-E_\theta (x_i))}) = min(1, exp(-E_\theta (x*) + E_\theta (x_i)))$
- 이 과정을 반복하여 최종 샘플 체인 ($x_0, x_1, x_2, \dots$)를 얻는다.
- 4.2. SGLD 기반의 빠른 샘플링
- 학습 시 사용한 학습 시 사용한 Stochastic Gradient Langevin Dynamics(SGLD)를 그대로 “샘플링 전용”으로 써도 됩니다.
- 충분히 큰 iteration 후 수렴 시, $exp(-E_\theta (x))$에서 뽑은 샘플과 유사.
- 실제론 적당한 iteration으로 샘플링 결과를 얻어 활용.
5. 역사 및 특징
EBM은 2000년대 초반부터 연구되어 왔습니다.
- Boltzmann Machine $\textbf{Boltzmann Machine}$ (Geoffrey Hinton 등): 특정 파라미터화(이진 노드, pairwise 에너지 등)
- 2003 JMLR 논문(Teh et al.){2003 JMLR 논문(Teh et al.)}: “에너지 기반 모델”이라는 용어를 사용하여 Overcomplete ICA 등 일반화
- 최근에는 Deep Neural Network를 에너지 함수로 사용 (Generative ConvNet 등)
5.1 장점
- (1) 단순성 & 안정성
- 별도 “판별자(Discriminator)” 네트워크 없이, 하나의 EBM만 설계하면 됨
- (2) 적응적 계산
- MCMC 스텝을 많이 돌릴수록 “정확한(Sharp) 샘플”
- 적게 돌리면 “빠른 생성” (단, 부정확할 수 있음)
- (3) 유연성
- VAE나 Flow처럼 구조적 제약(가역성 등) 없어도 됨
- Multi-modality(분포 내 여러 모드)에 자연스럽게 대응
- (4) Compositionality
- 여러 EBM을 “곱(product)으로 결합” → PoE (Product of Experts)
- 계층적 모델링 등
5.2 단점
- “$\log Z(\theta)$ 계산”이 어렵고, MCMC 수렴에 시간이 걸림
- 고차원 데이터(이미지)에서 충분히 정확한 샘플을 뽑으려면 iteration이 많아질 수 있음
6. 결론 (Conclusion)
Energy-Based Model은,
- 하나의 에너지 함수 $E_{\theta} (x)$로부터
- Boltzmann 분포를 정의 (정규화 상수로 인해 직접 계산은 난해)
- MCMC 등을 활용해 학습(Contrastive Divergence)과 샘플링 수행
딥 뉴럴넷과 결합하여, 이미지·비디오·3D 데이터 등 복잡한 분포를 학습할 수 있고,
Multi-modal 분포, Compositionality, 적응적 계산 등 강점을 지닙니다.
단, 샘플링 시간이 느릴 수 있고, MCMC 수렴 품질에 따라 결과가 달라지는 단점도 있습니다.
EBM은 GAN/VAE/Flow와 더불어 현대 생성 모델의 중요한 축을 담당하고 있으며,
특히 Score-based Model(또는 Diffusion Model)과 연계되면서 SDE 기반 샘플링, 역문제(Inverse Problem) 해결, 하이브리드 모델 등으로도 확장되고 있습니다.
Referene
G. Hinton, “Training Products of Experts by Minimizing Contrastive Divergence,” Neural Computation, 14(8), 2002.
J. Teh, M. Welling, S. Osindero, G. E. Hinton, “Energy-Based Models for Sparse Overcomplete Representations,” JMLR, 4(Dec), 2003.
Y. Du, I. Mordatch, “Implicit Generation and Generalization in Energy-Based Models,” arXiv:1903.08689, 2019.
J. Xie, Y. Lu, S.-C. Zhu, Y. N. Wu, “A theory of generative ConvNet,” ICML, 2016.
W. Grathwohl et al., “Your classifier is secretly an energy based model and you should treat it like one,” arXiv:1912.03263, 2019.
'Artificial Intelligence > Computer Vision' 카테고리의 다른 글
[Diffusion Models] 확산 모델 이해하기 (5) - Score matching (0) | 2025.01.29 |
---|---|
[Diffusion Models] 확산 모델 이해하기 (3) - Langevin Dynamics (0) | 2025.01.28 |
[Diffusion Models] 확산 모델 이해하기 (2) - Euler's Method (0) | 2025.01.23 |
[Diffusion Models] 확산 모델 이해하기 (1) - ODE, SDE and Markov process, Wiener process (0) | 2025.01.22 |
[Computer Vision] Hands-On Generative AI with Transformers and Diffusion Models (0) | 2023.09.05 |