Differentiable Neural Computer: DeepMind reinventa l’architettura del calcolatore
Differentiable Neural Computer (DNC) – Platone paragonò la nostra memoria ad una tavoletta di cera, nel quale si imprime il ricordo, e lo si può anche, con il tempo, cambiare. In filosofia, tempo dopo, si capì che questa definizione non bastava: i ricordi sono connessi, non solo impressi. Filosofi come John Locke credevano che le connessioni si creassero in base alla formazione nello spazio e nel tempo dei ricordi stessi. Proust la pensava diversamente: un assaggio di torta Madeleine gli bastava per far riaffiorare moltissimi ricordi di infanzia, in luoghi lontani. Ad oggi sappiamo che la memoria è episodica, legata quindi a sensazioni, emozioni e al nostro “nominare” i momenti, non solo alla consequenzialità temporale.
Allo stesso modo, DeepMind ha voluto creare una nuova architettura dei calcolatori (Differentiable Neural Computer) dotata di intelligenza artificiale che possa accedere alla propria memoria, e che possa elaborarla per rispondere a nuove domande, che possa quindi imparare dalla propria memoria.
Il ricordare
Secondo gli esperti di DeepMind, molto elegantemente e semplicemente (forse anche ingenuamente), la nostra memoria non fa parte della nostra intelligenza e del nostro essere, non è che un supporto, che la nostra intelligenza ha imparato in qualche modo a leggere.
Il nostro essere, quindi, ogni volta che deve ricordare, prende “in input” tutta la nostra memoria e il contesto in cui siamo, il nostro bisogno, le nostre sensazioni, e restituisce “in output” una nuova interpretazione del ricordo. Il nostro processo di ricordo è quindi paragonabile ad un processo di intelligenza artificiale, che impara a leggere la propria memoria come se fosse un input, un segnale (senza significato), e a produrre una nuova informazione in output (finalmente con significato), che verrà ancora memorizzato senza significato per un uso successivo.
Senza entrare troppo nel merito delle conseguenze filosofiche (e psicologiche) che questa visione comporta, possiamo dire che è uno dei migliori risvolti ingegneristici che potevano prendere le Intelligenze Artificiali: il processo del ricordo, inteso in questo modo, non è che una nuova intelligenza artificiale da allenare, un’intelligenza dentro all’intelligenza, se vogliamo, che può portare a organizzare e gestire i dati in maniera impressionante, dandogli un nuovo significato ogni volta.
Potenzialmente, un segnale insignificante, se messo insieme ad altri moltissimi segnali insignificanti, può produrre risultati migliori di dati e informazioni significanti, in quanto il segnale può essere interpretato in tantissimi nuovi modi diversi, producendo quindi nuove informazioni reinterpretabili a loro volta.
La struttura del Differentiable Neural Computer
Alla base del DNC vi è quindi l’Intelligenza Artificiale (controller) addestrata ad interpretare la memoria, e responsabile quindi della lettura della memoria, della produzione dell’interpretazione, ma anche della scrittura in memoria, in quanto la nuova interpretazione dei dati deve venir memorizzata.
La memoria è una serie di locazioni, ognuna che può memorizzare un vettore di informazioni.
Il controller decide quando scrivere e dove scrivere nella memoria, può scegliere di scrivere in un nuovo spazio di memoria o sopra ad uno già utilizzato, aggiornando quindi le informazioni. Se la memoria è piena, il controller può decidere quali informazioni eliminare e quindi quali locazioni liberare. Ogni locazione di memoria rappresenta quindi un “ricordo” e come tale è connessa ad altre locazioni, come i ricordi sono connessi l’uno all’altro.
Il controller si occupa poi di leggere i dati che memorizza, può scorrerli seguendo le connessioni, seguendo l’ordine temporale con cui sono state memorizzate (sia in avanti che indietro). La struttura stessa delle informazioni memorizzate finora, può suggerire al controller come memorizzare nuove informazioni, in modo che vengano inserite con una logica (come l’uomo, il Differentiable Neural Computer impara a memorizzare, riconoscendo quando ha sbagliato a memorizzare e quando ha memorizzato bene).
Il training dell’Intelligenza Artificiale alla base del Differentiable Neural Computer
Il tassello che rimane aperto è: come si prepara un’intelligenza artificiale a reinterpretare la propria conoscenza? Se ho un segnale che in origine significava una connessione di parentela tra due persone, come si fa a reinterpretarlo per produrre un nuovo significato che sia però semanticamente corretto?
L’uomo interpreta i segnali da quando dispone del linguaggio, secondo un processo ancora difficile da identificare e analizzare.
Gli esperti di DeepMind hanno ancora una volta dato una risposta semplice e forse ingenua, ma sicuramente funzionale: si addestra l’intelligenza artificiale a dare il giusto peso ai collegamenti tra i ricordi.
Piccolissima parentesi per i neofiti: un’intelligenza artificiale viene addestrata senza programmarla. Viene creato un modello analitico con alcune funzioni ad una o più variabili, e vengono quindi estratti i vari pesi (coefficienti delle variabili) e bias (costanti) , allineati e privati del loro significato, come a creare un “genoma” dell’intelligenza, che in base ai diversi valori di pesi e bias, dato un input produrrà direttamente un output.
Questo genoma viene poi randomizzato, creandone tantissimi diversi (insomma, tantissime intelligenze artificiali che agiranno “stupidamente” in modo diverso allo stesso input, avendo bias e pesi diversi).
Questi genomi vengono poi testati svariate volte, e infine vengono scelti quelli che hanno prodotto un risultato migliore. Da questi, viene creata una nuova generazione ricombinando i pezzi dei genomi migliori, e anche modificandone alcuni casualmente (come delle mutazioni genetiche). Questo processo casuale (che porta però ad un costante miglioramento) viene ripetuto migliaia di volte finchè non si giunge ad un genoma quasi perfetto.
In questo modo, è possibile creare un’intelligenza artificiale che dato qualsiasi tipo di struttura dati, imparerà a dare un significato a quei dati nel modo migliore, insomma ad interpretarli correttamente (ma in tanti modi diversi in base alla domanda a cui si vuole rispondere).
Semplicemente, se abbiamo un database con tantissime persone e le relazioni parentali tra di esse, l’intelligenza artificiale, senza conoscere il significato di quelle relazioni, potrà imparare ad interpretare i dati e rispondere a domande come “Chi è il prozio più anziano della cugina di Proust?”.
Il DNC è stato addestrato anche tramite il Reinforcement Learning, l’addestramento nel quale ad ogni tentativo sbagliato, non viene fornita al DNC la risposta corretta, ma solo un punteggio. In questo modo, il processo di apprendimento è molto diverso.
I risultati
Molto semplicemente, si è giunti a risultati davvero sorprendenti. I ricercatori di DeepMind hanno addestrato l’Intelligenza Artificiale che può memorizzare facilmente informazioni e poi reinterpretarle per estrarre nuovi significati complessi.
In poco tempo, creando dei grafi casuali si è addestrato il DNC a interpretarli come se fosse una rete metropolitana. Eseguendo poi un test sulla rete metropolitana di Londra, il DNC ha dato risposte perfette anche alle domande più complesse.
Un altro esempio è proprio quello delle parentele: memorizzate le informazioni su moltissime persone, e la relazione tra genitori e figli, si è insegnato a ricavare informazioni complesse che dipendono da diversi gradi di parentela e ad informazioni dirette sulle singole persone, riproponendo l’esempio di prima:
“Chi è il prozio più anziano della cugina di Proust?”.
Conoscendo solo le relazioni tra genitori e figli, rispondere ad una domanda così, fino ad ora era impossibile per un’IA, in quanto questo processo richiede la reinterpretazione dei dati disponibili.