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.
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:
- Il discriminatore classifica sia i dati reali sia i dati falsi del generatore.
- La perdita del discriminatore penalizza il discriminatore per aver classificato erroneamente un'istanza reale come falsa o un'istanza falsa come reale.
- 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.