Generative Adverserial Network, 줄여서 GAN 이라고 불리운다.
단어 하나하나 보면, 생성 대립 네트워크다.
생성...대립 네트워크...? 듣기만해도 어지럽지만 한번 자세하게 보자.
GAN 에는 크게 두가지의 role 이 존재한다. 바로 Generator 와 Descriminator 이다.
Generator 란, 말 그대로 생성자이다. 무엇을 생성할까?
GAN 에서 원하는 결과물일 것이다. 사람, 동물, 사물 등 무엇이든 원하는 결과를 생성해 내는 생성자이다. 레오나르도 다빈치의 그림을 학습하고 생성하는 모델이라면, 생성자는 레오나르도 다빈치의 그림을 만들어 낼 것이다.
Descriminator 란? 생성자의 생성물을 보고 진짜인지 가짜인지 판별하는 판별자이다. 그러니까 정리해보자면, GAN 이란 생성자와 판별자의 대립 구조인 것 이다. 생성자는 진짜 같이 만들려고 노력하고, 판별자는 가짜를 판별해 내고 그에 대한 피드백을 전달해준다. 생성창과 방패, 뚫으려는 자와 막으려는 자, 속이려는 자와 잡으려는 자의 숨막히는 관계가 GAN 인 것이다.
여기서, latent space 라는 개념은 무엇을 말하는 걸까?
latent 이란, 데이터가 가지고 있는 잠재적인 변수이다.
latent vector 는 한 이미지가 가지고 있는 잠재적인 벡터 형태이다.
그리고 이런 latent vector 들이 모여서 latent space 가 형성되게 된다.
Latent space에는 우리가 학습시킬 이미지들이 latent vector의 분포 형태로 존재하게 되고 우리는 모델을 통해서 이미지가 가지고 있는 latent의 분포를 학습하게 된다.
[ref]
https://dacon.io/competitions/official/235946/codeshare/5499