[Diffusion Models] 확산 모델 이해하기 (5) - Score matching

2025. 1. 29. 06:59

 

 

아래 글은 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)$를 계산하려면 대체로 매우 복잡한 적분(고차원) -> 직접 구하기 어려움
  • 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)$ 전체를 직접 다루지 않고도 분포에 관한 중요한 정보를 얻을 수 있음

 

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)
  • 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” 기법 등으로 재구성

 

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] $
  • 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)$만 네트워크 등으로 파라미터화
  • 결과: 모델이 학습 후 $\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 정규 분포)

  1. 진짜 분포: $p(x) = \mathcal{N} (0. \sigma^2)$
  2. True Score
    1. $\Delta_x \log p(x) = - \frac{x}{\sigma^2}$
  3. 모델: $q_\theta (x) = \mathcal{N}(0, \alpha^2)$ (파라미터 $\theta = \alpha$)
  4. 모델 Score : $\Delta_x \log q_\theta (x) = - \frac{x}{\alpha^2}$
  5. Score Matching Loss : $\inf \dots$ etc.->
    1. 최적 $\alpha^* = \alpha$로 수렴
    2. 결국 모델 Score가 True Score를 맞추게 됨
  6. 해석
    1. 이렇게 간단한 경우에는 Score Matching이 실제로 '정규분포 파라미터 맞추기'와 동등해집니다.
    2. 고차원 복잡한 분포에서도 마찬가지 개념이 확장됩니다.

 

 

 

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.

BELATED ARTICLES

more