-
Generative AI with Diffusion Models 01lecture 2024. 2. 8. 00:43
강의 수강 내용 과정에서 의미있었던 부분으로 내용을 정리해보려고 한다.
완벽한 짜임새 혹은 내용의 전문성 보다도 기억에 남는 키워드와 내용들, 필기했던 부분들을 남겨보려고 한다.
강의에서 배운 딥러닝 모델, 코드 구현, 프로젝트, 각종 개념 등은 다른 카테코리에서 따로 다뤄보는 것을 목표로 한다.
Diffusion model은 deep generative model로, 주어진 text와 묘사대로 학습 데이터에 없는 형태의 이미지를 생성한다. (GAN과의 차이점)
Diffusion model의 back bourne model은 U-Net이다.
U-Net은 모델의 모양이 U자라고 해서 붙어진 이름으로, 그 구조는 Auto Encoder와 GAN과 상당히 유사하며, VAE의 아이디어를 많이 차용하고 있다.
U-NET은 image segmentation 모델로, auto encoder와 기본 모델 구조에 skip connection을 더한 구조이다. Input Data를 Convolution layer로 학습시켜 해당 데이터들의 distribution을 갖는 latent vector로 manifold하고, Transposed Convolution layer를 통한 upsampling을 통해 latent vector를 decode하여 원본 데이터를 복원하는데, 이 때 encoding 과정에서 형성된 feature map을 concate하여 원본 데이터의 특성을 최대한 보존하는 모델이다. 이렇듯 U-NET은 downsampling 과정에서의 정보 손실을 upsampling에서 skip connection을 통해 보존한다는 점에서 segmentation error를 극복하여 높은 정확도를 자랑한다는 장점이 있다.
Diffusion model은 unet의 아이디어를 계승한다. 연속적인 noise의 학습을 통해 noise의 확산 과정을 학습하여, 임의의 noise에 대해 확산 과정을 역으로 적용하여 noise로부터 원본 데이터를 복원하고자 하는 방향으로 학습된다. 결과적으로 Diffusion 모델은 모델이 예측하는 noise와 우리가 정의한 noise의 차이를 최소화하는 방향으로 수렴한다.
이 밖에 Diffusion 모델의 최적화를 위한 활성함수 GeLu, Convolution Layer의 feature map 특성으로서 Einops, Normalization 기법으로서 Batch norm이 아닌 Group norm, backpropagation을 위한 reparameterization trick, beta scheduling(variance scheduling) 등에 배웠는데,,, 설 안에 쭉 정리를 다시 해봐야겠다..