일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- Algorithm
- 밑바닥부터 시작하는 딥러닝2
- DFS
- 딥러닝
- Machine Learning
- Baekjoon
- Transformer
- Python
- Generative Models
- marchine learning
- BFS
- Multi-Head Attention
- cs231n
- Adam
- CNN
- Alexnet
- Regularization
- do it! 알고리즘 코딩테스트: c++편
- deep learning
- dropout
- assignment2
- Optimization
- CPP
- assignment1
- SQLD
- C++
- mask r-cnn
- 밑바닥부터 시작하는 딥러닝
- RNN
- computer vision
- Today
- Total
newhaneul
[Seoul National Univ: Computer Vision] Lecture 22. Diffusion Models 1 본문
[Seoul National Univ: Computer Vision] Lecture 22. Diffusion Models 1
뉴하늘 2025. 7. 3. 17:14본 포스팅은 서울대학교 이준석 교수님의 M3224.000100 Machine Learning for Visual Understanding을 수강하고 공부한 내용을 정리하기 위한 포스팅입니다.
https://www.youtube.com/watch?v=UfjZIe0aqVk&t=2s
1. Score-based Generative Modeling: NCSN(Noise Conditional Score Network, 2019)
Score-based Generative Modeling
1. Score Matching 기반 생성
- 데이터 분포 p(x)의 log probability density의 gradient를 학습하는 방식
- 이 gradient를 score function s_θ라고 한다.
2. Noise scale σ 도입
- 실제 데이터 분포 p(x)는 알 수 없기 때문에 score function을 직접 계산할 수 없다.
- 대신에 noise scale σ를 도입하여 noise conditional score function을 학습하는 것은 가능하다.
- 이 noise conditional score function을 원래의 score function과 비슷해지도록 학습을 진행한다.
아래 슬라이드는 score function을 실제 데이터의 log density probabilty의 gradient를 근사하도록 MSE loss를 최소화하는 식이다.
이제 이 식을 정리하는데, 먼저 Expectation은 적분으로 변환할 수 있으므로, 적분으로 바꿔준다.
적분으로 바꾼 형태의 식은 아래와 같다. 아래 식의 제곱을 전개하면 3개의 항이 나오게 된다.
이때 첫 번째 항의 경우에는 score function과 무관한 상수이므로 무시해도 된다. 이제 세 번째 항에 대하여 수식을 전개하도록 한다.
세 번째 항에 로그 미분 항 정리를 적용하면 아래 식으로 변형할 수 있다. 이제 이 항에 부분적분 공식을 적용한다.
아래의 부분적분 공식을 적용하면
아래와 같은 식을 얻을 수 있고, 여기서 p(x)는 전체에 대해서 적분을 하게 되면 0이 된다고 가정한다.(울퉁불퉁한 지형도를 의미하기 때문에 0이 된다고 가정.. 정확하게 이해는 못함)
최종적으로 정리하면 다음이 성립된다.
그러면 남은 두 항을 더한 최종 목적 함수는 아래와 같다.
∇xlogp(x) | 우리가 학습하고자 하는 정답 score function |
sθ(x) | 학습할 네트워크 |
목적 함수 | score 정답과 예측 간 MSE에서 유도된 score matching loss |
Challenge 1: Limited Support
지금까지는 score function을 훈련시키는데 사용하기 위한 식을 만들었다. 하지만 data sample이 부족한 low density 영역에서는 score function을 학습할 근거가 부족하다. score matching은 data의 logl probabilty gradient를 근사하는데, 본질적으로 p(x)가 작게 되면 학습 신호가 약해지는 문제가 있다. 즉, 데이터가 없는 영역에서도 score function을 잘 추정해야 좋은 샘플을 생성할 수 있는데, 현재 상황에서는 score function이 데이터 근처에만 학습되는 것이 문제이다.
Proposed Solution: Denoising Score Matching
이 Limited Support 문제를 해결하기 위한 전략으로 NCSN에서는 원래 데이터 x에 gasussian noise를 추가한 x~를 사용하는 새로운 분포 perturb data distribution q(x~|x)를 정의한다.
그러면 아래의 MSE loss 식의 p(x)를 q(x~|x)로 바꿔줘야하고
수정된 MSE loss는 아래와 같다.
그러면 q(x~|x)는 다변량 Gaussian 분포의 확률 밀도 함수이므로 아래의 다변량 Gaussian 공식에 대입하면
아래와 같이 표현할 수 있고 이제 로그를 취하면
아래와 같이 식 정리가 가능하다. 이제 이 식에 대해서 x~ 미분을 해야하므로 첫 번째 항은 없어지고 두 번째 항만 남게 된다.
따라서 최종적으로 이렇게 전개 되고
이 식을 얻을 수 있다.
Sampling with Langevin Dynamics
Langevin dynamics는 확률 미분 방정식(SDE)의 일종으로, 물리학에서 입자의 움직임을 모델링하는 방정식이다.
딥러닝에서는 Langevin Dynamics를 다음과 같이 샘플링 알고리즘으로 재해석한다.
- score는 이 방향으로 진행하면 확률 밀도가 높아짐을 알려준다.
- Langevin dynamics는 이 방향으로 이동하면서 조금씩 noise를 추가한다.
- 시간이 지날수록 고밀도 영역으로 수렴하게 된다.
Challenge 2: Incorrect Relative Density
방금까지는 데이터의 저밀도 영역에서도 학습이 원활하게 진행되도록 noise를 추가한 뒤 추가 된 데이터 x~에 대해 Langevin dynamics를 샘플링 하였다.
이번에는 두 번째 문제인 상대적인 분포 비율에 대한 문제에 대해 알아보도록 한다. 아래 슬라이드의 데이터 샘플처럼 데이터의 고밀도 영역과 저밀도 영역으로 나뉘어져 있을 경우에 두 영역 간의 상대적인 분포 비율을 계산한 뒤 그에 맞는 비율로 Langevin dynamics가 새로운 샘플을 만들어내야 한다. 하지만 지금까지의 방법으로는 상대적인 분포 정보를 포함하지 않고, 국소적인 방향 정보만 보고 샘플을 이동시켰다. 따라서 더 자주 등장하는 고밀도 영역 정보를 반영하지 않고 있다.
Proposed Solution: Multiple Noise Levels
Challenge 2의 해결 전략으로 Multi-level Gaussian noise를 사용한다. 처음에는 큰 noise로 퍼진 데이터 위에서 score를 학습하고, 점차 noise를 줄여가며 원래의 데이터 분포로 수렴시킨다.
Annealed Langevin Dynamics
Noise Conditional Score Networks: Training
1. Choose noise distribution
- 임의의 noise distribution을 선택하고, 다음 denoising 방향을 예측하는 score function을 학습한다.
2. Denoising score matching loss
- 선택한 noise distribution의 MSE loss를 계산하여 score function이 log q(x~|x) gradient가 되도록 학습한다.
3. Average for all noise levels
- 모든 noise distribution의 loss들을 구하고 평균을 내어 전체 loss를 구한다.
Noise Conditional Score Networks: Inference
- 큰 noise부터 시작하여 score function을 학습
- 각 단계마다 Langevin dynamics 수행
2.DDPM(Denoising Diffusion Probailistic Models, 2020)
Denoising Diffusion Probailistic Model은 데이터를 점점 Gaussian noise로 오염시키고, 학습된 신경망으로 이를 되돌리는 과정을 통해 고품질 이미지를 생성하는 Probabilistic Generative Model이다.
DDPM(Denoising Diffusion Probailistic Models): Forward(Diffusion) Process
- 데이터 x0에 점진적으로 Gaussian noise를 추가하여 x1, x2 ... xT 생성
- 점점 xt는 표준 정규분포에 가까워진다.
- βt: noise variance
Forward process에서 T는 대략 1000에 가까운 정수이기 때문에 순차적으로 진행하게 되면 픽셀마다 1000번씩 gaussian noise를 추가해야한다. 그렇게 되면 complexity가 증가하기 때문에 이 과정을 간편화한다.
각 time step t에서 x_t는 아래의 점화식으로 표현 가능하다. 이때 α는 1- β이다.(β: noise variance)
그러면 위의 점화식을 전개하여 원래 이미지 x0에서부터 임의의 time step x_t까지의 식으로 전개하면 아래와 같다.
이 과정을 통해 임의의 time step의 closed form 표현식을 얻을 수 있고, 이제 원하는 t 시점의 x_t를 한 번에 샘플링 가능하다.
DDPM(Denoising Diffusion Probailistic Models): Reverse(Denoising) Process
DDPM의 reverse process에서는 forward process로 얻은 x_T에서 시작하여 다시 원래 이미지로 되돌아가는 과정을 진행한다. forward process를 마지막 시점까지 진행하여 얻은 x_T는 계속해서 gaussian noise를 추가하였기 때문에 gaussian distribution을 따른다고 가정한다.
그러면 이제 복원 과정에서 구해야할 것은 q(x_t-1|x_t)이다. 하지만 실제 분포인 q를 구할 수 없으므로 gaussian noise가 주어졌을 때의 분포를 따르는 p(x_t-1|x_t)를 구하도록 한다. 모델의 학습이 잘 되었다면 p는 q에 근사할 것이다.
모델의 negative log-likelihood를 최소화시키는 것은 모델의 MLE를 하는 것과 동일하기 때문에 VLB를 적용한다. KL Divergence는 0보다 크기 때문에 아래의 식이 참인 것을 알 수 있다.
KL Divergence 정의를 적용하고 식을 정리하면 아래의 식을 얻을 수 있다. 이 값이 바로 Variational Lower Bound(VLB)이다.
최종적으로 다음과 같은 Loss function을 최소화하면 된다. 이때 q는 실제 분포이므로 구할 수 없다. 따라서 추가적인 전개과정을 진행한다.
VLB를 생성 확률로 분해를 하고 로그 안에 넣어주면 아래와 같이 변형된다.
이때 Bayes Rule을 적용하여 계산가능한 Gaussian distribution으로 표현할 수 있다.
이렇게 전개하면 다음과 같은 세 개의 항으로 분리된 ELBO가 된다.
DDPM Loss Function
Prior matching term
- 원본 이미지에 Noise를 T번 준 x_T가 prior distribution(gaussian distribution)에 잘 정렬되도록 유도하는 항이다.
- 학습 파라미터가 없으므로 상수항으로 간주할 수 있다.
Consistency term
- 모델이 예측하는 reverse process가 실제 분포 q를 잘 근사하도록 만드는 항이다.
- 두 항 모두 Gaussian 이므로 closed-form KL divergence로 계산이 가능하다.
Reconstruction term
- 모델이 실제 원본 이미지를 얼마나 잘 복원하는지를 나타낸다.
아래 슬라이드는 Consistency term을 단일 Gaussian 형태로 표현하는 과정을 보여준다. 먼저 Bayes Rule을 이용하여 재구성한다.
그 다음 두 확률 모두 Gaussian distribution을 따르므로 완전제곱꼴로 묶어서 Gaussian의 형태로 정리해준다.
완전제곱 형태를 정리하면 다음과 같은 Gaussian 분포로 표현할 수 있다.
DDPM(Denoising Diffusion Probailistic Models):Model Architecture
DDPM(Denoising Diffusion Probailistic Models):Examples
DDPM(Denoising Diffusion Probailistic Models):Limitations
3. Score-Based Generative Modeling with Stochastic Differential Equations(SDEs)
Summary of NCSN and DDPM
Relation between NCSN and DDPM
Score-based Generative Modeling through SDEs