Che cos'è una rete avversaria generativa? Una guida facile

Che cos'è una rete avversaria generativa? Una guida facile
L'intelligenza artificiale (IA) sta vivendo una sorta di Cambrian explosion. Ciò che sembrava fantascienza solo poco tempo fa è diventato realtà negli ultimi anni. E l'interesse sta crescendo grazie al rilascio di strumenti come ChatGPT. Ma proprio come l'esplosione cambriana, ciò che sta emergendo dal salto evolutivo dell'IA non è una cosa sola. Ci sono molti fronti in cui stiamo facendo progredire il software di IA allo stesso tempo.
In questo post parleremo di uno di questi tipi di IA: le reti generative avversarie, un modello di IA efficace utilizzato per diversi tipi di compiti.
Discriminativa vs. Generativa
Proprio come classifichiamo i fossili animali in domini, regni e phyla, anche le reti di IA vengono classificate. Al livello più alto, le reti di intelligenza artificiale sono classificate come "discriminative" e "generative". Una rete neurale generativa è un'intelligenza artificiale che crea qualcosa di nuovo. Si differenzia da una rete discriminativa, che classifica qualcosa di già esistente in particolari categorie. Un po' come stiamo facendo noi in questo momento, classificando le reti generative avversarie (GAN) in categorie appropriate.
Quindi, se si volesse utilizzare i tag testuali per creare una nuova immagine visiva, come nel caso di Midjourney, si utilizzerebbe una rete generativa. Se invece si dispone di un'enorme quantità di dati da classificare e etichettare, si utilizzerebbe un modello discriminativo.
Dove si colloca la rete avversaria generativa?
Il nome implica che una GAN è generativa. Ma anche la seconda parola è importante. Una GAN è un'applicazione intelligente di modelli discriminativi e generativi. Un modello GAN si addestra con un gruppo iniziale di dati classificati. Poi il modello generativo cercherà di generare nuove istanze che ritiene adatte al modello. In un secondo momento, il modello discriminativo riceverà sia i contenuti generati che quelli del set di addestramento. Tenterà di classificare il contenuto come generato o come parte dell'insieme di formazione.
Questa è la parte adversarial dell'acronimo GAN. La parte generativa del modello cerca di creare contenuti sempre migliori finché non riesce a "ingannare" in modo affidabile il modello discriminativo. L'obiettivo fondamentale di una GAN è quello di addestrare un modello generativo che generi contenuti di alta qualità, ma per raggiungerlo utilizza sia modelli generativi che discriminativi.
Supervisionato vs. non supervisionato
Dopo aver classificato il dominio in discriminativo e generativo, il prossimo criterio di classificazione è se un modello è "supervisionato" o "non supervisionato". Questa classificazione può essere un po' più confusa. Sebbene la classificazione supervisionato/non supervisionato sia istruttiva, molti tipi di modelli di IA utilizzano un approccio ibrido. Un modello supervisionato, come dice il nome, prevede generalmente la supervisione umana durante la fase di addestramento. La fase di addestramento di un modello supervisionato prevede più cicli di input iniziali e output desiderati.
I modelli non supervisionati, come dice il nome, funzionano con un input umano ridotto o nullo. L'obiettivo è che il modello prenda un set di addestramento originale e lo sottoponga a più cicli di addestramento sempre migliori, per generare contenuti migliori dopo ogni ciclo.
Che tipo di rete avversaria generativa è?
Una GAN è un modello di intelligenza artificiale non supervisionato. Lo stile "back-and-forth" dei cicli di formazione avversaria è progettato per migliorare continuamente il contenuto generato. Per uno sviluppatore che lavora con una GAN, è necessario fornire classificazioni di alta qualità del set iniziale di dati di addestramento e fornire la potenza di calcolo necessaria per eseguire più iterazioni. Tuttavia, una volta fornite le risorse necessarie, è possibile eseguire la GAN con un'interazione umana minima.
Rete avversaria generativa vs. rete neurale convoluzionale
Una domanda comune per i nuovi sviluppatori che lavorano con una GAN è il rapporto con una rete neurale convoluzionale (CNN). Una CNN è un tipo di modello discriminativo che viene utilizzato per classificare i dati sulla base di contenuti etichettati esistenti. Molte GAN utilizzano una CNN come modello discriminativo che mette alla prova i contenuti generati nel primo avvio del ciclo di addestramento. Le CNN sono molto spesso utilizzate per classificare le immagini da utilizzare nelle architetture di riconoscimento delle immagini al computer.
Le CNN sono talvolta utilizzate anche come fase generativa nell'architettura GAN. L'uso di una CNN per generare contenuti come output della fase generazionale richiede di solito l'aggiunta di una logica supplementare come un variational autoencoder piuttosto che utilizzare una CNN tradizionale. Quando si utilizza questo strumento in combinazione con una CNN tradizionale, è possibile utilizzare una CNN sia per la fase generazionale che per quella avversaria del processo di addestramento della GAN.
Domande frequenti
Ora che abbiamo un'idea abbastanza chiara di cosa sia una GAN e di cosa faccia, affrontiamo una serie di domande frequenti sulle GAN e sui motivi per cui sceglierne una per il vostro progetto.
Quali sono gli usi più comuni delle GAN?
Uno dei principali vantaggi di una GAN è che può generare esempi realistici di un'ampia varietà di contenuti. Con il giusto tipo di dati di addestramento, è possibile utilizzare prompt basati su testo per generare uno dei seguenti tipi di contenuti:
- Immagini
- Contenuti audio (come la musica)
- Conversione di immagini in bianco e nero a colori
- Conversione da schizzi disegnati a mano a rappresentazioni fotorealistiche
- Prevedere i fotogrammi futuri di un video in base ai fotogrammi precedenti
- Creare deepfakes
Perché scegliere una rete avversaria generativa?
Abbiamo parlato molto di come sono classificate le GAN, di come funzionano e di cosa possono fare. Ma non abbiamo risposto a una semplice domanda: perché scegliere di utilizzare una GAN? Una delle ragioni per cui si potrebbe utilizzare un GAN è quando si ha a che fare con problemi per i quali non si dispone di un ampio insieme di dati da utilizzare per l'addestramento. La natura di un GAN è che si può lavorare con una quantità limitata di dati di addestramento, poi si può lasciare che il GAN generi altri dati che vengono reimmessi nella routine di addestramento. Molti sistemi di apprendimento automatico richiedono un addestramento su una quantità considerevole di dati pre-etichettati. Quando si utilizza un GAN, non si ha questo requisito.
Le GAN sono anche particolarmente efficaci nel lavorare e generare immagini. Che si tratti di creare nuove immagini a partire da richieste di testo o di aggiornare un'immagine di input con contenuti generati, le GAN sono interessanti perché forniscono risultati di grande impatto visivo.
Perché evitare di usare una rete avversaria generativa?
Se state pensando di adottare una GAN, ci sono alcuni svantaggi che dovreste comunque considerare. Per cominciare, le GAN non sono adatte se si cerca di addestrare il modello a basso costo. Le GAN sono particolarmente costose da addestrare, a causa del ciclo di addestramento in più fasi e della necessità di sottoporsi a più cicli di addestramento. Pertanto, se si sta cercando di rispettare un budget rigido, l'adozione di una GAN potrebbe non essere una buona scelta.
Inoltre, le GAN a volte subiscono il cosiddetto mode collapse, in cui il contenuto dell'output è un sottoinsieme limitato dei dati di addestramento, e non la gamma di varietà che si sperava di ottenere.
Le GAN forniscono una grande utilità quando sono adatte
Per tornare alla nostra metafora evolutiva, una GAN non è un granchio o una tartaruga. Non è un animale che tra qualche anno ricoprirà ancora lo stesso ruolo. Al contrario, le GAN si stanno evolvendo. I ricercatori stanno ancora cercando di capire cosa possono fare le GAN e come progettarle e addestrarle al meglio. Se state pensando di adottare l'apprendimento automatico per i vostri flussi di lavoro, la ricerca di GAN ha molto senso, ma potrebbe non essere lo strumento giusto per il vostro lavoro. Se non vi sembrano adatti, dovreste evitare di cercare di inserirli in un lavoro in cui non sono adatti. Ma se svolgete un lavoro che si adatta a una GAN, in particolare la manipolazione o la creazione di immagini, allora l'adozione e la formazione di una GAN potrebbe fornire grandi vantaggi ai vostri flussi di lavoro.
Date un'occhiata a Zilliz, un algoritmo di database vettoriale economicamente vantaggioso.
- Discriminativa vs. Generativa
- Supervisionato vs. non supervisionato
- Rete avversaria generativa vs. rete neurale convoluzionale
- Domande frequenti
- Le GAN forniscono una grande utilità quando sono adatte
Contenuto
Inizia gratis, scala facilmente
Prova il database vettoriale completamente gestito progettato per le tue applicazioni GenAI.
Prova Zilliz Cloud gratuitamente