Il discriminatore

Il discriminatore in una GAN è semplicemente un classificatore. Cerca di distinguere i dati reali da quelli creati dal generatore. Potrebbe utilizzare qualsiasi architettura di rete appropriata al tipo di dati che sta classificando.

Un diagramma di una rete generative adversarial. Al centro del
          diagramma è presente una casella etichettata "discriminatore". Due rami confluiscono in questa
          casella da sinistra.  Il ramo superiore inizia nell'angolo in alto a sinistra del
          diagramma con una casella etichettata "Immagini reali". Da questo cilindro parte una freccia che indica una casella etichettata "Sample" (Esempio). Una freccia dalla casella
          etichettata "Sample" (Esempio) si collega alla casella "Discriminator" (Discriminatore). Il ramo inferiore
          viene inviato alla casella "Discriminatore" che inizia con una casella etichettata come "Input
          casuale". Una freccia dalla casella "Input casuale" a una casella etichettata
          'Generatore'. Una freccia dalla casella "Generatore" a una seconda
          'Sample". Una freccia dalla casella "Sample" alla
          'Discriminator box. Sul lato destro della casella Discriminatore, due frecce portano a due caselle sul lato destro del diagramma. Una freccia indica una casella
          etichettata "Perdita del discriminatore". L'altra freccia indica una casella etichettata
          'Perdita generatore'. Una casella gialla etichettata con una freccia rivolta verso sinistra e la parola "Backpropagation" è disegnata attorno alla casella del discriminatore e alla casella della perdita del discriminatore per indicare che la retropropagazione agisce sulla parte del sistema racchiusa nella casella gialla.

Figura 1: retropropagazione nell'addestramento del discriminatore.

Dati di addestramento del discriminatore

I dati di addestramento del discriminatore provengono da due fonti:

  • Istanze di dati reali, ad esempio foto reali di persone. Il discriminatore utilizza queste istanze come esempi positivi durante l'addestramento.
  • Istanze di dati falsi create dal generatore. Il discriminatore utilizza queste istanze come esempi negativi durante l'addestramento.

Nella Figura 1, le due caselle "Sample" rappresentano queste due origini dati che alimentano il discriminatore. Durante l'addestramento del discriminatore, il generatore non viene addestrato. I relativi pesi rimangono costanti mentre produce esempi su cui addestrare il discriminatore.

Addestramento del discriminatore

Il discriminatore si connette a due funzioni di perdita. Durante l'addestramento del discriminatore, quest'ultimo ignora la perdita del generatore e utilizza solo la perdita del discriminatore. Utilizziamo la perdita del generatore durante l'addestramento del generatore, come descritto nella sezione successiva.

Durante l'addestramento del discriminatore:

  1. Il discriminatore classifica sia i dati reali sia i dati falsi del generatore.
  2. La perdita del discriminatore penalizza il discriminatore per aver classificato erroneamente un'istanza reale come falsa o un'istanza falsa come reale.
  3. Il discriminatore aggiorna i suoi pesi tramite la propagazione inversa della perdita del discriminatore attraverso la rete del discriminatore.

Nella sezione successiva vedremo perché la perdita del generatore si collega al discriminatore.