본문 바로가기

트렌드 한눈에 보기/학계 트렌드

Diffusion Model을 이해해보자 3편 - 새로 찾은 튜토리얼 도전

Diffusion Model을 이해해보자 2편 - chatGPT로 튜토리얼 생성 망한 이유 (tistory.com) 에서 이어집니다.

 

CIFAR10을 사용하는 최대한 간단한 예제를 찾으려고 했지만, 녹록지가 않다. 그도 그럴 것이, 노이즈를 만들고 복구하는 과정에서는 일반 딥러닝도 아니고 U-Net 정도는 들고 와야 제대로 된 성능을 보여줄 수 있다. U-Net으로 말하자면, 기본적인 레이어 수만 8개 이상이라고 볼 수 있을 정도로 복잡한 CNN 모델이다. 지난 튜토리얼에서는 CNN 두 세 개 레이어만 가지고 모델을 만들었지만, 애초에 작동하지 않았을 것이다. 

 

Make Diffusion model from scratch ( easy way to implement quick diffusion model ) | by Seachaos | tree.rocks

 

Make Diffusion model from scratch ( easy way to implement quick diffusion model )

This article is a tutorial on building a diffusion model from scratch by yourself. ( using TensorFlow / also have a PyTorch version…

tree.rocks

그러던 중 간신히 찾은 예제를 좀 더 파헤쳐보게 되었다. 사실 diffusion model에 CNN 혹은 다른 딥러닝 모델이 들어간다는 사실조차도 이 예제를 읽으면서 깨우치게 되었다. forward process에서 노이즈를 입히는 것이야 단순하게 적용가능하지만, reverse process에서 노이즈를 예측하는 것을 딥러닝 모델이 담당하게 된다. 

 

 

 

Diffusion model 형상으로만 보자면 chatGPT가 꽤나 정확한 구조를 만들어줬다고 말할 수 있다. 하지만 딥러닝의 본 게임은 어디까지나 디테일에 있다. 어떻게 차원을 맞춰줘야 하는지는 좀 더 궁리해봐야 알 것 같다.