본문 바로가기
ML, DL/pytorch

GAN

by Wordbe 2019. 7. 16.
728x90

Generative Adversial Network

Generator
생성자는 랜덤 벡터 'z'를 입력으로 받아 가짜 이미지를 출력하는 함수다.
z는 균등분포(Uniform Distribution)나 정규분포(Normal Distribution)에서 무작위로 추출된 값이다.
생성자는 이렇게 단순한 분포를 사람 얼굴 이미지와 같은 복잡한 분포로 매핑(mapping)하는 함수이다.
생성자 모델에 충분한 수의 매개 변수가 있다면 어떤 복잡한 분포도 근사할 수 있다고 알려져 있다.

z 벡터(latent vector)가 존재하는 공간을 잠재 공간(latent space)라 한다.


**Discriminator** 구분자는 생성자가 만들어낸 fake image를 입력으로 받아 이미지가 진짜인지 가짜인지 출력한다. Discriminator의 출력값은 이미지가 진짜일 확률이고, 이 확률이 정답과 얼마나 가까운지 측정하기 위해 Binary cross entropy 손실 함수를 이용한다. 이 손실함수의 값을 낮추는 것이 모델 학습의 목표가 된다.

구분자는 진짜 이미지를 입력하면 1에 가까운 확률값을 출력하고,
가짜 데이터를 입력하면 0에 가까운 확률값을 출력해야 한다.
따라서 손실 함수는 두 가지의 합으로 이루어진다.

 


LossDiscriminator = | Preal - 1 | + | Pfake - 0 |


손실함수의 값을 최소화 하는 방향으로 Discriminator의 parameter가 업데이트 된다.

728x90

댓글