두 개의 신경망이 서로 경쟁(adversarial)하면서 학습하는 생성 모델
Generator (생성자)와 Discriminator (판별자), 이 두 네트워크가 게임 이론적 구조로 함께 학습된다.
Generator(G)는 무작위 노이즈 벡터 zzz를 입력받아 실제 데이터 분포와 유사한 가짜 데이터(fake data)를 생성하는 모델.
진짜처럼 보이는 가짜를 만드는 역할로써, 처음에는 엉성한 이미지를 생성하지만 판별자에게로 인해 점점 개선된다.
Generator의 학습 목표는 판별자가 생성 결과를 진짜라고 착각하게 만드는 것이다.
Discriminator(D)는 입력된 데이터가 진짜(real)인지, 생성자가 만든 가짜(fake)인지를 판별하는 이진 분류기.
출력 값이 1에 가까울수록 진짜, 0에 가까울수록 가짜.
이 데이터가 진짜인지 가짜인지 감별하는 역할로써, 진짜 데이터와 가짜 데이터를 모두 보고 학습하고 점점 더 날카로운 감별 능력을 갖게 된다.
Discriminator의 학습 목표는 진짜와 가짜를 정확히 구분하는 것이다.
GAN의 핵심은 두 네트워크의 경쟁 구조다.
이 과정이 반복된다.
판별 정확도 ≈ 50%라면 이는 Generator가 실제 데이터 분포를 잘 학습했다는 의미이다.