GAN에는 몇 가지 일반적인 오류 모드가 있습니다. 이러한 일반적인 문제는 모두 활발하게 연구 중인 영역입니다. 이러한 문제는 아직 완전히 해결되지 않았지만 사용자가 시도한 몇 가지 방법을 소개합니다.
사라지는 그라데이션
연구에 따르면 판별자가 너무 좋으면 미미한 기울기로 인해 생성기 학습이 실패할 수 있습니다. 실제로 최적의 판별자는 생성기가 진행할 만큼 충분한 정보를 제공하지 않습니다.
해결 시도
- Wasserstein 손실: Wasserstein 손실은 판별기를 최적화로 학습하더라도 기울기 소멸을 방지하도록 설계되었습니다.
- 수정된 미니맥스 손실: 원본 GAN 논문에서는 사라지는 기울기를 처리하기 위해 미니맥스 손실 수정을 제안했습니다.
모드 접기
일반적으로 GAN은 다양한 출력을 생성해야 합니다. 예를 들어 얼굴 생성기에 무작위로 입력할 때마다 다른 얼굴을 사용하려 합니다.
하지만 생성기가 특히 그럴듯한 출력을 생성하면 생성기는 해당 출력 만 생성하는 방법을 학습할 수 있습니다. 실제로 생성기는 항상 분류자에게 가장 그럴듯해 보이는 출력을 찾으려고 합니다.
생성기가 동일한 출력 (또는 소수의 출력 집합)을 반복해서 생성하기 시작하면 차별자의 최선의 전략은 항상 해당 출력을 거부하는 방법을 학습하는 것입니다. 하지만 차세대 판별자가 국소 최솟값에 멈추고 최적의 전략을 찾지 못하면 다음 생성기 반복이 현재 판별기에 가장 그럴듯한 출력을 찾기가 너무 쉽습니다.
생성기의 각 반복은 특정 판별자에 대해 과도하게 최적화되며 판별자는 함정에서 벗어나는 방법을 학습하지 못합니다. 따라서 생성기는 소수의 출력 유형을 통해 순환합니다. 이러한 형태의 GAN 실패를 모드 붕괴라고 합니다.
해결 시도
다음 접근 방식은 생성기가 단일 고정 구분자에 맞게 최적화되지 않도록 하여 생성기의 범위를 넓히도록 합니다.
- Wasserstein 손실: Wasserstein 손실은 경사 사라짐에 대해 걱정하지 않고 판별기를 최적화하도록 학습시켜 모드 붕괴를 완화합니다. 판별자가 로컬 최솟값에 멈추지 않으면 생성기가 안정화되는 출력을 거부하도록 학습합니다. 따라서 생성기는 새로운 것을 시도해야 합니다.
- 펼쳐진 GAN: 펼쳐진 GAN은 현재 판별자의 분류뿐만 아니라 향후 판별자 버전의 출력을 통합하는 생성자 손실 함수를 사용합니다. 따라서 생성기는 단일 판별기에 대해 과도하게 최적화할 수 없습니다.
수렴 실패
학습 모듈에서 설명한 것처럼 GAN은 수렴하지 않는 경우가 많습니다.
해결 시도
연구자들은 다음을 포함하여 다양한 형태의 정규화를 사용하여 GAN 수렴을 개선하려고 시도했습니다.
- 차별기 입력에 노이즈 추가: 예를 들어 생성형 대립 학습 네트워크를 위한 원칙적 방법을 참고하세요.
- 구분자 가중치에 불이익 적용: 예를 들어 규제화를 통한 생성적 적대 신경망 학습 안정화를 참고하세요.