학부연구생/Diffusion Model

DDPM (Denoising Diffusion Probabilistic Models)

yooni825 2024. 7. 1. 15:55

What is Diffusion Model?

Diffusion Model은 Normalizing Flows, GANS, 또는 VAEs와 같은 다른 생성 모델(이들은 모두 간단한 분포에서 노이즈를 데이터 샘플로 변환한다) 에 비해 그렇게 복잡하지 않다.

Diffusion Model 또한 신경망이 순수한 노이즈에서 시작하여 점진적으로 데이터를 Denoising 하는 방법을 학습한다.

이미지를 예로 들어 자세히 설명하면, Setting은 두 가지 과정으로 구성된다.

  1. 고정된 forward diffusion process  : 이 과정은 우리가 선택한 방식으로 이미지를 점진적으로 가우시안 노이즈를 추가하여 순수 노이즈로 변환한다.
  2. 학습된 역방향 denoising diffusion process 𝑝𝜃 : 이 과정에서는 신경망이 순수 노이즈에서 시작하여 점진적으로 이미지를 denoising 하도록 학습된다.

순전파 및 역방향 과정은 일정한 time steps 𝑇 동안 인덱싱된다. (DDPM 저자들은 T=1000을 사용)

  • t=0 에서 실제 이미지 을 데이터 분포에서 샘플링 ( ex. ImageNet에서 고양이 이미지)
  • 순전파 과정에서 각 timesteps t에서 가우시안 분포에서 일부 노이즈를 샘플링하여 이전 timesteps의 이미지에 추가
  • 충분히 큰 와 각 time steps에서 노이즈를 추가하는 적절한 schedule이 주어지면, 점진적인 과정을 통해 t = T에서 isotropic Gaussain distribution 가 된다.
    • isotropic Gaussian distribution 등빙성 가우시안 분포 : 가우시안 분포에서 covariance matrix가 scala와 identitiy matrix의 곱인 경우이다.
    • 등빙성 = 방향과 상관없는 성질

In more mathematical form

궁극적으로는 신경망이 최적화해야 할 손실함수를 유도해야 한다.

 : 실제 데이터 분포 (ex. 실제 이미지의 분포)
 ~ : 이 분포에서 샘플링하여 이미지를 얻을 수 있다.
전방 확산 과정  : 각 time step 에서 가우시안 노이즈를 추가
이는 알려진 분산 schedule 0<𝛽1<𝛽2<...<𝛽𝑇<1 에 따라 다음과 같이 정의된다 .

전방 확산 과정 Forward Diffusion Process

: 원본 이미지 에 time step 에 따라 점진적으로 가우시안 노이즈를 추가

데이터 에 노이즈를 점진적으로 추가하여 에 도달하는 과정을 거친다. → 마르코프 연쇄 (Markov chain)

주요 개념

  1. 마르코프 연쇄 (Markov Chain) : 전방 확산과정은 마르코프 연쇄로 모델링 된다.
    ”Markov Chain” : 현재 상태가 이전 상태에만 의존한다는 것을 의미
  2. 가우시안 노이즈 추가 : 각 시간 단계 t에서 데이터에 가우시안 노이즈를 추가하여 다음 단계의 데이터를 생성

전방 확산 과정의 수학적 정의

 : 원본 데이터 (전방 확산 과정의 시작점)
노이즈 schedule  : 각 time step t 에서의 노이즈의 양을 조절하는 하이퍼 파라미터 (일반적으로 0에서 1 사이의 값을 가짐)
시간스텝   는 전체 단계 수
 : 가우시안 분포

  1. 노이즈 추가 과정 :

정규 분포(가우시안 분포)는 평균 와 분산  라는 두 매개변수로 정의된다.

여기서    단계의 데이터  에서 t 단계의 데이터 로 가는 확률 분포를 나타낸다.

평균이  이고, 공분산이   가우시안 분포이다.

기본적으로 각 새로운 (약간 더 노이즈가 많은) 이미지는 timesteps 에서 조건부 가우시안 분포로부터 추출된다.

전방 확산 과정의 반복

전방 확산 과정은 원본 데이터 x_0 에서 시작하여 다음과 같이 반복적으로 노이즈를 추가한다.

여기서  는 평균이 0이고, 공분산이 단위행렬인 가우시안 노이즈이다.

전체 전방 확산 과정

이를 통해 최종 단계 에서 데이터 는 원본 데이터 에 매우 많은 노이즈가 추가된 형태가 된다.

따라서, 에서 시작하여  에 도달하게 되며, 적절한 schedule을 설정하면 는 순수 가우시안 schedule이 된다.

  1. 직접 샘플링

에서 로 직접 샘플링할 수 있다. 이 경우, 반복적인 적용을 통해 얻을 수 있는 결과가 다음과 같다.

  •  각 타임스텝에서의  값의 누적곱

이는 초기 데이터 에서 시간 t만큼 진행된 를 직접 샘플링할 수 있게 해준다.

위 공식을 이용해서, 각 타임스텝 t에서 원본데이터 에서 노이즈가 얼마나 제거되는지를 알 수 있다.

전방 확산 과정의 목표

원본 데이터 를 점진적으로 노이즈가 많은 데이터 로 변환하는 것이다. 이는 역방향 과정에서 이 노이즈를 제거하여 원본 데이터를 복원하는 과정을 학습하는 데 필요하다.

역확산 과정 Reverse Diffusion Process

이제 조건부 분포 $p(x_{t−1}

∣x_t

)$ 를 알고 있다면, 역방향으로 이 과정을 실행할 수 있다.

  • 무작위 가우시안 노이즈 를 샘플링한 다음 점진적으로 “denoising”하여 실제 분포 에서 샘플을 얻을 수 있다.

그러나, 우리는 $p(x_{t−1}

∣x_t

)$ 모른다. 이는 모든 가능한 이미지의 분포를 알아야 하기 때문에 계산이 불가하다. 따라서 우리는 신경망을 활용하여 이 조건부 확률 분포를 근사(학습) 할 것이다.

이를  라 하고, 여기서 는 경사하강법에 의해 업데이트되는 신경망의 매개변수이다.

역확산 과정의 주요 개념

  1. 역방향 마르코프 연쇄 : 역확산 과정은 전방 확산 과정의 역방향 마르코프 연쇄로 모델링된다.
  2. 가우시안 노이즈 제거 : 각 시간 단계 t에서 데이터의 노이즈를 제거하여 이전 단계의 데이터를 복원한다.

역확산 과정의 수학적 정의

  1. 학습된 역방향 확률 분포 : 모델은 전방확산 과정에서 학습된 데이터를 바탕으로 역방향 확률 분포를 학습한다.
  2. 역방향 조건부 분포 :

여기서  는 t 단계의 데이터 에서  단계의 데이터 로 가는 확률 분포를 나타낸다.

  1. 평균 ;
  2. 분산 ; 는 학습된 평균과 공분산 매개변수이다.

역확산 과정의 반복

  1. 초기화 : 전방 확산 과정의 최종 단계 에서 데이터 를 초기화한다.
  2. 역방향 샘플링 : 각 시간 단계 t에서 다음과 같은 방식으로 노이즈를 제거하여 이전 단계의 데이터를 샘플링한다.

여기서  는 가우시안 노이즈입니다. 이 과정을 까지 반복

따라서, 우리의 신경망은 평균과 분산을 학습/표현해야 한다. 하지만, DDPM 저자들은 분산을 고정된 값으로 두고, 신경망이 이 조건부 확률 분포의 평균  만을 학습(표현)하도록 결정했다.

먼저  를 학습되지 않은 시간 dependent 상수로 설정한다. 실험적으로  
 는 유사한 결과를 보였다.

Defining an objective function (by reparametrizing the mean) 목표 함수 정의

역방향 과정의 평균을 학습하기 위한 objective function을 도출하기 위해, 저자들은    의 조합이 variational auto-encoder (VAE)로 볼 수 있음을 관찰했다. 따라서, variational lower bound(ELBO) 을 사용하여 실제 데이터 샘플 에 대해 음의 로그 가능도를 최소할 수 있다. (ELBO에 대한 자세한 내용은 VAE 논문을 참조) 이 과정에 대한 ELBO는 각 time steps 에서의 손실의 합인  임이 밝혀졌다. 순전파 와 역전파 과정의 구성에 따라 손실의 각 항 ( 제외)은 사실 2 가우시안 분포 간의 KL 발산으로, 이는 L2 손실로 명시될 수 있다.

역방향 확산 과정의 평균을 학습하기 위해 저자들이 제안한 목표 함수(objective function)는, Diffusion Model이 Variational Autoencoder(VAE)와 비슷하게 동작할 수 있음을 활용하여, 변분 하한 (ELBO)을 통해 음의 로그 가능도 (negative log-likelihood)를 최소화하는 것이다.

이 과정에서 전방 확산 과정에서 노이즈가 추가된 데이터를 사용하여 역방향 과정에서 노이즈를 제거하는 방법을 학습하게 된다.

1. Variational Lower Bound(ELBO)

VAE에서와 마찬가지로, 확산 모델의 전방 과정 와 역방향 과정  는 ELBO를 사용하여 음의 로그 가능도를 최소화 한다. ELBO 는 다음과 같이 각 시간 단계 t에서의 손실의 합으로 표현된다.

여기서 각 손실 항 L_t는 두 가우시안 분포 간의 KL 발산 (KL divergence)으로 나타낼 수 있으며, 이는 L2 손실로 명시될 수 있다.

2. “Nice Property”

전방 확산 과정 의 직접적인 결과는 다음과 같다.

여기서  이다. 이는 다음과 같은 “nice property”를 제공한다.

여기서 는 가우시안 노이즈이다. 이는 가우시앙ㄴ 노이즈를 적절히 스케일링하여 에 추가하여 직접 를 얻을 수 있음을 의미한다.

3. 목표 함수 (Objective Function)

  분산 schedule 함수로 알려져 있으며 미리 계산할 수 있다. 전방 확산 과정에서 임의의 노이즈 수준 t에서 를 샘플링할 수 있기 때문에, 학습 중에는 손실함수 의 임의항을 최적화 할 수 있다. 이는 훈련 중 임의로 t를 샘플링하고 를 최적화하는 것을 의미한다.

4. 평균의 재파라미터화 (Reparameterization of the Mean)

저자들은 평균을 재파라미터화하여 신경망이 손실을 구성하는 KL항의 노이즈 수준 t에 대한 네트워크 를 통해 추가된 노이즈를 학습(예측)하게 할 수 있다는 것을 발견했다. 이는 신경망이 (직접적인) 평균 예측자가 아니라 노이즈 예측자가 됨을 의미합니다. 평균은 다음과 같이 계산할 수 있습니다:

5. 최종 목표 함수 (Final Objective Function)

최종 목표 함수 는 다음과 같습니다 (임의의 시간 단계 에 대해 )

  • 노이즈 예측 : 이 방법은 신경망이 추가된 노이즈를 예측하도록 만든다. 이는 평균을 직접 예측하는 것보다 더 안정적일 수 있다.
  • 재파라미터화 : 평균을 재파라미터화 하여 노이즈를 예측하도록 변경함으로써, 신경망의 학습 목표가 변경된다.
  • 목표 함수 : 최종 목표 함수는 예측된 노이즈와 실제 노이즈 간의 L2 손실이다.

여기서,  는 초기(실제, 손상되지 않은) 이미지이며, 고정된 전방 과정에 의해 주어진 직접적인 노이즈  샘플을본다.  는 timestep  에서 샘플링된 순수 노이즈이고,  는 우리의 신경망이다.

6. 학습 과정 요약

신경망은 실제 가우시안 노이즈와 예측된 가우시안 노이즈 간의 간단한 평균제곱오차 (MSE)를 사용하여 최적화된다.

  1. 데이터 샘플링 : 실제로 알려지지 않고 복잡할 수 있는 데이터 분포 에서 랜덤 샘플 를 가져옵니다.
  2. 노이즈 수준 샘플링 : 1과  사이에서 균일하게 노이즈 수준 를 샘플링합니다(즉, 임의의 시간 단계).
  3. 노이즈 추가 : 가우시안 분포에서 일부 노이즈를 샘플링하고, 위에서 정의된 "nice property"를 사용하여 이 노이즈로 입력을 수준 에서 손상시킵니다.
  4. 노이즈 예측 학습 : 신경망은 알려진 일정 를 기반으로 에 적용된 노이즈를 기반으로 손상된 이미지 에 따라 이 노이즈를 예측하도록 훈련됩니다.

실제로는 확률적 경사 하강법을 사용하여 신경망을 최적화하기 때문에 이러한 모든 과정은 데이터 배치(batch)로 수행됩니다.

'학부연구생 > Diffusion Model' 카테고리의 다른 글

How to create pipeline?  (0) 2024.07.01
First Week : Introduction of Diffusion Course  (0) 2024.07.01