Problemi comuni

Le GAN presentano una serie di modalità di errore comuni. Tutti questi problemi comuni sono in fase di ricerca attiva. Anche se nessuno di questi problemi è stato completamente risolto, di seguito sono riportate alcune soluzioni che sono state provate.

Gradienti che svaniscono

La ricerca ha suggerito che se il discriminatore è troppo buono, l'addestramento del generatore può non riuscire a causa di gradienti in diminuzione. In effetti, un discriminatore ottimale non fornisce informazioni sufficienti per consentire al generatore di fare progressi.

Tentativi di correzione

Comprimi modalità

In genere, è preferibile che il GAN produca una vasta gamma di output. Ad esempio, vuoi un volto diverso per ogni input casuale al generatore di volti.

Tuttavia, se un generatore produce un output particolarmente plausibile, può imparare a produrre solo quell'output. Infatti, il generatore cerca sempre di trovare l'output che sembra più plausibile per il discriminatore.

Se il generatore inizia a produrre sempre lo stesso output (o un piccolo insieme di output), la strategia migliore del discriminatore è imparare a rifiutarlo sempre. Tuttavia, se la generazione successiva del discriminatore si blocca in un minimo locale e non trova la strategia migliore, è troppo facile per l'iterazione successiva del generatore trovare l'output più plausibile per l'attuale discriminatore.

Ogni iterazione del generatore esegue un'ottimizzazione eccessiva per un determinato discriminatore e il discriminatore non riesce mai a trovare la via di fuga dalla trappola. Di conseguenza, i generatori ruotano tra un piccolo insieme di tipi di output. Questa forma di fallimento del GAN è chiamata mode collapse.

Tentativi di correzione

I seguenti approcci tentano di forzare il generatore ad ampliare il proprio ambito impedendogli di ottimizzarsi per un singolo discriminatore fisso:

  • Perdita di Wasserstein: la perdita di Wasserstein riduce il collasso della modalità consentendoti di addestrare il discriminatore in modo ottimale senza preoccuparti dei gradienti che svaniscono. Se il discriminatore non si blocca in minima locale, impara a rifiutare le uscite su cui si stabilizza il generatore. Quindi il generatore deve provare qualcosa di nuovo.
  • GAN srotolate: le GAN srotolate utilizzano una funzione di perdita del generatore che incorpora non solo le classificazioni del discriminatore attuale, ma anche gli output delle versioni future del discriminatore. Di conseguenza, il generatore non può eseguire un'ottimizzazione eccessiva per un singolo discriminatore.

Mancata convergenza

Le GAN spesso non convergono, come discusso nel modulo sull'addestramento.

Tentativi di correzione

I ricercatori hanno provato a utilizzare varie forme di regolarizzazione per migliorare la convergenza delle GAN, tra cui: