Diffusion Probabilistic Model
nonezerok@gmail.com
1
Last updated: Jan. 10, 2023
A gentle tutorial on diffusion probabilistic model
쉬운 개념 이해에서 상세한 수식까지,
CVPR 2022 Tutorial 8쪽에 대한 상세한 해설 설명
2
https://cvpr2022-tutorial-diffusion-models.github.io/
개요 Forward
Forward
로 바로 계산
Reverse
3
https://cvpr2022-tutorial-diffusion-models.github.io/
3
훈련 목적식
목적식 구체화: 파라미터릭 표현
훈련 잘 되도록
훈련, 생성 알고리즘
선수지식
4
5
sampling
𝑝(𝑥)
distribution
𝑥 ~ 𝑝 (𝑥)
분포함수
𝑝 𝑥 ↔ 𝑝𝑋 𝑥 ↔ 𝑝 𝑋 = 𝑥
generation
random variable
𝐸 𝑋 = ෍
𝑥
𝑥𝑝(𝑥)
𝐸 𝑓 𝑋 = ෍
𝑥
𝑓 𝑥 𝑝(𝑥)
𝐸 −𝑙𝑜𝑔𝑝 𝑋 = ෍
𝑥
−𝑙𝑜𝑔𝑝 𝑥 𝑝(𝑥)
-𝑙𝑜𝑔𝑝 𝑥
information
expectation
entropy
𝑝 𝑥, 𝑦 = 𝑝 𝑥 𝑝 𝑦 𝑥 = 𝑝 𝑦 𝑝(𝑥|𝑦)
𝑝 𝑥, 𝑦, 𝑧 = 𝑝 𝑥 𝑝 𝑦 𝑥 𝑝(𝑧|𝑥, 𝑦)
Bayes’ rule 𝑝 𝑦 𝑥 =
𝑝 𝑥, 𝑦
𝑝 𝑥
=
𝑝 𝑦 𝑝(𝑥|𝑦)
σ𝑦 𝑝 𝑦 𝑝(𝑥|𝑦)
𝑝 𝑥 = ෍
𝑦
𝑝(𝑥, 𝑦) = ෍
𝑦
𝑝 𝑦 𝑝(𝑥|𝑦)
6
random process
Markov
random process
KL divergence
cross-entropy 𝐸 −𝑙𝑜𝑔𝑝 𝑋
= ෍
𝑥
−𝑙𝑜𝑔𝑝 𝑥
𝑞(𝑥)
𝑞(𝑥)
𝑝 𝑥
𝑝 𝑥; 𝑢, 𝜎
𝑝𝜃 𝑥 , 𝜃 = (𝑢, 𝜎)
KL divergence between two Gaussian distributions
reparameterization trick
7
직관으로 이해하기
.
8
신경망구조 + 손실함수
신경망은,
9
새로운 신경망이 나왔다.
그럼, 신경망 구조와 손실함수가 기존과 다르다는 얘기다.
따라서, 이 둘을 파악해야 한다.
Conventional Generative Model
10
노이즈
잠재변수
일반적인
생성모델
구조
Diffusion Probabilistic Model
11
생성영상과
크기가 같다. 입력과 출력의
크기가 같다.
12
노이즈에서 고화질 영상으로
곧바로 변환은 어렵다.
repeat T times
13
condition
점진적으로 바꾸어 가면 되겠다.
대신, 각 단계마다 별도의 신경망을 유지하는 것은 별로.
그래서, 컨디션으로 시간을 갖는 구조로 가져가자.
repeat T times
U-Net
DPM 신경망구조
14
U-Net
(Pix2Pix)
✓ Detail을 살려야 한다.
✓ Scene의 구조가 바뀌지 않는다.
이 목적으로, U-Net이 딱!
신경망 구조는 살펴봤고, 다음은 손실함수다.
𝑇 = 1,000
가우시안 노이즈를 점진적으로 추가 (영상처리)
신경망
신경망 훈련
15
https://www.youtube.com/watch?v=HoKDTa5jHvg
Image credits:
각 스텝의 영상을
x_0, x_1, …, x_T라고 하자.
우리의 목적은 x_T로 부터 x_0를 생성하는 것이다.
근데, 신경망이 한번에 이것을 수행하기는 어렵기 때문에,
중간과정에 있는 모든 x_t도 생성할 것이다.
그래서, 느리다는 약점!
16
분포함수로 표현
이 방향은 q로 나타내자.
이 방향은 p로 나타내자.
신경망을 사용할 예정이므로,
파라미터 theta 함께 표시
17
분포함수로 표현
x_T에 대한 분포는 이렇게.
x_T는 q(x_T)에서 샘플링된 것으로 생각.
18
중간 단계는 이렇게.
중간 단계는 이렇게.
theta가 필요할까?
19
x_T는 노이즈,
굳이 신경망으로
표현할 필요 없다.
20
tractable ?
이 분포를 우리가 다룰 수 있을까?
이게 되면 굳이 신경망으로 p_theta 구할 필요가 없다.
p_{theta}와 모양이 같은
q를 생각해 보자.
input
output
21
q를 함수라고 생각해 보자.
x_t만 가지고, x_{t-1}을 만들어 낸다는 의미,
쉽지않다.
그렇다면, 입력으로 어떤 정보를 더 주면 수월해 질 수 있을까?
22
바로 x_0이다.
원본 생생한 영상.
훈련할 때는 알고 있다.
q에는 모두 넣자.
Loss LT
23
자 이제 손실함수를 생각해 보자.
먼저, 이 둘!
이 둘의 차이가 줄어들면 좋겠지.
이 둘의 KL 최소화
Loss Lt-1
24
자 이번에는,
이 둘!
역시 이들의 차이가 줄어들도록
신경망을 훈련하면 좋겠다.
Loss L0
25
cross-entropy / mse
마지막으로 이 둘의 차이가 줄어
들도록.
물론 이전 슬라이드에 통합해도
되긴 하다.
그렇지만, x_1, x_0는 약간의 노
이즈 차이이므로 기존의 신경망
손실함수를 사용해도 좋을 듯.
reconstruction
regularization
DPM 손실함수
26
최종 손실함수
실제로는 이렇게 써야 한다.
즉, 훈련집합에서 하나씩 끄집어와서 평균계산.
DPM을 위한
신경망 구조와 손실함수를 모두 알았다!
짝짝짝!
Forward Diffusion Process
27
이제부터 손실함수를 구체적인 식으로 바꾸어 보자.
이 과정에 수식이 좀 많다.
수식이 많을 뿐이지 따지고 보면 어려운 수식은 아니다.
Bayes’ rule:
28
Bayes’ rule:
29
Bayes’ rule:
30
Bayes’ rule:
31
Process
Bayes’ rule:
32
a sequence of random variables
(순서가 있다)
Bayes’ rule:
Markov
Process
(chain)
의 정보가 반영되어 있다.
first order
33
그냥, 이런 특징이 있다.
Markov
Process
(chain)
Bayes’ rule:
34
Markov
Process
(chain)
Bayes’ rule:
35
Markov Chain이라고 할 때,
결국, 우리가 관심있는 특성
Markov
Process
(chain)
Bayes’ rule:
36
Markov
Process
(chain)
Bayes’ rule:
37
38
이 부분 설명 완료!
이 부분은 뒷장에서…
Add Gaussian Noise
39
40
41
이전 픽셀 값을
거의 유지
약간의 변형
42
독립
같은 식으로 부터 쭉 이어져 왔다면…
43
이전 픽셀 값을
거의 유지
약간의 변형
Reparameterization trick
44
45
논문에서는 이렇게 표현하고 있다.
x_t를 샘플링하는 것까지 포함해서 표현
46
Forward Process
47
x_0에서
나머지 x_1, x_2, … x_T를 모두 만들어 내는 것.
이를 분포함수로 표현하면…
입력 화살표 오른쪽 그림들은 모두 출력
48
입력
출력
구체적으로 식을 써보면…
fixed
49
신경망 훈련없이 가능하다는 의미
베타t는 미리 정해 둔 상수
x_t 는 x_0에서 생성할 수 있음
https://cvpr2022-tutorial-diffusion-models.github.io/
50
51
이렇게 유도될 것 같기도 하고…
이 표현에 주목
x_t의 함수표현
x_t의 분포(함수) 표현
52
시작단계부터 따져보자.
x_1, x_2 관계만 보자.
동일한 분포로 가정하므로,
기호를 입실론으로 통일
Reverse Diffusion Process
53
𝑇 = 1,000
54
x_T도 생성되는 것,
무작위로 뽑히는 것
55
Remove Gaussian Noise
어려운 것은 신경망한테 맡기자
가우시안 노이즈를 넣을 수는 있지만,
그 반대는 어렵지
56
U-Net
57
U-Net을 T개 만들기는 좀 그렇지…
U-Net
시간 정보를 주고, 반복!
이 가우시안 분포를
T를 파라미터로 갖는
U-Net으로 구현
𝑡 = 𝑡 + 1
58
가우시안으로 간주했다.
가우시안 분포는
평균과 (공)분산으로 표현
결국, 신경망 훈련을 통해
구하는 것
공분산은 0이라고 간주한 것.
각 영상에 낀 노이즈끼리 독립!
59
정리하면,
손실함수 유도
60
이 부분이 수식이 많다.
Variational Inference라고 불리우는,
VAE 목적함수 유도과정을 알고 있으면 도움이 된다.
- KL divergence 정의 알아야 한다.
- Expectation 정의 알아야 한다.
Recall: DPM 손실함수
61
reconstruction
regularization
어떻게 훈련시킬까?
62
Encoder
(fixed)
Decoder
(trainable)
z
encoder decoder
z
63
Latent variables
Encoder
(fixed)
Decoder
(trainable)
z
encoder decoder
z
어떻게 훈련시킬까?
64
Latent variables
Encoder
(fixed)
Decoder
(trainable)
z
encoder decoder
z
어떻게 훈련시킬까?
65
Encoder
(fixed)
Decoder
(trainable)
z
디코더만 훈련하면 되니까 더 학습이 수월할지도…
VAE에서 사용했던 테크닉을 사용하자!
evidence lower bound
encoder
z ELBO
66
VAE의 목적함수는
결국, Log-likelihood를 최대화,
또는 ELBO를 최대화 하는 것으로 유도가 되었다.
(뒤에서 설명)
Variational Inference
𝑝 𝑧|𝑥
𝑞 𝑧|𝑥
구하기 어렵다.
꿩 대신 닭
변이
우리가 알고 있는 쉬운 분포; 정규분포로 대치하자.
𝑝 𝑧|𝑥 ≈ 𝑞 𝑧|𝑥
조건:
KL 최소화
min KL 𝑞 𝑧|𝑥 ||𝑝 𝑧|𝑥
67
Posterior 구하기
대체(변이) 사후확률 구함
𝑞 𝑧|𝑥
Reverse KL을 선호
VI : biased, low variance
MC: unbiased, high variance
𝐾𝐿 𝑞 𝑧|𝑥 ||𝑝 𝑧|𝑥 = − ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑧|𝑥
𝑞 𝑧|𝑥
= − ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑝 𝑥
𝑞 𝑧|𝑥
1
= − ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑞 𝑧|𝑥
1
𝑝 𝑥
= − ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑞 𝑧|𝑥
+ 𝑙𝑜𝑔
1
𝑝 𝑥
= − ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑞 𝑧|𝑥
+ ෍
𝑧
𝑞 𝑧|𝑥 𝑙𝑜𝑔 𝑝 𝑥
= − ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑞 𝑧|𝑥
+ 𝑙𝑜𝑔 𝑝 𝑥 ෍
𝑧
𝑞 𝑧|𝑥
= − ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑞 𝑧|𝑥
+ 𝑙𝑜𝑔 𝑝 𝑥
1
𝑙𝑜𝑔 𝑝 𝑥 = 𝐾𝐿 𝑞 𝑧|𝑥 ||𝑝 𝑧|𝑥 + ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑞 𝑧|𝑥
𝑥 is given, then it is fixed
68
https://www.youtube.com/watch?v=uaaqyVS9-rM
𝑙𝑜𝑔 𝑝 𝑥 ≥
최소화
해야함
최대화
하면 된다.
꿩 대신 닭
≥ 0
෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑞 𝑧|𝑥
𝑥 in black: a random variable
𝑥 in gray: a fixed value of the random variable 𝑥
결국, 이 term을 최대화
𝐾𝐿 𝑞 𝑧|𝑥 ||𝑝 𝑧|𝑥 = − ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑧|𝑥
𝑞 𝑧|𝑥
= − ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑝 𝑥
𝑞 𝑧|𝑥
1
= − ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑞 𝑧|𝑥
1
𝑝 𝑥
= − ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑞 𝑧|𝑥
+ 𝑙𝑜𝑔
1
𝑝 𝑥
= − ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑞 𝑧|𝑥
+ ෍
𝑧
𝑞 𝑧|𝑥 𝑙𝑜𝑔 𝑝 𝑥
= − ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑞 𝑧|𝑥
+ 𝑙𝑜𝑔 𝑝 𝑥 ෍
𝑧
𝑞 𝑧|𝑥
= − ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑞 𝑧|𝑥
+ 𝑙𝑜𝑔 𝑝 𝑥
1
𝑙𝑜𝑔 𝑝 𝑥 = 𝐾𝐿 𝑞 𝑧|𝑥 ||𝑝 𝑧|𝑥 + ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑞 𝑧|𝑥
𝑥 is given, then it is fixed
69
https://www.youtube.com/watch?v=uaaqyVS9-rM
≥ 0
lower bound
𝑙𝑜𝑔 𝑝 𝑥 ≥
variational
최소화
해야함
최대화
하면 된다.
꿩 대신 닭
Log-Likelihood
크게 하는 것
𝑥 in black: a random variable
𝑥 in gray: a fixed value of the random variable 𝑥
෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑞 𝑧|𝑥
= ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥|𝑧 𝑝 𝑧
𝑞 𝑧|𝑥
= ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔 𝑝 𝑥|𝑧 + 𝑙𝑜𝑔
𝑝 𝑧
𝑞 𝑧|𝑥
= ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔 𝑝 𝑥|𝑧 + ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑧
𝑞 𝑧|𝑥
= 𝐸𝑞 𝑧|𝑥 𝑙𝑜𝑔 𝑝 𝑥|𝑧 − 𝐾𝐿 𝑞 𝑧|𝑥 ||𝑝 𝑧
70
Evidence Lower BOund (ELBO)
𝑝 𝑧|𝑥 𝑝 𝑥
𝑙𝑜𝑔 𝑝 𝑥 ≥
Log-Likelihood
크게 하는 것
Lower Bound 정리하면…
෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑞 𝑧|𝑥
= ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥|𝑧 𝑝 𝑧
𝑞 𝑧|𝑥
= ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔 𝑝 𝑥|𝑧 + 𝑙𝑜𝑔
𝑝 𝑧
𝑞 𝑧|𝑥
= ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔 𝑝 𝑥|𝑧 + ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑧
𝑞 𝑧|𝑥
= 𝐸𝑞 𝑧|𝑥 𝑙𝑜𝑔 𝑝 𝑥|𝑧 − 𝐾𝐿 𝑞 𝑧|𝑥 ||𝑝 𝑧
71
𝑝 𝑧|𝑥 𝑝 𝑥
𝑙𝑜𝑔 𝑝 𝑥 ≥
Log-Likelihood
크게 하는 것
KL divergence로 표현
Evidence Lower BOund (ELBO)
− ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑞 𝑧|𝑥
= − ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥|𝑧 𝑝 𝑧
𝑞 𝑧|𝑥
= − ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔 𝑝 𝑥|𝑧 + 𝑙𝑜𝑔
𝑝 𝑧
𝑞 𝑧|𝑥
= − ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔 𝑝 𝑥|𝑧 − ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑧
𝑞 𝑧|𝑥
= −𝐸𝑞 𝑧|𝑥 𝑙𝑜𝑔 𝑝 𝑥|𝑧 + 𝐾𝐿 𝑞 𝑧|𝑥 ||𝑝 𝑧
72
𝑝 𝑧|𝑥 𝑝 𝑥
−𝑙𝑜𝑔 𝑝 𝑥 ≤
- Log-Likelihood
작게 하는 것
손실함수로…
Evidence Lower BOund (ELBO)
− ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑞 𝑧|𝑥
= − ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥|𝑧 𝑝 𝑧
𝑞 𝑧|𝑥
= − ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔 𝑝 𝑥|𝑧 + 𝑙𝑜𝑔
𝑝 𝑧
𝑞 𝑧|𝑥
= − ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔 𝑝 𝑥|𝑧 − ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑧
𝑞 𝑧|𝑥
= −𝐸𝑞 𝑧|𝑥 𝑙𝑜𝑔 𝑝 𝑥|𝑧 + 𝐾𝐿 𝑞 𝑧|𝑥 ||𝑝 𝑧
73
𝑝 𝑧|𝑥 𝑝 𝑥
−𝑙𝑜𝑔 𝑝(𝑥) ≤
- Log-Likelihood
작게 하는 것
Evidence Lower BOund (ELBO)
−𝑙𝑜𝑔 𝑝 𝑥0 ≤
VAE
Diffusion Model
Learning Objective of DM
그래서,
− ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥, 𝑧
𝑞 𝑧|𝑥
= − ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑥|𝑧 𝑝 𝑧
𝑞 𝑧|𝑥
= − ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔 𝑝 𝑥|𝑧 + 𝑙𝑜𝑔
𝑝 𝑧
𝑞 𝑧|𝑥
= − ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔 𝑝 𝑥|𝑧 − ෍ 𝑞 𝑧|𝑥 𝑙𝑜𝑔
𝑝 𝑧
𝑞 𝑧|𝑥
= −𝐸𝑞 𝑧|𝑥 𝑙𝑜𝑔 𝑝 𝑥|𝑧 + 𝐾𝐿 𝑞 𝑧|𝑥 ||𝑝 𝑧
74
𝑝 𝑧|𝑥 𝑝 𝑥
−𝑙𝑜𝑔 𝑝(𝑥) ≤
- Log-Likelihood
작게 하는 것
Evidence Lower BOund (ELBO)
VAE
Learning Objective of DM
−𝑙𝑜𝑔 𝑝 𝑥0 ≤
Diffusion Model
1
2
75
이렇게 될 것임을
우리는 이미 알고 있다.
복잡해 보이기만 한다!
https://www.assemblyai.com/blog/diffusion-models-for-machine-learning-introduction/
76
1
?
1
2
2
https://www.youtube.com/watch?v=HoKDTa5jHvg
77
1
2
2
https://www.youtube.com/watch?v=HoKDTa5jHvg
78
2
3
3
https://www.assemblyai.com/blog/diffusion-models-for-machine-learning-introduction/
79
2
3
3
80
1
2
81
1
2
82
1
2
83
1
2
84
85
86
cross-entropy / mse
diffusion kernel 대신
87
2
88
점점 0으로 근접,
89 89
90
가우시안
분포라고
가정 mean variance
https://lilianweng.github.io/posts/2021-07-11-diffusion-models/
91
by Bayes’ rule
92
93
를 없애자.
94
에 대한 함수가 되었다.
이 사이 과정은 뒷장에…
95
96
가우시안
분포라고
가정 mean variance
97
input
output
output input
t가 크면 이 값이 크도록 설정해야 한다.
t가 크면 이 값이 크다.
t가 크면 이 값이 크다.
신경망이 훈련하도록 해도 되겠지만,
실제는,
이 3개 중에서 골라 쓴다.
Proposed by Ho et al.
Denoising Diffusion Probabilistic Models (DDPM) - NeurlPS 2020
98
앞에서 x_0는 없애 놨다.
99
https://stats.stackexchange.com/questions/7440/kl-divergence-between-two-univariate-gaussians
100
101
102
for
MCMC
noise-prediction network
(denoising)
103
104 104
105 105
References
• [Paper] Jascha Sohl-Dickstein et al., "Deep Unsupervised Learning using Nonequilibrium
Thermodynamics", ICML, 2015.
• [Paper] Jonathan Ho et al., "Denoising diffusion probabilistic models", arXiv:2006.11239,
2020.
• [Tutorial] Karsten Kreis et al., "Denoising Diffusion-based Generative Modeling:
Foundations and Applications", June 19, CVPR 2022.
• [Tutorial] (한글) Injung Kim, "Diffusion Probabilistic Models", July 1, KCC 2022.
• [Tutorial] (한글) Jaepil Ko, "Tutorial on VAE", slideshare,
https://www.slideshare.net/jaepilko10/variational-autoencoder-vae-255270887
• [Blog] What are Diffusion Models, https://lilianweng.github.io/posts/2021-07-11-diffusion-
models/
• [Blog] Introduction to Diffusion Models for Machine Learning,
https://www.assemblyai.com/blog/diffusion-models-for-machine-learning-introduction/
• [Blog] (한글) https://developers-shack.tistory.com/8
• [YouTube] https://www.youtube.com/watch?v=HoKDTa5jHvg
106

CVPR 2022 Tutorial에 대한 쉽고 상세한 Diffusion Probabilistic Model