Theory/Computer Vision

[Diffusion 스터디] 확산 모델의 수학 1.5~ 1.5.5 정리

YeonJuJeon 2025. 4. 18. 19:25

1.5 점수: 로그 우도 입력에 대한 기울기

고차원 확률 모델의 분배함수 계산은 어렵고, 분배함수 계산이 필요 없는 MCMC 방법도 우도가 높은 영역으로 효율적 접근이 어려움.

이를 해결하기 위해 점수(score) 개념을 도입한다.

점수 함수의 정의

점수 함수란 확률분포 $p(x)$ 에 대해 다음과 같이 정의됨:

$$s(x) := \nabla_x \log p(x)$$

  • $x \in \mathbb{R}^d$일 때, 점수는 $\mathbb{R}^d \to \mathbb{R}^d$인 벡터값 함수
  • 입력 벡터 $x$에 대한 로그 우도기울기(gradient) 를 의미

점수의 의미

  • 점수는 입력공간 상의 벡터장을 형성
  • 각 점 $x$에서 점수 벡터는 로그 우도가장 빠르게 증가하는 방향과 크기를 나타냄

: 로그우도의 등고선에서 점수 벡터(기울기)는 등고선을 수직으로 가로지르며, 우도가 증가하는 방향을 가리킴

점수 함수의 수식 전개

$$\nabla_x \log p(x) = \frac{\nabla_x p(x)}{p(x)}$$

→ 분자: 우도의 기울기
→ 분모: 확률값
→ 이 비율은 로그 우도의 변화율

점수의 유용성

  • 분배함수 $Z(\theta)$ 를 사용하지 않아도 됨
  • 예시:

$$q_\theta(x) = \frac{1}{Z(\theta)} \exp(-f_\theta(x))$$ $$\nabla_x \log q_\theta(x) = -\nabla_x f_\theta(x)$$

$\nabla_x \log Z(\theta) = 0$이기 때문에, 정규화 상수와 무관하게 기울기 계산 가능

1.5.1 랑주뱅 몬테카를로 방법 (Langevin Monte Carlo)

MCMC 기법 중 하나로, 점수 함수를 이용해 확률분포 $p(x)$로부터 표본을 생성하는 방법.

기본 아이디어

  • 확률이 높은 영역으로 점수 방향을 따라 이동 + 작은 노이즈 추가
  • 이를 반복하여 분포 $p(x)$로부터 샘플을 생성함

수식

$$x_{k+1} = x_k + \epsilon \nabla_x \log p(x_k) + \sqrt{2\epsilon} u_k,\quad u_k \sim \mathcal{N}(0, I)$$

  • $\epsilon$: 학습률 혹은 이동 크기
  • $\nabla_x \log p(x_k)$: 점수
  • $\sqrt{2\epsilon} u_k$: 가우시안 노이즈

: 점수 방향으로 이동 + 노이즈를 통해 $p(x)$의 등고선을 따라가며 탐색

알고리즘 1.1: Langevin Monte Carlo

  1. 초기화: $x_0 \sim \mathcal{N}(0, I)$
  2. 반복:$x_k = x_{k-1} + \epsilon \nabla_x \log p(x_{k-1}) + \sqrt{2\epsilon} u_k$
  3. $K$번 반복 후 $x_K$를 최종 샘플로 반환

$\epsilon \to 0$, $K \to \infty$ 이면, 이론적으로 $p(x)$에 수렴

랑주뱅 확산식

이 점수 기반 이동을 확률 과정으로 표현하면 다음과 같은 확산 방정식이 됨:

$$dX_t = \nabla \log p(X_t)\, dt + \sqrt{2}\, dW_t$$

  • $W_t$: 브라운 운동
  • 확률 밀도는 $p(x) \propto \exp(-E(x))$ 형태일 때,
    $\nabla \log p(x) = -\nabla E(x)$

→ 확률이 높은 영역을 따라 이동하게 되는 동역학 해석 가능

1.5 - 1.5.1 정리

  • 점수는 로그 우도에 대한 입력의 기울기
  • 분포 $p(x)$의 정규화 상수 없이 기울기 기반 표본 추출 가능
  • 랑주뱅 MCMC는 점수를 따라 이동하면서 확률 높은 영역을 효율적으로 탐색
  • 이를 통해 고차원 확률분포에서도 효율적인 샘플링 및 탐색이 가능

1.5.2 점수 매칭

핵심 개념

  • 확률분포의 점수 $\nabla_x \log p(x)$ 를 직접 계산하지 않고, 이를 근사/추정하여 학습하는 방식.
  • Score Based Model (SBM) 이라 하며, 확률분포 대신 그 점수만 학습.

왜 점수만으로 충분한가?

  • 확률분포는 정규화 조건(총합 또는 적분이 1)을 만족해야 하므로,
  • 모든 입력에서 점수만 동일하면 분포도 동일함 (정규화 상수 차이 무시 가능).

명시적 점수 매칭 (Explicit Score Matching, ESM)

정의 수식

$$J_{\text{ESM}}(\theta) = \frac{1}{2} \mathbb{E}_{p(x)} \left[ \|\nabla_x \log p(x) - s_\theta(x)\|^2 \right]$$

  • 목표: 참 점수 $\nabla_x \log p(x)$ 와 모델 점수 $s_\theta(x)$ 간 차이를 최소화
  • 문제: 참 점수 $\nabla_x \log p(x)$는 실제론 모름

1.5.3 암묵적 점수 매칭 (Implicit Score Matching, ISM)

정의 수식

$$J_{\text{ISM}}(\theta) = \mathbb{E}_{p(x)} \left[ \frac{1}{2} \|s_\theta(x)\|^2 + \text{tr}(\nabla_x s_\theta(x)) \right]$$

  • 위 식은 명시적 점수 매칭의 결과에서 $\nabla_x \log p(x)$를 제거한 형태
  • Hessian trace 항을 포함함으로써, 참 점수 없이도 학습 가능

수식 해설

  • $s_\theta(x)$: 모델이 추정한 점수
  • $\nabla_x s_\theta(x)$: 점수의 야코비안 (각 성분에 대한 편미분)
  • $\text{tr}(\nabla_x s_\theta(x))$: 점수 벡터장의 발산 (Hessian trace)

실제 학습에서는?

  • 참 분포 $p(x)$에서의 기대값을 알 수 없으므로,
  • 훈련 데이터 $\{x^{(1)}, \dots, x^{(N)}\}$평균으로 대체:

$$J_{\text{ISM-empirical}}(\theta) = \frac{1}{N} \sum_{i=1}^N \left[ \frac{1}{2} \|s_\theta(x^{(i)})\|^2 + \text{tr}(\nabla_x s_\theta(x^{(i)})) \right]$$

직관적 해석

(a) 첫 번째 항 $\|s(x^{(i)})\|^2$ 의 의미:

  • 훈련 데이터 위치의 점수가 0이 되게끔 학습됨
  • → 훈련 데이터는 로그 우도의 극솟값, 안정점이 되도록 함

(b) 두 번째 항 $\text{tr}(\nabla_x s(x^{(i)}))$의 의미:

  • 훈련 데이터의 위치가 에너지 함수의 극댓값이 되도록 유도
  • 로그 우도 곡면의 오목성/곡률을 조정

 

명시적 점수 매칭 (ESM) 참 점수 필요. GT 점수와 예측 점수 사이 거리 최소화
암묵적 점수 매칭 (ISM) 참 점수 없이도 학습. 발산(trace) 항으로 학습 유도
첫 항의 의미 훈련 데이터 위치를 점수=0, 즉 극솟값으로
두 번째 항의 의미 훈련 데이터 위치가 확률분포의 고밀도 영역에 있도록 곡률 조정

1.5.4 암묵적 점수 매칭이 점수를 추정할 수 있다는 증명

목표

  • 명시적 점수 매칭 (ESM)과 암묵적 점수 매칭 (ISM)이 상수 항을 제외하고 동일한 목적함수임을 보임
  • 즉, 암묵적 점수 매칭을 통해 실제 점수를 정확히 근사할 수 있음을 증명

두 목적함수

$$J_{\text{ESM}}(\theta) = \frac{1}{2} \mathbb{E}_{p(x)}\left[\|\nabla_x \log p(x) - s_\theta(x)\|^2\right] \tag{1.5}$$ $$J_{\text{ISM}}(\theta) = \mathbb{E}_{p(x)}\left[\frac{1}{2} \|s_\theta(x)\|^2 + \text{tr}(\nabla_x s_\theta(x))\right] \tag{1.6}$$

가정 조건

  1. $p(x)$는 미분 가능
  2. $\mathbb{E}_{p(x)}[\|\nabla_x \log p(x)\|^2]$가 유한
  3. $\mathbb{E}_{p(x)}[\|s_\theta(x)\|^2]$가 유한
  4. $\lim_{\|x\| \to \infty} p(x)s_\theta(x) = 0$

→ 위 조건이 성립하면 다음이 성립:

$$J_{\text{ESM}}(\theta) = J_{\text{ISM}}(\theta) + C_1$$

(단, $C_1$은 θ와 무관한 상수)

증명 개요

  1. 명시적 점수 매칭 식 (1.5)을 전개:

$$\frac{1}{2} \mathbb{E}_{p(x)}\left[\|\nabla_x \log p(x)\|^2 + \|s_\theta(x)\|^2 - 2 \langle \nabla_x \log p(x), s_\theta(x) \rangle \right]$$

  • (1) 첫 항: θ와 무관 → 상수
  • (2) 두 번째 항: $\mathbb{E}_{p(x)}[\|s_\theta(x)\|^2]$
  • (3) 세 번째 항: $\mathbb{E}_{p(x)}[\langle \nabla_x \log p(x), s_\theta(x) \rangle]$
  1. 내적 항 전개 및 치환:

$$\langle \nabla_x \log p(x), s_\theta(x) \rangle = \sum_i \frac{\partial \log p(x)}{\partial x_i} s_{\theta, i}(x)$$ $$= \sum_i \frac{1}{p(x)} \frac{\partial p(x)}{\partial x_i} s_{\theta, i}(x)$$

→ 부분적분을 적용하여 다음으로 바뀜:

$$-\sum_i \int p(x) \frac{\partial s_{\theta, i}(x)}{\partial x_i} dx$$

  1. 보조정리 (부분적분 정리)

$$\int f(x) g'(x) dx = - \int f'(x) g(x) dx$$

  • 단, $\lim_{|x|\to\infty} f(x)g(x) = 0$이어야 성립

→ 다변수 함수에 대해서도 동일하게 적용됨

  1. 최종 결과:

$$\mathbb{E}_{p(x)}\left[\langle \nabla_x \log p(x), s_\theta(x) \rangle \right] = -\mathbb{E}_{p(x)}\left[\text{tr}(\nabla_x s_\theta(x))\right]$$

→ 이 항을 대입하면,

$$J_{\text{ESM}}(\theta) = \mathbb{E}_{p(x)}\left[\frac{1}{2} \|s_\theta(x)\|^2 + \text{tr}(\nabla_x s_\theta(x))\right] + \text{const} = J_{\text{ISM}}(\theta) + C_1$$

1.5.4 정리

암묵적 점수 매칭은 명시적 점수 매칭과 본질적으로 동일한 목적함수를 가진다. 따라서 참 점수 $\nabla_x \log p(x)$ 를 직접 알지 못해도, 암묵적 점수 매칭을 통해 효과적으로 근사 및 학습이 가능하다.


1.5.5 디노이징 점수 매칭 (DSM)

배경

암묵적 점수 매칭은 참 점수가 없어도 학습 가능하지만 다음 두 가지 문제가 있다:

1. 계산량 문제

  • ISM에서 사용하는 목적함수:

$$\mathbb{E}_{p(x)}\left[\text{tr}(\nabla_x s_\theta(x))\right]$$

  • 이 항을 계산하려면 야코비안 행렬의 trace 계산, 즉 각 성분에 대해 두 번 미분 (Hessian trace) 해야 함
  • 계산 복잡도는 O(d²)로 고차원 데이터에서는 부담

2. 과적합 문제

  • ISM은 훈련 데이터 위치에서만 점수가 0이 되도록 학습됨
  • 데이터가 적을 경우, 학습 모델이 그 위치만 집중적으로 외우고, 일반화되지 않음
  • 이는 분포 전체를 잘 설명하지 못하고, overfitting 유발

DSM의 도입: 위 문제를 해결하기 위한 방법

DSM은 위 두 문제를 해결하기 위해 고안된 방법이며, 핵심 아이디어는 다음과 같다:

노이즈 추가 → 디노이징 학습

  • 원래 데이터 $x$에 노이즈 $\epsilon \sim \mathcal{N}(0, \sigma^2 I)$ 를 더해 $\tilde{x} = x + \epsilon$라는 노이즈가 낀 입력을 생성
  • 노이즈가 낀 입력 $\tilde{x}$로부터 원래 $x$를 복원(denoise) 하는 방향의 점수를 학습

수식 정리

  • 조건부 분포:

$$p_\sigma(\tilde{x}|x) = \mathcal{N}(\tilde{x}; x, \sigma^2 I)$$

  • 노이즈 추가 후 마진 분포 (marginal):

$$p_\sigma(\tilde{x}) = \int p_\sigma(\tilde{x}|x) p(x) dx$$

→ 데이터에 노이즈를 입힌 분포 (그림 1.11)

DSM 목적함수

$$J_{\text{DSM}_\sigma}(\theta) = \frac{1}{2} \mathbb{E}_{x, \epsilon}\left[ \left\| \frac{1}{\sigma^2} \epsilon + s_\theta(x + \epsilon, \sigma) \right\|^2 \right]$$

→ 위는 다음 수식과 같음:

$$J_{\text{DSM}_\sigma}(\theta) = \frac{1}{2} \mathbb{E}_{\epsilon \sim \mathcal{N}(0, \sigma^2 I), x \sim p(x)}\left[ \frac{1}{\sigma^2} \|s_\theta(x + \epsilon, \sigma)\|^2 \right] \tag{1.11}$$

  • $\epsilon$은 노이즈, $s_\theta$점수 추정 모델
  • $\frac{1}{\sigma^2} (x - \tilde{x})$는 조건부 분포의 정확한 점수 (해석적으로 계산 가능)

조건부 확률의 점수 계산

$$\nabla_{\tilde{x}} \log p_\sigma(\tilde{x} \mid x) = \frac{1}{\sigma^2}(x - \tilde{x}) = -\frac{1}{\sigma^2} \epsilon$$

→ 이 점수를 정답으로 삼아 학습

직관적 의미

  • 원래 데이터에서 노이즈를 가한 후, 노이즈 방향으로 복원하는 벡터를 점수로 학습
  • 점수는 노이즈 크기에 비례스케일링된 벡터

DSM의 장점

  • 고차원에서도 효율적 계산 가능
  • 정규화 항이 없어도 학습 안정화
  • σ\sigma를 여러 크기로 사용하면 더 다양한 수준의 노이즈에서 학습 가능

1.5.5 정리

$$J_{\text{DSM}_\sigma}(\theta) = J_{\text{ESM}_{p_\sigma}}(\theta) + C$$

즉, DSM은 노이즈가 낀 분포 $p_\sigma$ 에서의 명시적 점수 매칭과 같으며, 추가된 노이즈의 스케일에 맞춘 점수 예측 문제로 볼 수 있다.