728x90
위 유튜브 내용을 정리한 것.
*개요*
[GAN : Generative Adversraial Network]
- 고품질 출력을 생성하지만 훈련하기 어려움
- 적대적 훈련을 통해 Vanishing gradients 혹은 mode collapse라는 문제를 일으킬 수 있음
[VAE : Variational Autoencoder]
- 입력을 잠재 분포로 압축한 후 훈련
- 훈련된 이 분포에서 샘플링하여 입력을 다시 복구함
- 따라서, GAN에 비해 이미지 품질이 좋지 않음
[Diffusion model]
- GAN의 다양성, VAE의 안정성을 모두 보장해주는 모델임
- 완전한 노이즈가 될때까지 입력에 노이즈를 더해줌
- 그 후, 신경망을 통해 노이즈에서 입력으로 복구하는 방식으로 작동
- seuential reverse process를 통해 샘플링 속도가 GAN과 VAE에 비해 느림
[Diffusion model 이란?]
Forward process와 Reverse process로 구성됨
[Foward process]
입력이 들어오면 점진적으로 노이즈를 추가하여 입력을 파괴하는 과정
[Reverse process(= Parametrized Backward process)]
Forward process를 통해 생성된 노이즈로부터 입력을 복구하는 방식으로 작동
각 시간 단계가 이전 시간 단계에 따라 달라지는 일련의 확률 이벤트이므로 미래 모델의 특정한 속성은 잠재 상태가 입력과 동일한 차원을 갖는다는 이론... 마르코프 체인이라고도 함
이 작업은 발생된 노이즈를 예측하는 것으로 설명 가능
[모델을 구성하기 위해 3가지가 주로 필요]
1. Noise scheduler : 노이즈를 순차적으로 추가하는 모델
2. Nerual Network : 이미지에서 노이즈를 예측하는 모델
3. Timestep Encoding : 현재 시간 단계를 인코딩하는 방법
*수학적 설명*
[Forward process]
여기서 마르코프 프로세스는 q로 표시
노이즈 추가는 이전 입력에만 의존
노이즈가 샘플링되는 방식은 위 conditional gaussian distribution 공식과 같음
뒷 내용은 추후 이어서 작성.,
728x90
'STUDY > 인공지능' 카테고리의 다른 글
torch.utils.data.DataLoader와 torch.utils.data.Dataset (0) | 2023.04.23 |
---|---|
torch.unsqueeze , torch.squeeze, torch.cat 설명 (0) | 2023.04.19 |
tensor 이미지 저장하는 법 (0) | 2023.04.10 |
EasyDict 이란? 사용법 (0) | 2023.03.29 |
yaml 파일 다루기, 읽기, key value 값 뽑기 (0) | 2023.03.29 |