[Diffusion Models] 확산 모델 이해하기 (5) - Score matching
아래 글은 Score Function이 무엇이며, 이를 이용해 Score Matching으로 어떻게 확률분포를 추정하는지, 그리고
이 아이디어가 Diffusion Model(특히 SDE 기반 Score-based Generative Model)에서 왜 중요한 역할을 하는지를 다룹니다.
가능한 한 기초적인 확률 개념부터 차근차근 설명하고,
Yang Song님의 블로그(2019/ssm)을 참고하였습니다.
차근차근 봅시다.
1. 확률과 분포, 그리고 Score 개념
1-1. 확률분포 $p(x)$와 그 로그 $\log p(x)$
- 확률분포 (probability distribution) 란?
- 어떤 데이터(또는 변수) $x$가 가질 수 있는 값들에 대해, 얼마나 자주 (혹은 얼마나 가능성 높게) 나타나는지를 기술
- 예
- $p(x) = \mathcal{N} (x;\mu. \sigma^2)$ (정규분포), $p(x) \propto e^{-||x||}$
- 로그 확률 분포 $\log p(x)$
- 확률분포 자체는 $\sum_x p(x) = 1$ (또는 적분 시 1)이어야 해서 정규화(normalization) 상수가 중요
- 하지만, 로그를 취하면, 곱들이 합으로 바뀌고, 분수나 지수 형태가 단순화되는 장점이 있음.
- 많은 확률 추정 기법에서, $\log p(x)$를 다루는 것이 수학적으로 편리
1-2. Score Function: $\Delta_x \log p(x)$
- Score Function $\mathcal{s}(x)$ 정의:
- $\mathcal{s}(x) = \Delta_x \log p(x)$
- 즉, $\log p(x)$에 대한 $x$의 Gradient (벡터 미분)
- 1차원일 때는 단순 도함수, 다차원이면 각 좌표별로 편미분
- 왜 중요한가?
- $\log p(x)$가 최대가 되는 지점 (즉 ,mode)을 찾기 위해서는 $\Delta_x \log p(x)$ 점을 찾으면 되므로, 최적화 관점에서 핵심
- 확률분포의 형태 (특히 어디가 높은/낮은지)를 가장 직접적으로 보여주는 "기울기 정보"
- 정규화 상수를 몰라도 $\log p(x)$의 기울기는 일부 계산이 단순화 되는 경우가 많음
2. 에너지 기반 모델(EBM)과 Score Function
- 2-1. EBM (Energy-based Model) 이란?
- Energy-Based Model
- $p_\theta (x) = \frac{1}{Z(\theta)} exp(-E_\theta (x))$
- $E_\theta (x)$: "에너지 함수 (Energy Function)"
- $Z(\theta)$: 정규화 상수 (Normalizing Constant)
- 문제점
- $Z(\theta)$를 계산하려면 대체로 매우 복잡한 적분(고차원) -> 직접 구하기 어려움
- Energy-Based Model
- 2-2. Score Function은 정규화 상수 $Z(\theta)$ 문제를 피할 수 있다.
- 로그 확률분포
- $\log p_\theta (x) = - E_\theta (x) - \log Z(\theta)$
- Score Function $\Delta_x \log p_\theta (x)$를 구하면?
- $\Delta_x \log p_\theta (x) = - \Delta _x E_\theta (x)$
- 여기서, $\log Z(\theta)$ 부분은 $x$에 의존하지 않으므로 기울기를 취할 때 사라짐!
- 즉, 정규화 상수를 직접 몰라도 $\log p_\theta (x)$의 $x$-기울기는 알 수 있음
- 의미:
- 정규화가 안 된 모델이어도, Score 만큼은 간단히 계산 혹은 근사 할 수 있다.
- 이를 잘 이용하면, $\log p_\theta (x)$ 전체를 직접 다루지 않고도 분포에 관한 중요한 정보를 얻을 수 있음
- $\Delta_x \log p_\theta (x) = - \Delta _x E_\theta (x)$
- 로그 확률분포
3. Score Matching: 왜 Score를 직접 학습하나?
- 3-1. Score Matching 개념
- Score Matching:
- "$log p_\theta (x)$를 직접 학습하는 대신, 그 Gradient $\Delta_x \log p_\theta (x)$를 추정 (Estimate) 하는 방법"
- 즉, Score Function을 직접 모델링 또는 학습한다.
- 이유:
- 정규화 상수(위 $Z(\theta)$ 등)를 몰라도 가능
- 실제 확률분포 $p_{\text{data}}(x)$가 복잡해도, $\Delta_x \log p_{\text{data}}(x)$ (True Score)와 $\Delta_x \log p_\theta (x)$(Model Score)를 비교하는 식으로 "얼마나 비슷한지" 측정
- 최근 Diffusion Model이나 SDE 기반 생성모델에서, "Score Function만 잘 맞추면 샘플링이 가능"하다는 이론적 결과가 있음. (Yang Song et al., 2021)
- Score Matching:
- 3-2. Score Matching: Objective Function (Fisher Divergence)
- Fisher Divergence:
- $D_F (p || q_\theta) = \mathbb{E}_{x\sim p} \left[|| \Delta_x \log p(x) - \Delta_x \log q_\theta (x) ||^2 \right]$
- "True Score - Model Score" 간의 거리 (2차 제곱)를 전체 데이터 분포에 걸쳐 평균한 것
- Score Matching: 이 차이를 최소화 -> 모델 $q_\theta$의 Score가 실제 분포 $p$의 Score에 가깝도록 학습
- 문제:
- True Score ($\Delta_x \log p(x)$) 역시 우리가 잘 모를 때가 많음 (데이터 분포가 복잡)
- -> “Hyvärinen Score Matching” 기법 등으로 재구성
- True Score ($\Delta_x \log p(x)$) 역시 우리가 잘 모를 때가 많음 (데이터 분포가 복잡)
- Fisher Divergence:
4. Hyvärinen Score Matching (HSIC): 실질적 학습 기법
- 4-1. 부분적분 (Integration by Parts)을 통한 변형
- Score Matching 기본 식:
- $\int p(x) || \Delta_x \log p(x) - \Delta_x \log q_\theta (x) ||^2 dx$
- 문제: $p(x)$와 $\Delta_x \log p(x)$를 동시에 쓰기 어려움 (역시나 true 분포의 미분이 필요)
- 해결:
- 부분적분을 이용
- $p(x)$는 $\log p(x)$의 미분과 관련 등 다양한 항을 정리
- (상세 풀이 하단 참고)
- 결과적으로 "오직 $\Delta_x \log q_\theta (x)$ (모델 Score) 항"만 남겨서 계산할 수 있는 형태로 바뀜:
- $\mathcal{L}(\theta) = \mathbb{E}_{x\sim p} \left[ ||\Delta_x \log q_\theta (x)||^2 + 2 \Delta_x \log q_\theta (x) \right] $
- Score Matching 기본 식:
- 42. 최종 Objective
- Score Matching Objective
- $\theta^{*} = argmin_\theta \mathcal{L}(\theta)$
- $\mathcal{L}(\theta)$는 True Score에 대한 정보 없이도 계산 가능 (단, 포본 $x \sim p$ 는 필요)
- $\Delta_x \log q_\theta (x)$만 네트워크 등으로 파라미터화
- Score Matching Objective
- 결과: 모델이 학습 후 $\Delta_x \log q_\theta (x)$가 $\Delta_x \log p(x)$ (true data)와 유사해짐
- 즉, Model Score $\approx$ True Score
5. 왜 Score Matchingdl DIFFUSION MODEL에 유용한가?
- 5-1. Score-based Generative Model 아이디어 (Yang Song et al.)
- 목표: 데이터의 복잡한 분포 $p_{\text{data}}(x)$에서 샘플링 하고싶음
- 역추적 (Reverse SDE)
- Forward: 데이터 -> 노이즈 (점점 무작위)
- Reverse: 노이즈 -> 데이터 (점점 구조 복원)
- 이 때, $\Delta_x \log p_{\text{data}}(x)$ (Score)가 필요 (노이즈를 제거하는 방향)
- Score Matching: 데이터에 직접 $\Delta_x \log p_{\text{data}} (x)$를 배우기 어려우므로,
- Score Function $\Delta_x \log p_\theta (x)$를 신경망으로 근사,
- Score Matching Objective로 학습
- Sampling: 학습이 끝난 후, "역방향 SDE"를 Euler-Maruyama 등 수치 기법으로 풀면
- 무작위 잡음에서 시작해서 점점 "데이터 같은 샘플"을 얻음
- 5-2. 실제 구현 흐름
- 네트워크 $\mathcal{s}_\theta (x)$정의: "$x \rightarrow $"(score vector)
- 데이터 {$x_i$}준비
- Score Matching Loss 이용 -> $\theta$ 업데이터 (Gradient Descent)
- 학습된 $s_\theta$를 이용해 Langevin Dynamics 또는 Reverse SDE로 샘플 생성
6. 간단 예시 (1D 정규 분포)
- 진짜 분포: $p(x) = \mathcal{N} (0. \sigma^2)$
- True Score
- $\Delta_x \log p(x) = - \frac{x}{\sigma^2}$
- 모델: $q_\theta (x) = \mathcal{N}(0, \alpha^2)$ (파라미터 $\theta = \alpha$)
- 모델 Score : $\Delta_x \log q_\theta (x) = - \frac{x}{\alpha^2}$
- Score Matching Loss : $\inf \dots$ etc.->
- 최적 $\alpha^* = \alpha$로 수렴
- 결국 모델 Score가 True Score를 맞추게 됨
- 해석
- 이렇게 간단한 경우에는 Score Matching이 실제로 '정규분포 파라미터 맞추기'와 동등해집니다.
- 고차원 복잡한 분포에서도 마찬가지 개념이 확장됩니다.
7. 정리 및 결론
- Score Function
- $\Delta_x \log p(x)$로, "로그 확률분포의 기울기"
- Score Matching
- "로그 확률분포 전체를 직접 학습하지 않고, Score (그 기울기)만 맞추는 방법"
- 이점
- 정규화 상수 몰라도 가능
- 복잡 분포에서도 계산이 단순화 (부분적분으로 True Score 항 제거)
- Diffusion Model & SDE
- Score-based Generative Model(Yang Song et al.): Score를 정확히 학습하면, 역방향 SDE로 노이즈에서부터 샘플링 가능
- 최근 이미지 생성, 오디오 생성, 기타 생성 모델에서 매우 강력한 성능
앞으로 Score-based Generative Model을 본격적으로 이해하려면,
“Score를 학습한 뒤, 이를 이용해 역방향 SDE로 샘플링”한다는 큰 흐름을 잡아두면 됩니다.
Log-likelihood 최대화(또는 MLE) 대신에, Score Matching이라는 독특한 목적함수를 사용해 분포를 학습한다는 점이 현대 확률적 생성모델의 핵심 아이디어 중 하나입니다.
Ref
https://yang-song.net/blog/2021/score/
https://process-mining.tistory.com/210?category=800092
Hyvärinen(2005): “Estimation of Non-Normalized Statistical Models by Score Matching.”
Song, Y. & Ermon, S. (2019). “Generative Modeling by Estimating Gradients of the Data Distribution.” NeurIPS.
Song, Y. et al. (2021). “Score-Based Generative Modeling through Stochastic Differential Equations.” ICLR.
'Artificial Intelligence > Computer Vision' 카테고리의 다른 글
[Diffusion Models] 확산 모델 이해하기 (4) - Energy-Based Model (0) | 2025.01.30 |
---|---|
[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 |