Come queste intelligenze artificiali inventano immagini?
ACCEDI A CHATGPT IN ITALIANO CLICCANDO QUI !
Le intelligenze artificiali (IA) sono sempre più presenti nella nostra vita quotidiana e questo video di YouTube spiega come possono essere utilizzate per creare immagini. Mostra come gli algoritmi siano in grado di utilizzare i dati per generare immagini originali e creative. Questo video è un ottimo modo per imparare di più sull’intelligenza artificiale e su come può essere utilizzata per creare immagini.
Questo video spiega come le intelligenze artificiali possono generare immagini da una descrizione. Gli algoritmi utilizzati per questo sono chiamati IA generative e si basano sull’apprendimento supervisionato. Le IA generative operano prendendo in input una serie di numeri e producendo un’immagine in output. Tuttavia, questo metodo non funziona bene perché non può tenere conto della componente casuale e della sintesi di informazioni necessarie alla produzione di immagini. Nel 2014, un team dell’Università di Montréal ha proposto un metodo più efficace per generare immagini da una descrizione.
ACCEDI A CHATGPT IN ITALIANO CLICCANDO QUI !
DALL-E
Da diversi mesi, è impossibile sfuggire all’ondata di immagini generate da intelligenze artificiali, IA. Che si tratti di DALL·E, di Midjourney o di Stable Diffusion, esistono ora diversi programmi estremamente efficaci, capaci di creare da zero un’immagine a partire da una descrizione.
E ciò che fanno queste IA non è la ricerca di immagini su Google. Non vanno a cercare un’immagine esistente, ma producono immagini nuove, che non esistono e che creano su richiesta. Possono essere fotografie, dipinti o arte digitale,
E a volte possiamo anche specificare il tipo di obiettivo fotografico o lo stile del pittore che vorremmo trovare. Questi tipi di algoritmi vengono chiamati IA generative, perché sono in grado di creare contenuti su richiesta, integrando nella progettazione una componente casuale,
In modo da ottenere molte variazioni dalla stessa richiesta. Se hai provato queste IA generative, potresti essere rimasto sorpreso quanto me dalle loro capacità di fare qualcosa che sembrava impossibile solo pochi
Anni fa. Sembra quasi magico quanto bene funzioni. Ma in realtà, come funziona davvero? Beh, è quello che vedremo insieme oggi! [jingle] Iniziamo con alcune osservazioni di base sulla terminologia. Quello che chiamiamo intelligenza
Artificiale, è un campo dai contorni un po’ sfumati. Possiamo dire che il suo obiettivo è quello di realizzare con l’aiuto delle macchine, compiti tradizionalmente svolti dagli esseri umani e che richiedono intelligenza. Senza specificare troppo il significato che diamo a questo termine.
[DIAGRAMMA All’interno dell’IA, c’è un campo di ricerca abbastanza ben identificato chiamato apprendimento automatico, o machine learning. L’idea è affrontare in particolare le questioni di IA, sviluppando algoritmi capaci di imparare. E che fanno il loro apprendimento dai dati a cui hanno accesso.
E nell’apprendimento automatico, c’è il deep learning. E questa è l’idea di utilizzare una classe abbastanza specifica di algoritmi chiamati reti neurali profonde, che hanno conosciuto un enorme successo negli ultimi dieci anni.] Oggi, quando si utilizza il termine IA, si tratta quasi sempre di deep
Learning, tanto questa approccio è efficace. Non parlerò qui dei principi di base del deep learning, avevo fatto un video completo sull’argomento tempo fa, ti invito a guardarlo se sei interessato.
Quando parliamo di algoritmi capaci di imparare, spesso funzionano secondo lo stesso principio. Immagina di voler creare un algoritmo in grado di riconoscere cosa c’è in un’immagine. [ALGO Vogliamo un programma a cui diamo un’immagine in input e che produca una parola
In output. E vogliamo che questo algoritmo risponda “Gatto” su questa immagine, su questa “Auto”, ecc. Per realizzare questo, useremo ciò che chiamiamo apprendimento supervisionato. All’inizio, il nostro algoritmo sarà ignorante e risponderà a caso quando gli viene
Presentata un’immagine. E poi gli forniremo un grande database di esempi. Cioè migliaia di immagini di gatti, auto, tazze, ognuna con la risposta che ci aspetteremmo da lui.] Utilizzando questi esempi, l’algoritmo regolerà gradualmente i suoi parametri per
Essere in grado di rispondere correttamente a nuove immagini. Bene, come puoi immaginare, la situazione è un po’ più complicata se vogliamo creare un’immagine da zero a partire da una descrizione. Non possiamo utilizzare lo stesso metodo, perché non abbiamo accesso a
Una grande quantità di esempi di coppie “immagine – descrizione”. Anche se avessimo tante immagini e le loro descrizioni, sarebbe molto difficile riuscire a fare il collegamento tra le due. L’idea di base è simile, ma i dettagli sono diversi.
[ALGO E se volessimo creare un algoritmo capace di generare un’immagine a partire da una descrizione, useremmo la stessa idea, ma al contrario. Daremmo all’algoritmo una descrizione in input e vorremmo che produsse un’immagine in output.
Questo si chiama generazione di immagini. E per farlo, useremmo sempre un tipo di apprendimento automatico, ma non più supervisionato, bensì “non supervisionato”. E ciò che rende difficile la generazione di immagini è che non possiamo semplicemente confrontare l’immagine prodotta
Con l’immagine che vorremmo ottenere. In effetti, ciò che cerchiamo è una sola immagine, e potremmo accettare molte immagini diverse che rispondono alla descrizione. Quindi, dobbiamo trovare un modo per stabilire un obiettivo di apprendimento senza fornire esempi
Esatti di ciò che cerchiamo. In altre parole, dobbiamo definire una funzione che ci dica quanto siamo soddisfatti del risultato prodotto dall’algoritmo, ma non possiamo fare questo partendo da coppie “input-output” esatte.] Ma, come vedremo, esistono metodi abbastanza potenti
Per farlo, che sembrano abbastanza magici. Ma prima, una piccola digressione storica. La generazione di immagini è un problema molto vecchio. Forse il primo esempio di generazione di immagini assistita da computer risale al 1963.
[TESTO Nel 1963, il grafico Ivan Sutherland ha sviluppato l’Sketchpad, il primo programma grafico interattivo. Uno dei suoi compiti era quello di generare automaticamente un’immagine di un caminetto a partire da una descrizione testuale.]
Ma, naturalmente, l’approccio era molto diverso da quello che vediamo oggi. Non si trattava di generare un’immagine pixel per pixel, ma di disegnare un caminetto con linee. Questo metodo non ha nulla a che vedere con quello che facciamo oggi, ma dimostra che il problema è stato preso in considerazione
Per molto tempo. La vera svolta nella generazione di immagini è arrivata con l’avvento del deep learning. E più precisamente con la proposta della rete neurale generativa
(Generative Adversarial Network, GAN). Questa idea è stata proposta per la prima volta nel 2014 da Ian Goodfellow e alcuni suoi colleghi di ricerca di Montreal. Questa idea è stata un vero e proprio fulmine a ciel sereno per il campo dell’intelligenza artificiale.
Perché era esattamente quello di cui avevano bisogno per fare progressi nella generazione di immagini. E la proposta era abbastanza semplice. [ALGO Abbiamo due algoritmi, uno chiamato generatore e uno chiamato discriminatore.
E il nostro obiettivo è addestrare il generatore affinché produca delle immagini realistiche. L’idea è di allenare il discriminatore a riconoscere le immagini reali da quelle prodotte dal generatore. E il generatore verrà allenato a “ingannare” il discriminatore, cioè a produrre immagini
Che il discriminatore giudicherà vere. E se il discriminatore non riesce a fare questa distinzione, allora significa che le immagini prodotte dal generatore sono buone. E se il generatore riesce a “ingannare” il discriminatore, allora ha imparato a produrre immagini
Credibili.] E questa idea si è rivelata estremamente efficace, tanto che da allora la generazione di immagini è diventata un campo di ricerca attivo e molto promettente. Non entreremo nei dettagli matematici
Dietro i GAN, perché non sono così importanti per capire il principio generale. Ma se sei interessato, ci sono molti video e corsi che spiegano questo in dettaglio. Quello che mi interessa qui è mostrarti come questo tipo di algoritmo può produrre delle immagini a partire da una descrizione.
Dopo il famoso DALL-E, proposto da OpenAI nel 2020, ci sono stati numerosi altri algoritmi molto efficaci. E oggi ne vedremo uno molto interessante chiamato ImageGPT. E questo è il prossimo passo nel campo della generazione di immagini.
Ma prima, facciamo un piccolo promemoria su come funziona l’allenamento di una rete neurale. Dopo aver definito il problema e scelto l’architettura della rete, l’allenamento è diviso in due fasi principali.
La prima fase è la fase di inizializzazione, in cui i pesi della rete neurale vengono inizializzati casualmente. E la seconda fase è la fase di addestramento, in cui questi pesi vengono aggiustati per minimizzare una funzione di perdita, che è una misura dell’errore compiuto dalla rete.
E per farlo, abbiamo bisogno di un set di dati di allenamento, che è un insieme di esempi etichettati che useremo per addestrare la nostra rete. [ALGO Il nostro set di allenamento sarà un insieme di coppie “immagine – descrizione”. E durante la fase di addestramento
Daremo in input un’immagine al nostro algoritmo e ci aspettiamo di ottenere la descrizione corrispondente in output. E ad ogni passaggio, regoleremo i pesi della rete per ridurre la differenza tra la descrizione ottenuta e quella desiderata.
Ma ci sono due piccoli problemi con questa idea. Il primo è che non abbiamo accesso a questo tipo di set di dati. E anche se ne avessimo, sarebbe molto difficile da utilizzare, perché la descrizione di un’immagine è un po’ soggettiva.] Ma, come vedremo, possiamo aggirare questo problema
Utilizzando un trucco abbastanza intelligente. Il secondo problema è che non abbiamo una buona definizione di cosa significhi “descrizione corrispondente” in questo contesto. Come facciamo a valutare quanto la descrizione prodotta è simile a quella desiderata?
Questo problema è noto come valutazione della qualità della generazione di linguaggio naturale e è un problema aperto in molti campi. Ma ci sono molti modi per affrontarlo, come ad esempio utilizzare un modello di lingua pre-addestrato o
Un modello di lingua generativa. E ci sono anche misure oggettive che possiamo utilizzare, come la distanza di Levenshtein o il BLEU score, che misurano quanto una sequenza di parole è simile a un’altra sequenza di parole.
Ma non entreremo nei dettagli qui. Quello che voglio mostrarti è come possiamo utilizzare un modello di lingua pre-addestrato per valutare la qualità della generazione di immagini.
E il modo in cui lo faremo è un po’ insolito. Utilizzeremo un modello di linguaggio per generare una descrizione dell’immagine prodotta dall’algoritmo e quindi useremo un’algoritmo di apprendimento automatico per valutare quanto questa descrizione è simile a quella desiderata.
E se questa descrizione è abbastanza simile, allora possiamo supporre che l’immagine prodotta sia abbastanza buona. Ma, naturalmente, questo è solo uno dei tanti modi per affrontare questo problema, e ci sono molte altre tecniche che potremmo utilizzare.
Ma questo è abbastanza per darti un’idea generale di come funziona. E ora, finalmente, siamo pronti per esaminare ImageGPT. E l’idea alla base di ImageGPT è abbastanza semplice. Prendiamo un modello di lingua pre-addestrato, come GPT-3,
E lo addestriamo su un insieme di immagini e le loro descrizioni. E poi usiamo questo modello per generare una descrizione di un’immagine, che useremo per valutare quanto sia buona. E se la descrizione prodotta è abbastanza simile a quella desiderata, possiamo presumere
Che l’immagine prodotta sarà abbastanza buona. Questo approccio ha il vantaggio di essere abbastanza semplice e facile da implementare. Ma ha anche alcuni svantaggi. Per esempio, dobbiamo avere un modello di lingua pre-addestrato di alta qualità
E un insieme di dati di allenamento di alta qualità. E dobbiamo anche avere un modo per valutare la qualità della generazione di linguaggio naturale, che può essere complicato. Ma non entreremo nei dettagli qui. Quello che voglio mostrarti è come possiamo implementare questo approccio
Utilizzando le librerie di apprendimento automatico disponibili oggi. E se ciò ti sembra interessante, allora continueremo questa conversazione.
Fonte : www.youtube.com