What is Diffusion Model?
Diffusion Model은 Normalizing Flows, GANS, 또는 VAEs와 같은 다른 생성 모델(이들은 모두 간단한 분포에서 노이즈를 데이터 샘플로 변환한다) 에 비해 그렇게 복잡하지 않다.
Diffusion Model 또한 신경망이 순수한 노이즈에서 시작하여 점진적으로 데이터를 Denoising 하는 방법을 학습한다.
이미지를 예로 들어 자세히 설명하면, Setting은 두 가지 과정으로 구성된다.
- 고정된 forward diffusion process : 이 과정은 우리가 선택한 방식으로 이미지를 점진적으로 가우시안 노이즈를 추가하여 순수 노이즈로 변환한다.
- 학습된 역방향 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)
주요 개념
- 마르코프 연쇄 (Markov Chain) : 전방 확산과정은 마르코프 연쇄로 모델링 된다.
”Markov Chain” : 현재 상태가 이전 상태에만 의존한다는 것을 의미 - 가우시안 노이즈 추가 : 각 시간 단계 t에서 데이터에 가우시안 노이즈를 추가하여 다음 단계의 데이터를 생성
전방 확산 과정의 수학적 정의
: 원본 데이터 (전방 확산 과정의 시작점)
노이즈 schedule : 각 time step t 에서의 노이즈의 양을 조절하는 하이퍼 파라미터 (일반적으로 0에서 1 사이의 값을 가짐)
시간스텝 로 는 전체 단계 수
: 가우시안 분포
- 노이즈 추가 과정 :
정규 분포(가우시안 분포)는 평균 와 분산 라는 두 매개변수로 정의된다.
여기서 는 단계의 데이터 에서 t 단계의 데이터 로 가는 확률 분포를 나타낸다.
평균이 이고, 공분산이 인 가우시안 분포이다.
기본적으로 각 새로운 (약간 더 노이즈가 많은) 이미지는 timesteps 에서 조건부 가우시안 분포로부터 추출된다.
전방 확산 과정의 반복
전방 확산 과정은 원본 데이터 x_0 에서 시작하여 다음과 같이 반복적으로 노이즈를 추가한다.
여기서 는 평균이 0이고, 공분산이 단위행렬인 가우시안 노이즈이다.
전체 전방 확산 과정
이를 통해 최종 단계 에서 데이터 는 원본 데이터 에 매우 많은 노이즈가 추가된 형태가 된다.
따라서, 에서 시작하여 에 도달하게 되며, 적절한 schedule을 설정하면 는 순수 가우시안 schedule이 된다.
- 직접 샘플링
에서 로 직접 샘플링할 수 있다. 이 경우, 반복적인 적용을 통해 얻을 수 있는 결과가 다음과 같다.
- 각 타임스텝에서의 값의 누적곱
이는 초기 데이터 에서 시간 t만큼 진행된 를 직접 샘플링할 수 있게 해준다.
위 공식을 이용해서, 각 타임스텝 t에서 원본데이터 에서 노이즈가 얼마나 제거되는지를 알 수 있다.
전방 확산 과정의 목표
원본 데이터 를 점진적으로 노이즈가 많은 데이터 로 변환하는 것이다. 이는 역방향 과정에서 이 노이즈를 제거하여 원본 데이터를 복원하는 과정을 학습하는 데 필요하다.
역확산 과정 Reverse Diffusion Process
이제 조건부 분포 $p(x_{t−1}
∣x_t
)$ 를 알고 있다면, 역방향으로 이 과정을 실행할 수 있다.
- 무작위 가우시안 노이즈 를 샘플링한 다음 점진적으로 “denoising”하여 실제 분포 에서 샘플을 얻을 수 있다.
그러나, 우리는 $p(x_{t−1}
∣x_t
)$ 모른다. 이는 모든 가능한 이미지의 분포를 알아야 하기 때문에 계산이 불가하다. 따라서 우리는 신경망을 활용하여 이 조건부 확률 분포를 근사(학습) 할 것이다.
이를 라 하고, 여기서 는 경사하강법에 의해 업데이트되는 신경망의 매개변수이다.
역확산 과정의 주요 개념
- 역방향 마르코프 연쇄 : 역확산 과정은 전방 확산 과정의 역방향 마르코프 연쇄로 모델링된다.
- 가우시안 노이즈 제거 : 각 시간 단계 t에서 데이터의 노이즈를 제거하여 이전 단계의 데이터를 복원한다.
역확산 과정의 수학적 정의
- 학습된 역방향 확률 분포 : 모델은 전방확산 과정에서 학습된 데이터를 바탕으로 역방향 확률 분포를 학습한다.
- 역방향 조건부 분포 :
여기서 는 t 단계의 데이터 에서 단계의 데이터 로 가는 확률 분포를 나타낸다.
- 평균 ;
- 분산 ; 는 학습된 평균과 공분산 매개변수이다.
역확산 과정의 반복
- 초기화 : 전방 확산 과정의 최종 단계 에서 데이터 를 초기화한다.
- 역방향 샘플링 : 각 시간 단계 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과 사이에서 균일하게 노이즈 수준 를 샘플링합니다(즉, 임의의 시간 단계).
- 노이즈 추가 : 가우시안 분포에서 일부 노이즈를 샘플링하고, 위에서 정의된 "nice property"를 사용하여 이 노이즈로 입력을 수준 에서 손상시킵니다.
- 노이즈 예측 학습 : 신경망은 알려진 일정 를 기반으로 에 적용된 노이즈를 기반으로 손상된 이미지 에 따라 이 노이즈를 예측하도록 훈련됩니다.
실제로는 확률적 경사 하강법을 사용하여 신경망을 최적화하기 때문에 이러한 모든 과정은 데이터 배치(batch)로 수행됩니다.
'학부연구생 > Diffusion Model' 카테고리의 다른 글
How to create pipeline? (0) | 2024.07.01 |
---|---|
First Week : Introduction of Diffusion Course (0) | 2024.07.01 |