1. diffusion model
•
데이터를 만들어내는 deep generative model 중 하나
•
foward process(diffusion process) + reverse process
◦
forward process → data로부터 noise를 조금씩 더해가면서 data를 완전한 noise로 만드는 과정 data() → noise()
◦
reverse process → noise로부터 조금씩 복원해가면서 data를 만드는 과정 noise() → data()
1.
원본 이미지에 gaussian noise를 순차적으로 추가
2.
완전한 random noise로 만들어주는 과정(diffusion process)으로부터, 이것의 역변환(inverse process)을 학습
3.
이 학습된 역변환을 사용하여 random noise로부터 이미지를 생성
•
특정 사진의 픽셀들이 시간이 지나면서 흩어져서 노이즈로 변하는것을 나타냄 → 랑주뱅 동역학
장점
•
Distribution coverage가 높음 -> 다양한 이미지 생성 가능
•
모델 확장성이 좋음
단점
•
순차적인 역변환을 통해 이미지가 생성되므로 생성 속도가 느림
•
gan에 비해 didelity(품질의 신뢰성?)이 낮음
2. process
•
목적: 이미지에 노이즈를 순차적으로(T step)추가하는 diffusion process의 역변환을 학습
•
: 실제 데이터/ : 최종 noise/ : 데이터에 noise가 더해진 상태의 latent variable
latent variable(잠재 변수)
- 직접적으로 관찰되거나 측정이 되지 않는 변수로 관측이 가능한 다른 변수들로부터 추론이 가능한 변수
- “건강”이라는 추상적인 변수는 직접적으로 측정할 수 없는 잠재 변수이지만 혈압, 체온 등 관측이 가능한 외부 변수로부터 추론이 가능 → 혈압, 체온 등 각각의 변수를 떼어서 해석하면 몸 상태 파악이 어렵지만 이것들을 건강이라는 잠재 변수로 엮으면 해석하기가 쉬워진다는 장점이있음
- 이런 외부 변수로부터 추상적인 건강이라는 잠재 변수를 도출하려면 수학적인 모델이 필요
•
오른쪽에서 왼쪽 방향으로 noise를 더해가는 foward process q를 진행
•
그 후 forward process를 반대로 추정하는 reverse process p를 학습 → noise()로부터 data()를 복원하는 학습
•
reverse process를 활용해 random noise로부터 원하는 image, text, graph등을 generate
3. reverse process
•
reverse process p는 noise()로부터 data()를 복원 → random noise로부터 원하는 image, text, graph등을 generate
•
diffusion model을 사용하기 위해 모델링 하는 것이 필수적이지만, 알아내기 어려워 를 활용해 추정
•
gaussian transition을 활용해 markov chain 형태로 추정(noise화 되어가는 과정)
•
평균 와 표준편차 는 학습되어야하는 파라미터
•
x_0은 noise가 없는 데이터, t가 커짐에 따라 점점 noisy해져서 는 가우시안 노이즈
4. forwad process
•
forward process q는 data()로부터 noise를 더해가면서 최종 noise()형태로 가는 과정
•
reverse process의 학습 시 forward process 정보를 활용해서 하기에 이 과정의 분포를 아는것이 중요(p 모델이 q를 보고 noise를 걷어내는 과정 학습)
•
data에 gaussian noise를 조금식 더하는 markov chain의 형태
•
p의 , 와 같아지도록 학습하면 q 역시 noise가 추가되는 학습