GAN에는 별도로 학습된 두 네트워크가 포함되므로 학습 알고리즘은 두 가지 정보 표시를 처리해야 합니다.
- GAN은 두 가지 유형의 학습 (생성기와 분류기)을 서로 조정해야 합니다.
- GAN 수렴을 파악하기 어렵습니다.
교대로 학습
생성기와 분류자는 서로 다른 학습 프로세스를 갖습니다. 그렇다면 GAN을 전반적으로 학습시키려면 어떻게 해야 할까요?
GAN 학습은 대체 기간으로 진행됩니다.
- 판별자는 하나 이상의 에포크를 학습합니다.
- 생성기는 하나 이상의 에포크 동안 학습됩니다.
- 1단계와 2단계를 반복하여 생성기 및 구분자 네트워크를 학습시킵니다.
분류자 학습 단계에서 생성기는 일정하게 유지됩니다. 분류자 학습에서는 실제 데이터와 가짜 데이터를 구분하는 방법을 알아내려고 하므로 생성기의 결함을 인식하는 방법을 알아야 합니다. 무작위 출력을 생성하는 학습되지 않은 생성기와는 충분히 훈련된 생성기에서 다른 문제가 발생합니다.
마찬가지로, 생성기 학습 단계에서 분류기를 일정하게 유지할 수 있습니다. 그렇지 않으면 생성기는 움직이는 목표를 달성하려고 시도하며 수렴되지 않을 수 있습니다.
GAN은 다른 방법으로는 해결할 수 없는 발생하는 문제를 해결할 수 있으므로 이러한 작업이 반복됩니다. 훨씬 더 간단한 분류 문제부터 시작하여 까다로운 생성 문제를 파악할 수 있습니다. 반대로 초기 무작위 생성기 출력으로도 실제 데이터와 생성된 데이터 간의 차이를 알리도록 분류기를 학습시킬 수 없으면 GAN 학습을 시작할 수 없습니다.
통합
생성기가 학습으로 개선됨에 따라 판별자가 진짜와 가짜를 쉽게 구별할 수 없으므로 분류기 성능이 저하됩니다. 생성기가 완벽하게 성공하면 판별자가 50%의 정확성을 갖게 됩니다. 실제로 판별자는 동전을 던져 예측을 수행합니다.
이러한 진전은 전체적으로 GAN 수렴에 문제를 일으킵니다. 판별자 피드백이 시간이 지나면서 덜 유의미해집니다. 분류자가 완전히 무작위 피드백을 제공하는 시점 이후에 GAN이 계속 학습하면 생성기가 정크 피드백에 대한 학습을 시작하고 자체 품질이 저하될 수 있습니다.
GAN의 경우 수렴은 안정적인 상태가 아닌 즉각적 문제입니다.