GAN

개념

생성자와 판별자

생성자 판별자
입력 랜덤한 숫자로 구성된 벡터 훈련 데이터셋에 있는 실제 샘플, 생성자가 만든 가짜 샘플
출력 최대한 진짜 같아 보이는 가짜 샘플 입력 샘플이 진짜일 예측 확률
목표 훈련 데이터셋에 있는 샘플과 구별이 불가능한 가짜 샘플 생성하기 생성자가 만든 가짜 샘플과 훈련 데이터셋의 진짜 샘플을 구별하기

오차행렬

입력 판별자 출력
T/F True(1에 가까움) False(0에 가까움)
True(x) 진짜 양성 진짜 음성
False(x*) 거짓 양성 거짓 음성

GAN 훈련 과정

  1. 판별자 훈련하기
    1. 훈련 데이터셋에서 랜덤하게 실재 샘플 x를 선택함.
    2. 생성자 네트워크를 사용해 새로운 랜덤한 잡음(noise) 벡터 z에서 가짜 샘플 x*를 합성함.
    3. 판별자 네트워크를 사용해 x와 x*를 분류함.
    4. 분류 오차를 계산하고 전체 오차를 역전파해서 판별자의 훈련 가능한 파라미터들을 업데이트하고 분류 오차를 최소화함.
  2. 생성자 훈련하기
    1. 생성자 네트워크를 사용해 새로운 랜덤한 잡음(noise) 벡터 z에서 가짜 샘플 x*을 생성함.
    2. 판별자 네트워크를 사용해 x*을 분류함.
    3. 분류 오차를 계산하고 역전ㅍ해서 생성자의 훈련 가능한 파라미터들을 업데이트하고 판별자의 오차를 최대화함.