생성AI(3)
-
DDPM pytorch 코드분석
본 포스팅에서는 간단한 코드로 구현한 디퓨전 모델(DDPM)의 pytorch 구현 코드를 분석하려고 한다. 코드는 https://colab.research.google.com/drive/1sjy9odlSSy0RBVgMTgP7s99NXsqglsUL?usp=sharing#scrollTo=LQnlc27k7Aiw 를 참고하였다. 작성자는 DeepFindr이다. DDPM 논문에 대해 어느 정도 이해하고 있다는 전제 하에 작성하였기 때문에, 논문 내용을 모르는 사람은 먼저 읽고 오길 바란다. https://arxiv.org/abs/2006.11239 논문에는 diffusion loss에 대한 증명과 왜 사용할 수 있는지에 대한 내용이 주로 담겨있기 때문에 어디부터 코드로 구현해야 할지 감이 잘 잡히지 않을 수도 있..
2024.08.13 -
U-ViT 논문 리뷰(All are Worth Words: A ViT Backbone for Diffusion Models, 2022)
디퓨전 모델의 아이디어인 열역학적 확산이 최초로 제안된 것은 2015년(https://arxiv.org/abs/1503.03585)이며 디퓨전의 원조격으로 unconditional하게 random noise에서 이미지를 합성할 수 있는 DDPM이 나온 것은 2020년이다. DDPM은 t번째 timestep에서 noise가 얼만큼 포함되어 있는지를 CNN 기반의 U-Net으로 예측한다. 하지만, classificaion/segmentation에서 CNN 기반 모델의 sota를 ViT 기반 모델 (시초는 https://arxiv.org/abs/2010.11929) 들이 갈아치우고 있는 상황에서, denoising에도 ViT를 써볼 수 있으리라 예상할 수 있다. U-ViT는 ViT를 U-Net이랑 비슷한 형태..
2024.07.29 -
DDPM을 통한 이미지 생성 및 보간 (J. Ho 2020 논문 리뷰)
DDPM이란?DDPM(Denosing Diffusion Probabilistic Model)은 발전된 형태의 diffusion 생성모델로, 이미지에 gaussian noise 를 조금씩 첨가하여 완전한 noise image로 만들어지는 과정 (q) 을 학습하여, 완전한 noise 이미지에서 noise를 걷어(p) 이미지를 생성한다. 원본 이미지 x0에 노이즈를 한 단계씩 추가하여 완전한 noise 이미지로 바뀐 것을 xt라고 하자. DDPM은 아래와 같이 두 과정으로 진행된다.Forward process: x0-> xt로 만드는 noising 과정Reverse process: xt-> x0으로 만드는 denoising 과정이미지 생성을 위해 필요한 것은 reverse process이다. 노이즈를 추가하는..
2024.03.22