GAN과 Diffusion 비교분석

황주선·2023년 11월 16일
0

국공단 프로젝트

목록 보기
5/5

수묵화 버전 생성 프로젝트 도중 GAN을 사용할지, Diffusion모델을 사용할지, style tranfer을 사용할지 몰라서 정리하다가 좋은 영상을 발견해서 정리하려고 한다.
유튜브 영상
마침 아주대학교에서 비교한 영상을 토대로 정리해보자!


GAN


GAN은 적대적 신경망으로
1. 이미지를 생성해내는 Generator와
2. Generator가 만들어내는 이미지를 구분하는 Discriminator로 구분된다.
결국 이미지를 생성하는 놈이 판단하는 놈을 속일만큼 잘 생성을 해내면 되게끔 하는 개념이다.


Auto Encoder


비지도학습중에 하나임!
인코더가 이미지 축소하고 특징 추출해서 만든 이미지를
디코더가 다시 확대하고 원본 복원 해내면서
원본과 복원이미지가 최소가 되도록 하는 방식임!


GAN의 구조


그래서 GAN의 Generator(생성자)는 오토인코더의 Decoder 구조를 가지고 이미지를 생성해냄
판별자는 원본이미지와 생성이미지를 구별해냄
0은 진짜로 1은 가짜로 판별해내는데, 이숫자를 0.5로 맞추면
판별자가 진짜인지, 가짜인지 모른다는 거임.


손실함수의 변수


GAN의 실제 응용분야


Diffusion model


GAN이 축소였다면, Diffusion은 노이즈를 계속 뿌려서 결국 노이즈만 만드는 방법임
노이즈를 추가해 나가는 방식 원본 -> 노이즈 를 forward process
노이즈 화면에서 다시 복원하는 방식을 reverse process라고하고
이 reverse process를 학습시키게 됨

GAN보다 고화질 및 해상도를 생성할 수 있음,

stable diffusion 2022년 8월 연구소에서 무료 오픈소스로 오픈한 모델임


Diffusion 의 구조

Text Encoder


토큰화 시켜서 텍스트를 임베딩 시킴


Unet + scheduler


텍스트 임베딩을 랜덤 노이즈를 추가하고 랜덤 잠재 벡터를 얻는다
계속 랜덤 노이즈 추가 -> 랜덤 잠재 벡터 획득을 무한 반복해서
최종 이미지 정보 배열을 생성함


VAE(Variational Auto Encoder / Decoder)

정보배열로 오토인코더의 디코더를 활용해서 이미지를 생성함.

그렇다고 한다~

profile
Almighty God with me

0개의 댓글