로그인 바로가기 하위 메뉴 바로가기 본문 바로가기

인공지능 및 기계학습 심화

임시 이미지 KAIST 산업및시스템공학과 문일철 교수 KOOC (KAIST Open Online Course)
http://www.edwith.org/aiml-adv/forum/124104
좋아요 689 수강생 3324

지난시간에 설명드렸듯이 Diffusion Model이란 생성 모델의 하나로 VAE/GAN/Flow 등과 마찬가지로 데이터 생성에 주 목적을 가지고 있는 모델입니다. Diffusion Model에서 가장 유명한 논문은 Denoising Diffusion Probabilistic Model (DDPM)인데, DDPM이 무엇인지 다음 시간에 알아보기에 앞서 이번 시간에는 VAE와 Flow를 통해 inference/generative process에 대해 알아보도록 하겠습니다.

Variational AutoEncoder (VAE)는 언제나 inference network와 generation network를 가정한 후 학습을 통해 데이터 생성을 하는데요, 여기서 inference network란, real data (즉 이미지 한장)가 주어져 있을 때 그 real data가 latent space에서 어디에 있어야 가장 좋은지 알려주는 mapping입니다. 즉, data x  x 에 대해 inference part는 latent  z  z 를 알려주는 부분입니다. generation network는 latent  z  z 를 입력값으로 넣으면 regenerate  \hat{x}  x^ 을 생성하는데요, 이  \hat{x}  x^ 는 data와 정확히 같은 dimension을 가지는 vector로, data와 유사하게 되도록 inference/generation network를 학습합니다.

어떤 조건의 inference/generation structure 가 좋은 선택일까요? Input data와 정확히 똑같이 regeneration했을 때가 (일반적인 센스에서) 가장 좋은 경우이며, 이는 inference structure가 generation structure의 inverse function이라는 것을 의미합니다. 즉, inference structure가 generation structure의 exact inverse일 때가 좋은 선택일 수 있습니다.

Normalizing Flow의 경우에는 애초에 invertible network로 모델링되어 있기 때문에 좋아 보입니다. 하지만, regeneration과 데이터 generation은 조금 다른데요, 데이터 generation은 주어진 데이터가 없을 때도 real data스러운 데이터를 만들어야 하는 문제이기 때문입니다. 주어진 데이터가 없을 때는 latent space에서 정의된 prior distribution에서 샘플  z  z 를 하나를 얻은 후 그  z  z 를 generation network (inference network의 역과정)에 입력으로 넣으면  우리의 모델이 생성한 데이터 \hat{x}  x^ 가 출력으로 나옵니다. 여기서 만약 네트워크가 좋은 방향으로 학습되어 있지 않으면 비록 inference/generative process는 invertible하게 모델링 되어 있을지라도 현실에 존재할법한 데이터가 생성되지 않습니다. 즉, Flow 모델은 데이터가 inference process를 통과하여 나오는 z  z 가 prior distribution을 따르도록 학습해야 하는 번거로움이 있습니다.

그에 비해 Diffusion Model에서는 VAE/Flow와 마찬가지로 inference structure와 generation structure가 존재하긴 하지만 inference process가 학습 없이도  z  z 가 prior distribution을 따르도록 설계되어 있습니다. 그렇기 때문에 inference process 없이 generation process만 학습하여 데이터 생성을 할 수 있으니 더 좋은 데이터를 생성할 수 있게 되는 것입니다. 다음 시간에 이에 대해 조금 더 알아보도록 하겠습니다.