Il deep learning sarà davvero all’altezza delle sue promesse? In realtà non lo sappiamo. Ma se lo farà, dovrà assimilare il modo in cui funzionano gli algoritmi classici dell’informatica. Questo è ciò su cui sta lavorando DeepMind e il suo successo è importante per l’eventuale diffusione delle reti neurali in applicazioni commerciali più ampie.
Fondata nel 2010 con l’obiettivo di creare AGI – intelligenza artificiale generale, un’intelligenza artificiale per tutti gli usi che imita veramente l’intelligenza umana – DeepMind è in prima linea nella ricerca sull’intelligenza artificiale. La società è anche supportata da pesi massimi del settore come Elon Musk e Peter Thiel.
Acquisita da Google nel 2014, DeepMind ha fatto notizia per progetti come AlphaGo , un programma che ha battuto il campione del mondo al gioco del Go in una partita di cinque partite, e AlphaFold , che ha trovato una soluzione a un grand sfida in biologia .
Ora DeepMind ha messo gli occhi su un’altra grande sfida: collegare i mondi del deep learning e dell’informatica classica per consentire al deep learning di fare tutto . In caso di successo, questo approccio potrebbe rivoluzionare l’intelligenza artificiale e il software come li conosciamo.
Petar Veličković è un ricercatore senior presso DeepMind. Il suo ingresso nell’informatica è avvenuto attraverso il ragionamento algoritmico e il pensiero algoritmico utilizzando algoritmi classici. Da quando ha iniziato a fare ricerche sull’apprendimento profondo, ha voluto conciliare l’apprendimento profondo con gli algoritmi classici che inizialmente lo hanno entusiasmato per l’informatica.
Nel frattempo, Charles Blundell è un responsabile della ricerca presso DeepMind che è interessato a far sì che le reti neurali utilizzino molto meglio le enormi quantità di dati a cui sono esposte. Gli esempi includono ottenere una rete per dirci ciò che non sa, per imparare molto più rapidamente o per superare le aspettative.
Quando Veličković ha incontrato Blundell a DeepMind, è nato qualcosa di nuovo: una linea di ricerca che va sotto il nome di Neural Algorithmic Reasoning (NAR), dopo un position paper che il duo ha recentemente pubblicato.
NAR rintraccia le radici dei campi che tocca e si dirama in collaborazioni con altri ricercatori. E a differenza di molte ricerche fantasiose, NAR ha alcuni primi risultati e applicazioni da mostrare.
Algoritmi e deep learning: il meglio dei due mondi
Veličković è stato per molti versi la persona che ha dato il via alla direzione del ragionamento algoritmico in DeepMind. Con il suo background sia negli algoritmi classici che nell’apprendimento profondo, si è reso conto che esiste una forte complementarità tra i due. Quello che uno di questi metodi tende a fare davvero bene, l’altro non lo fa bene e viceversa.
“Di solito quando vedi questo tipo di modelli, è un buon indicatore che se puoi fare qualcosa per avvicinarli un po’ insieme, allora potresti ritrovarti con un modo fantastico per fondere il meglio di entrambi i mondi e creare alcuni davvero forti progressi”, ha detto Veličković.
Quando Veličković si è unito a DeepMind, ha detto Blundell, le loro prime conversazioni sono state molto divertenti perché hanno un background molto simile. Entrambi condividono un background in informatica teorica. Oggi entrambi lavorano molto con l’apprendimento automatico, in cui una domanda fondamentale per molto tempo è stata come generalizzare: come si lavora al di là degli esempi di dati che hai visto?
Gli algoritmi sono un ottimo esempio di qualcosa che usiamo tutti i giorni, ha osservato Blundell. In effetti, ha aggiunto, non ci sono molti algoritmi là fuori. Se guardi i normali libri di testo di informatica, ci sono forse 50 o 60 algoritmi che impari come studente universitario. E tutto ciò che le persone usano per connettersi a Internet, ad esempio, ne usa solo un sottoinsieme.
“C’è questa base molto bella per un calcolo molto ricco che già conosciamo, ma è completamente diverso dalle cose che stiamo imparando. Quindi, quando Petar e io abbiamo iniziato a parlarne, abbiamo visto chiaramente che c’è una bella fusione che possiamo fare qui tra questi due campi che in realtà è stata finora inesplorata”, ha detto Blundell.
La tesi chiave della ricerca NAR è che gli algoritmi possiedono qualità fondamentalmente diverse dai metodi di deep learning. E questo suggerisce che se i metodi di deep learning fossero in grado di imitare meglio gli algoritmi, allora la generalizzazione del tipo visto con gli algoritmi diventerebbe possibile con il deep learning.
Per affrontare l’argomento di questo articolo, abbiamo chiesto a Blundell e Veličković di illustrare le proprietà che definiscono gli algoritmi classici dell’informatica rispetto ai modelli di deep learning. Capire i modi in cui algoritmi e modelli di deep learning sono diversi è un buon inizio se l’obiettivo è riconciliarli.
L’apprendimento profondo non può generalizzare
Per cominciare, ha detto Blundell, gli algoritmi nella maggior parte dei casi non cambiano. Gli algoritmi sono costituiti da un insieme fisso di regole che vengono eseguite su alcuni input e di solito i buoni algoritmi hanno proprietà ben note. Per qualsiasi tipo di input che l’algoritmo ottiene, fornisce un output ragionevole, in un ragionevole lasso di tempo. Di solito è possibile modificare la dimensione dell’input e l’algoritmo continua a funzionare.
L’altra cosa che puoi fare con gli algoritmi è collegarli insieme. Il motivo per cui gli algoritmi possono essere messi insieme è a causa di questa garanzia che hanno: dato un qualche tipo di input, producono solo un certo tipo di output. E questo significa che possiamo connettere algoritmi, inserendo il loro output nell’input di altri algoritmi e creando un intero stack.
Le persone hanno cercato di eseguire algoritmi nel deep learning per un po’, ed è sempre stato piuttosto difficile, ha detto Blundell. Poiché provare attività semplici è un buon modo per eseguire il debug delle cose, Blundell ha fatto riferimento a un esempio banale: l’attività di copia dell’input. Un algoritmo il cui compito è copiare, dove il suo output è solo una copia del suo input.
Si scopre che questo è più difficile del previsto per l’apprendimento profondo. Puoi imparare a farlo fino a una certa lunghezza, ma se aumenti la lunghezza dell’input oltre quel punto, le cose iniziano a rompersi. Se si addestra una rete sui numeri 1-10 e la si prova sui numeri 1-1.000, molte reti non generalizzeranno.
Blundell ha spiegato: “Non avranno imparato l’idea di base, che è che devi solo copiare l’input nell’output. E man mano che rendi il processo più complicato, come puoi immaginare, peggiora. Quindi, se si pensa di ordinare vari algoritmi grafici, in realtà la generalizzazione è molto peggiore se si addestra una rete per simulare un algoritmo in modo molto ingenuo”.
Fortunatamente, non sono tutte cattive notizie.
“[I]c’è qualcosa di molto carino negli algoritmi, ovvero che sono fondamentalmente delle simulazioni. Puoi generare molti dati e questo li rende molto suscettibili di essere appresi dalle reti neurali profonde”, ha affermato. “Ma ci richiede di pensare dal lato dell’apprendimento profondo. Quali cambiamenti dobbiamo apportare lì in modo che questi algoritmi possano essere ben rappresentati e effettivamente appresi in modo robusto?”
Naturalmente, rispondere a questa domanda è tutt’altro che semplice.
“Quando si utilizza il deep learning, di solito non c’è una garanzia molto forte su quale sarà l’output. Quindi potresti dire che l’output è un numero compreso tra zero e uno, e puoi garantirlo, ma non potresti garantire qualcosa di più strutturale”, ha spiegato Blundell. “Ad esempio, non puoi garantire che se mostri a una rete neurale l’immagine di un gatto e poi fai una foto diversa di un gatto, sarà sicuramente classificato come un gatto”.
Con gli algoritmi, potresti sviluppare garanzie che ciò non accada. Ciò è in parte dovuto al tipo di problemi a cui vengono applicati gli algoritmi è più suscettibile a questo tipo di garanzie. Quindi, se un problema è suscettibile di queste garanzie, allora forse possiamo portare nelle reti neurali profonde compiti algoritmici classici che consentono questo tipo di garanzie per le reti neurali.
Queste garanzie di solito riguardano le generalizzazioni: la dimensione degli input, i tipi di input che hai e i loro risultati che si generalizzano sui tipi. Ad esempio, se disponi di un algoritmo di ordinamento, puoi ordinare un elenco di numeri, ma puoi anche ordinare qualsiasi cosa per cui puoi definire un ordinamento, come lettere e parole. Tuttavia, non è il genere di cose che vediamo al momento con le reti neurali profonde.
Gli algoritmi possono portare a soluzioni subottimali
Un’altra differenza, che ha notato Veličković, è che il calcolo algoritmico può essere solitamente espresso come pseudocodice che spiega come si passa dagli input agli output. Questo rende gli algoritmi banalmente interpretabili . E poiché operano su questi input astratti che sono conformi ad alcune precondizioni e post-condizioni, è molto più facile ragionare su di essi in teoria.
Ciò rende anche molto più facile trovare connessioni tra diversi problemi che altrimenti non potresti vedere, ha aggiunto Veličković. Ha citato l’esempio di MaxFlow e MinCut come due problemi apparentemente molto diversi, ma in cui la soluzione dell’uno è necessariamente la soluzione dell’altro . Non è ovvio a meno che non lo studi da una lente molto astratta.
“Ci sono molti vantaggi in questo tipo di eleganza e vincoli, ma è anche il potenziale difetto degli algoritmi”, ha detto Veličković. “Questo perché se vuoi che i tuoi input siano conformi a queste rigorose precondizioni, ciò significa che se i dati che provengono dal mondo reale sono anche solo un po’ perturbati e non sono conformi alle precondizioni, perderò molte informazioni prima di poterle inserire nell’algoritmo”.
Ha detto che ovviamente rende il metodo dell’algoritmo classico non ottimale, perché anche se l’algoritmo ti dà una soluzione perfetta, potrebbe darti una soluzione perfetta in un ambiente che non ha senso. Pertanto, le soluzioni non saranno qualcosa che puoi usare. D’altra parte, ha spiegato, il deep learning è progettato per acquisire rapidamente molti dati grezzi su larga scala e raccogliere regole interessanti nei dati grezzi, senza vincoli reali.
“Questo lo rende straordinariamente potente in scenari rumorosi: puoi perturbare i tuoi input e la tua rete neurale sarà ancora ragionevolmente applicabile. Per gli algoritmi classici, potrebbe non essere così. E questo è anche un altro motivo per cui potremmo voler trovare questa fantastica via di mezzo in cui potremmo essere in grado di garantire qualcosa sui nostri dati, ma non richiedere che i dati siano vincolati a, diciamo, minuscoli scalari quando la complessità del mondo reale potrebbe essere molto più grande”, ha detto Veličković.
Un altro punto da considerare è da dove provengono gli algoritmi. Di solito quello che succede è che trovi scienziati teorici molto intelligenti, spieghi il tuo problema e loro ci pensano molto, ha detto Blundell. Quindi gli esperti se ne vanno e mappano il problema su una versione più astratta che guida un algoritmo. Gli esperti presentano quindi il loro algoritmo per questa classe di problemi, che promettono che verrà eseguito in un determinato periodo di tempo e forniranno la risposta giusta. Tuttavia, poiché la mappatura dal problema del mondo reale allo spazio astratto su cui è derivato l’algoritmo non è sempre esatta, ha detto Blundell, richiede un po’ di un salto induttivo.
Con l’apprendimento automatico, è il contrario, poiché il machine learning guarda solo i dati. In realtà non si mappa su uno spazio astratto, ma risolve il problema in base a ciò che gli dici.
Quello che Blundell e Veličković stanno cercando di fare è arrivare da qualche parte tra questi due estremi, dove hai qualcosa che è un po’ più strutturato ma si adatta comunque ai dati, e non richiede necessariamente un essere umano nel ciclo. In questo modo non hai bisogno di pensare così tanto come un informatico. Questo approccio è prezioso perché spesso i problemi del mondo reale non sono esattamente mappati sui problemi per i quali abbiamo algoritmi — e anche per le cose per cui abbiamo algoritmi, dobbiamo astrarre i problemi. Un’altra sfida è come trovare nuovi algoritmi che superino in modo significativo gli algoritmi esistenti che hanno lo stesso tipo di garanzie.
Perché l’apprendimento profondo? Rappresentazione dei dati
Quando gli umani si siedono per scrivere un programma, è molto facile ottenere qualcosa che sia veramente lento, ad esempio con un tempo di esecuzione esponenziale, ha osservato Blundell. Le reti neurali sono l’opposto. Come ha detto, sono estremamente pigri, il che è una proprietà molto desiderabile per inventare nuovi algoritmi.
“Ci sono persone che hanno esaminato le reti in grado di adattare le loro richieste e i tempi di calcolo. Nel deep learning, il modo in cui si progetta l’architettura di rete ha un enorme impatto sul suo funzionamento. C’è una forte connessione tra la quantità di elaborazione che fai e quanto tempo di calcolo viene speso e che tipo di architettura ti viene in mente: sono intimamente collegati”, ha detto Blundell.
Veličković ha notato che una cosa che le persone a volte fanno quando risolvono problemi naturali con gli algoritmi è cercare di spingerli in una struttura che hanno creato che sia carina e astratta. Di conseguenza, possono rendere il problema più complesso di quanto dovrebbe essere.
“Il [venditore] itinerante , ad esempio, è un problema completo NP e non conosciamo alcun algoritmo di tempo polinomiale per esso. Tuttavia, esiste una previsione corretta al 100% per il [venditore] che viaggia, per tutte le città della Svezia, tutte le città della Germania, tutte le città degli Stati Uniti. E questo perché i dati che si trovano geograficamente in realtà hanno proprietà più belle di qualsiasi possibile grafico che potresti inserire in viaggio [venditore]”, ha detto Veličković.
Prima di approfondire le specifiche NAR, sentivamo che una domanda ingenua era d’obbligo: perché il deep learning? Perché scegliere un framework di generalizzazione specificamente applicato agli algoritmi di deep learning e non solo a qualsiasi algoritmo di machine learning?
Il duo DeepMind vuole progettare soluzioni che operino sulla vera complessità grezza del mondo reale. Finora, la migliore soluzione per elaborare grandi quantità di dati naturali su larga scala sono le reti neurali profonde, ha sottolineato Veličković.
Blundell ha notato che le reti neurali hanno rappresentazioni dei dati molto più ricche rispetto agli algoritmi classici. “Anche all’interno di una classe di modelli di grandi dimensioni, molto ricca e complicata, troviamo che dobbiamo spingerci oltre i limiti per essere in grado di eseguire algoritmi in modo affidabile. È una sorta di scienza empirica quella che stiamo guardando. E non penso che man mano che diventi sempre più ricco di alberi decisionali, possano iniziare a fare parte di questo processo “, ha detto.
Blundell ha poi elaborato i limiti degli alberi decisionali.
“Sappiamo che gli alberi decisionali sono fondamentalmente un trucco: se questo, allora quello. Ciò che manca è la ricorsione, o iterazione, la capacità di ripetere le cose più volte. Nelle reti neurali, da molto tempo le persone hanno capito che esiste una relazione tra l’iterazione, la ricorsione e le attuali reti neurali. Nelle reti neurali a grafo si ripresenta lo stesso tipo di elaborazione; il messaggio che passa è di nuovo qualcosa di molto naturale”, ha detto.
In definitiva, Blundell è entusiasta del potenziale per andare oltre.
“Se pensi alla programmazione orientata agli oggetti, in cui invii messaggi tra classi di oggetti, puoi vedere che è esattamente analogo e puoi costruire diagrammi di interazione molto complicati e questi possono quindi essere mappati in reti neurali di grafi. Quindi è dalla struttura interna che ottieni una ricchezza che sembra essere abbastanza potente da apprendere algoritmi che non otterresti necessariamente con i metodi di apprendimento automatico più tradizionali”, ha spiegato Blundell.