GAN의 판별자는 단순히 분류기입니다. 생성기에서 만든 데이터와 실제 데이터를 구분하려고 합니다. 분류하는 데이터 유형에 적합한 모든 네트워크 아키텍처를 사용할 수 있습니다.
그림 1: 판별자 학습의 역전파
분류자 학습 데이터
판별자의 학습 데이터는 다음 두 가지 소스에서 가져옵니다.
- 사람의 실제 사진과 같은 실제 데이터 인스턴스 판별자는 학습 중에 이러한 인스턴스를 양성 예로 사용합니다.
- 생성기에서 만든 가짜 데이터 인스턴스입니다. 판별자는 학습 중에 이러한 인스턴스를 제외 예로 사용합니다.
그림 1에서 두 개의 '샘플' 상자는 판별기에 제공되는 두 데이터 소스를 나타냅니다. 구분자 학습 중에는 생성자가 학습하지 않습니다. 판별자가 학습할 예시를 생성하는 동안 가중치는 일정하게 유지됩니다.
분류자 학습
판별기는 두 개의 손실 함수에 연결됩니다. 구분자 학습 중에 구분자는 생성자 손실을 무시하고 구분자 손실만 사용합니다. 다음 섹션에 설명된 대로 생성기 학습 중에 생성기 손실을 사용합니다.
판별자 학습 중:
- 분류자는 생성기의 실제 데이터와 가짜 데이터를 모두 분류합니다.
- 분류자 손실은 실제 인스턴스를 가짜로 또는 가짜 인스턴스를 실제로 잘못 분류한 분류자에게 불이익을 줍니다.
- 판별자는 판별자 네트워크를 통한 판별자 손실에서 백프로파게이션을 통해 가중치를 업데이트합니다.
다음 섹션에서는 생성기 손실이 판별기에 연결되는 이유를 알아봅니다.