분류자

GAN의 판별자는 단순히 분류기입니다. 생성기에서 만든 데이터와 실제 데이터를 구분하려고 합니다. 분류하는 데이터 유형에 적합한 모든 네트워크 아키텍처를 사용할 수 있습니다.

생성적 적대 신경망의 다이어그램 다이어그램 중앙에는 'discriminator'(판별자)라는 라벨이 지정된 상자가 있습니다. 두 개의 브랜치가 왼쪽에서 이 상자로 들어갑니다.  상단 브랜치는 다이어그램 왼쪽 상단의 '실제 이미지'라는 라벨이 지정된 상자에서 시작됩니다. 이 원통에서 '샘플'이라고 라벨이 지정된 상자로 이어지는 화살표가 있습니다. '샘플'이라고 라벨이 지정된 상자에서 '차별화 요소' 상자로 이어지는 화살표 하단 브랜치는 '무작위 입력' 라벨이 지정된 상자로 시작하여 '차별자' 상자로 전달됩니다. '무작위 입력' 상자에서 '생성기' 라벨이 지정된 상자로 이어지는 화살표가 있습니다. 'Generator' 상자에서 두 번째 'Sample' 상자로 이어지는 화살표가 있습니다. '샘플' 상자에서 '차별자 상자 판별자 상자의 오른쪽에 있는 두 개의 화살표가 다이어그램 오른쪽의 상자 두 개로 이어집니다. 화살표 하나가 'Discriminator loss'(판별기 손실)라는 라벨이 지정된 상자로 연결됩니다. 다른 화살표는 'Generator loss'(발전기 손실)라는 라벨이 지정된 상자로 연결됩니다. 노란색 상자에 왼쪽 화살표와 '백프로파게이션'이라는 라벨이 지정되어 있으며, 이는 판별자 상자와 판별자 손실 상자 주위에 그려져 있습니다. 이는 백프로파게이션이 노란색 상자에 포함된 시스템 부분에서 작동함을 나타냅니다.

그림 1: 판별자 학습의 역전파

분류자 학습 데이터

판별자의 학습 데이터는 다음 두 가지 소스에서 가져옵니다.

  • 사람의 실제 사진과 같은 실제 데이터 인스턴스 판별자는 학습 중에 이러한 인스턴스를 양성 예로 사용합니다.
  • 생성기에서 만든 가짜 데이터 인스턴스입니다. 판별자는 학습 중에 이러한 인스턴스를 제외 예로 사용합니다.

그림 1에서 두 개의 '샘플' 상자는 판별기에 제공되는 두 데이터 소스를 나타냅니다. 구분자 학습 중에는 생성자가 학습하지 않습니다. 판별자가 학습할 예시를 생성하는 동안 가중치는 일정하게 유지됩니다.

분류자 학습

판별기는 두 개의 손실 함수에 연결됩니다. 구분자 학습 중에 구분자는 생성자 손실을 무시하고 구분자 손실만 사용합니다. 다음 섹션에 설명된 대로 생성기 학습 중에 생성기 손실을 사용합니다.

판별자 학습 중:

  1. 분류자는 생성기의 실제 데이터와 가짜 데이터를 모두 분류합니다.
  2. 분류자 손실은 실제 인스턴스를 가짜로 또는 가짜 인스턴스를 실제로 잘못 분류한 분류자에게 불이익을 줍니다.
  3. 판별자는 판별자 네트워크를 통한 판별자 손실에서 백프로파게이션을 통해 가중치를 업데이트합니다.

다음 섹션에서는 생성기 손실이 판별기에 연결되는 이유를 알아봅니다.