L’era delle macchine che apprendono. L’età dell’intelligenza artificiale è già qui. L’apprendimento automatico è il motore di tale tecnologia, che interroga i limiti dell’umano. Ma va demistificata: non è magia e non intende sostituirsi a noi. L’importanza strategica dei dati. Ecco la prima parte del saggio di Francesco Maria De Collibus su Limesonline del 28 dicembre 2022. Questa prima parte è dedicata ad una spiegazione su cos’è e come funziona l’intelligenza artificiale.
We don’t have better algorithms than anyone else, we just have more data.
Peter Norvig, Google
1. L’espressione «intelligenza artificiale», contenendo la parola «intelligenza», è di scivolosa definizione. Quella proposta dal dizionario Oxford, comunemente accettata anche da colossi come Google, la descrive come «la teoria e lo sviluppo di sistemi informatici capaci di svolgere compiti che normalmente richiedono l’intelligenza umana, come la percezione visiva, il riconoscimento vocale, i processi decisionali e la traduzione da e verso lingue differenti». Nel loro manuale, Peter Russell e Stuart Norvig la definiscono in maniera più generica come «la progettazione e realizzazione di agenti intelligenti che ricevono informazioni dall’ambiente e svolgono azioni in grado di influenzare l’ambiente stesso» 1.
Uno dei pilastri dell’intelligenza artificiale è l’apprendimento automatico (machine learning), metodo di approccio generalmente statistico con cui si insegna alle macchine a comportarsi da esseri intelligenti 2 (macchine che apprendono). La cadenza quasi quotidiana con cui la ricerca pubblica nuovi algoritmi, la gigantesca capacità computazionale a nostra disposizione e il diluvio 3 di dati prodotti ogni secondo nel mondo hanno portato a parlare di «statistica sotto steroidi». Un algoritmo di apprendimento automatico è in grado di imparare dai dati e di costruire un modello per ogni specifico problema che gli si presenta. In altre parole, i vari algoritmi «addestrano» un modello che rappresenta l’essenza della capacità di risolvere quel problema. D’ora in poi chiameremo «programma» l’insieme composto da algoritmo di apprendimento, modello e capacità di elaborare nuovi input.
Per capire di quali fasi si componga il processo di apprendimento automatico (macchine che apprendono), consideriamo la definizione di Tom M. Mitchell: «Si può dire che un programma impari dall’esperienza (E) riguardo alcune classi di compiti (T) e misure di prestazione (P), se la sua prestazione nel compito (T), come misurata da (P), migliora con l’esperienza (E)» 4.
Per prima cosa bisogna quindi definire il nostro compito (T), ovvero quello che vogliamo far fare al nostro programma. La varietà dei compiti possibili è pressoché infinita, ma può essere organizzata in alcune macrocategorie. Possono darsi ad esempio problemi di classificazione: il programma riceve un input come l’immagine intera di un animale (o solo un particolare, come una zampa) e deve classificarne la specie. Oppure problemi di regressione, dove si stima una variabile a partire da un’altra, come il reddito a partire dal titolo di studio. Potrebbe trattarsi ancora di problemi di trascrizione, in cui il programma trasforma un input non strutturato in output strutturato, ad esempio riconoscendo caratteri tramite immagini o producendo automaticamente didascalie e sottotitoli per un video. Si danno poi problemi di traduzione, in cui il programma riceve un testo in un linguaggio naturale e deve tradurlo in un nuovo testo strutturato e corretto di un altro linguaggio naturale. O ancora compiti di rilevamento delle anomalie, quali eventi sospetti (come transazioni finanziarie anomale), potenziali difetti nei prodotti in catena di produzione o persino i segnali dei primissimi stadi di un terremoto 5. Possiamo generare nuovi campioni simili a quelli su cui il programma è stato addestrato oppure operare direttamente una sintesi vocale: in questi casi abbiamo a che fare con funzioni di sintesi e campionamento. Tramite un problema di riconoscimento dei valori mancanti, il programma può inoltre completare una sequenza con delle lacune. Questo tipo di compito è fondamentale, poiché combinato a quello di sintesi permette di generare nuovo contenuto sulla falsariga di un altro verosimile 6.
Tornando alla definizione di Mitchell, la misura della nostra prestazione (P) è data dall’accuratezza del nostro modello, cioè quanto spesso il nostro programma riesce a restituire il valore corretto o atteso 7. Da un insieme di dati di partenza noti (il dataset), il nostro obiettivo è trovare un modello che sia in grado di elaborarne correttamente di nuovi, non ancora conosciuti o persino non ancora avvenuti. Ciò che ci interessa è il potere predittivo di un tale modello e la sua capacità di interagire con situazioni nuove.
Tipicamente dividiamo i nostri dati di partenza in un sottoinsieme con cui «addestrare» il modello e un altro con cui verificare le sue prestazioni. Separare il dataset in due sottoinsiemi (addestramento e validazione) spinge l’algoritmo a creare modelli in grado di generalizzare meglio, ovvero di comportarsi correttamente in casi non affrontati nella fase di apprendimento. Nella pratica, più un modello generalizza bene un problema più abbiamo la percezione che l’algoritmo si comporti in maniera intelligente.
Per farlo il programma ha bisogno del terzo componente citato da Mitchell, l’esperienza (E), cioè i già citati dati, ciò che il modello può conoscere nel dominio del problema su cui intendiamo testarlo. I dati possono essere forniti in vari formati: database, file di testo, cartelle di immagini, serie temporali. L’apprendimento può essere supervisionato – modalità in cui indichiamo i dati di partenza e quelli che ci interessa predire – oppure non supervisionato: in questo caso il programma cerca di definire autonomamente la distribuzione statistica e la relazione tra diversi attributi senza che questi campi gli siano forniti in anticipo 8. È poi fondamentale anche la capacità del programma di continuare ad apprendere quando nuovi dati vengono resi disponibili.
Facciamo un esempio: immaginiamo di avere un file Excel con altezze, età, sesso e peso di un campione di persone. Tipicamente l’altezza e il peso aumentano moltissimo nei primi anni di vita. Se fornissimo alla macchina solo campioni di bambini da uno a 14 anni e poi chiedessimo di predire l’altezza e il peso di una persona di 30 anni, probabilmente il pronostico sarebbe un’altezza di 3 metri e un peso di 300 chilogrammi, perché prima della pubertà altezza e peso aumentano quasi linearmente con l’età. Se invece avesse a disposizione un campione statisticamente meglio distribuito, il modello apprenderebbe che una relazione così lineare fra peso, altezza ed età sussiste solo nei primi anni di vita e poi troverebbe una certa relazione tra altezza e peso. Noterebbe inoltre che le persone di sesso maschile pesano mediamente di più di quelle di sesso femminile. Un campione con abbastanza potenza statistica proporrebbe poi anche persone sovrappeso, sottopeso e così via, in modo da addestrare il modello anche sulle eccezioni (macchine che apprendono).
L’obiettivo di queste tecniche è avvicinarsi, tramite un campione, alla conoscenza di una realtà troppo multiforme, complessa e cangiante per essere integralmente conosciuta o definita. Se specifichiamo le caratteristiche a cui siamo interessati (dette labels, in questo caso peso, altezza eccetera), tutte le altre variabili note dei dati (features) attribuiranno pesi nella predizione in funzione del valore da trovare. Nella modalità non supervisionata sarà il programma stesso a rinvenire delle regolarità nei dati. È probabile che individui tre categorie corrispondenti a donne, uomini e bambini, pur senza conoscere direttamente questi concetti. La qualità, più che la quantità dei dati ricevuti si rivela di fondamentale importanza.
Ci sono altre situazioni in cui l’algoritmo deve gestire non dati di input ma l’interazione con un ambiente complesso: non si tratta più di determinare un valore, ma di svolgere un’azione al momento giusto. In queste occasioni si predilige un approccio di apprendimento per rinforzo (reinforcement learning). Immaginate un programma per giocare a un videogioco molto semplice come Pac-Man. Il programma all’inizio non muoverà affatto Pac-Man e avrà punteggio zero. Poi muoverà Pac-Man a caso, continuando a punteggio zero, finché – ancora per caso – raggiungerà i puntini da raccogliere e il suo punteggio migliorerà. Imparerà quindi che muoversi verso i puntini è cosa buona e giusta. Poi noterà che essere toccato dai fantasmini fa terminare il gioco, interrompendo il prezioso aumento dei punti. E così via. Con un semplice meccanismo di ricompensa come il punteggio, il programma cercherà di apprendere quali sono le strategie che lo massimizzano. Massimizzare il proprio punteggio non è un problema banale. Implica il famoso dilemma «esplorazione contro sfruttamento», dunque il rischio che il modello si blocchi su quello che è un ottimo locale e non globale. Per questo è fondamentale prevedere sempre una fase di esplorazione e verifica delle strategie 9.
Provate a sostituire Pac-Man con qualcosa di meno innocente come un missile anticarro, il punteggio da massimizzare con dei blindati nemici da colpire e il fantasmino con le contromisure dei blindati. Gli stessi meccanismi di base possono dar luogo a risvolti politici, strategici e militari del massimo rilievo. Nelle applicazioni dell’intelligenza artificiale al settore della difesa troviamo in prima linea aziende come Anduril, che per ora sembrano prediligere attività come la ricognizione del campo di battaglia. Facciamo un altro esempio: ritornando al file Excel di prima, immaginate di voler determinare anziché il peso a partire dall’altezza il rischio che, date alcune variabili, una persona X faccia parte di un movimento terroristico. È esattamente ciò che fa un’azienda molto discussa come Palantir, i cui ex sviluppatori – fedeli al lessico tolkieniano – hanno poi fondato Anduril. Non è un caso che un personaggio ben presente ai lettori di questa rivista come Henry Kissinger da quattro anni si stia occupando intensamente di intelligenza artificiale 10.
Tornando ai meccanismi di base, tali modalità di apprendimento hanno in genere l’obiettivo di minimizzare la funzione di perdita (loss function), vale a dire la differenza tra quello che predicono o fanno e il risultato ottimale. Quest’ultimo consisterebbe in una perdita zero, cioè interpretare sempre correttamente la realtà o svolgere l’azione perfetta.
Lo scopo è in altre parole inseguire il gradiente di questa funzione di perdita. Per risolvere un problema così complesso sono state sviluppate una miriade di tecniche, ciò che spiega perché «addestrare» un modello sia computazionalmente molto oneroso e richieda a volte un tempo macchina lunghissimo (anche settimane o mesi a seconda dei parametri da ottimizzare) nonché risorse energetiche ingenti. DeepMind, la divisione di Google specializzata nell’intelligenza artificiale e famosa per progetti come AlphaGo e AlphaFold (per il ripiegamento – folding – delle proteine), investe centinaia di milioni di dollari all’anno in hardware e tempo macchina per addestrare i suoi complessi modelli.
Note al testo
1. S. Russell, P. Norvig, Artificial Intelligence, a Modern Approach, 4a ed., London 2021, Pearson.
2. Sul tema dell’apprendimento delle macchine uno dei migliori testi a disposizione è I. Goodfellow, Y. Bengio, A. Courville, Deep Learning, Cambridge 2016, Mit Press.
3. J. Gleick, L’informazione: Una storia. Una teoria. Un diluvio, Milano 2015, Feltrinelli.
4. T.M. Mitchell, Machine Learning, New York 1997, McGraw-Hill.
5. Purtroppo non si possono ancora prevedere i terremoti. Gli scienziati dubitano che sarà mai possibile, però Google ha messo a punto un sistema che rilevando eventi anomali su una scala finissima può accelerare l’allerta in caso di sisma, facendo guadagnare tempo prezioso per mettersi in salvo.
6. Questo è l’approccio Generative Pre-trained Transformer (Gpt), capace ad esempio di generare interi saggi o articoli da pochi punti chiave.
7. Ci sono diverse misure che possono essere utilizzate per misurare quanto bene il nostro modello si stia comportando rispetto ai dati, come ad esempio il coefficiente di determinazione o la matrice di confusione (confusion matrix).
8. L’esempio tipico di apprendimento non supervisionato è il clustering, che si ha quando si raggruppano in tipologie individuate automaticamente campioni con caratteristiche simili senza che l’essere umano identifichi in maniera esplicita tali caratteristiche. La scelta delle caratteristiche che definiscono i clusters è quindi lasciata all’intelligenza artificiale.
9. Questa tipologia di apprendimento si basa su processi decisionali markoviani e fa un utilizzo intenso dell’equazione di Bellman, della programmazione dinamica e di tutta la teoria dell’ottimizzazione.
10. H. Kissinger, E. Schmidt, D. Huttenlocher, The Age of AI and our human future, Boston 2021, Little Brown & Co.
Guida alla lettura
Come è consuetudine in Limesonline, ogni paragrafo è segnalato dall’a capo aperto e da una frase in grassetto: non proprio un sottotitolo, ma efficace nell’evidenziare al lettore il contenuto.
Notate poi la presenza di note al testo che hanno la funzione di indicare delle fonti o di dare migliore spiegazione. Infine i link presenti nel testo rinviano ad ulteriori approfondimenti.
- Il saggio di Francesco Maria De Collibus in questa prima parte è ricco di definizioni (a partire dall’epigrafe). Elencatele.
- Ricco anche l’apparato degli esempi: fatene un elenco e riassumete.
- Il punteggio di leggibilità di questo testo (note incluse) attualmente è 47/100. Si può migliorare intervenendo sulla sintassi (il paragrafo 4 contiene più delle 150 parole ammesse, e parecchie frasi contengono più di 25 parole). Ma se voleste ottenere un punteggio più alto (almeno 60/100) un testo cioè controllato e comprensibile a tutti, dovete riscrivere completamente il testo. Tutte frasi molto brevi, riorganizzate in paragrafi con titolo che delineano già una scaletta. Ad esempio. Primo paragrafo. Noterete che la definizione Oxford è rimasta intatta (è una citazione!) ma alleggerita.
Definizione di intelligenza artificiale L’espressione «intelligenza artificiale», contenendo la parola «intelligenza», è di scivolosa definizione. Quella proposta dal dizionario Oxford è comunemente accettata anche da colossi come Google. Intelligenza artificiale è «la teoria e lo sviluppo di sistemi informatici capaci di svolgere compiti che normalmente richiedono l’intelligenza umana, come la percezione visiva, il riconoscimento vocale, i processi decisionali e la traduzione da e verso lingue differenti». Nel loro manuale, Peter Russell e Stuart Norvig la definiscono in maniera più generica. E cioè «la progettazione e realizzazione di agenti intelligenti che ricevono informazioni dall’ambiente e svolgono azioni in grado di influenzare l’ambiente stesso». (1)
Un altro esempio vi chiarirà come operare. Ecco la riscrittura del secondo paragrafo.
Intelligenza artificiale e apprendimento automatico Uno dei pilastri dell’intelligenza artificiale è l’apprendimento automatico. Ma come insegnare alle macchine a comportarsi da esseri intelligenti? (2). Il metodo di approccio è generalmente statistico. Questo richiede di possedere un’enorme quantità di dati. Quasi ogni giorno la ricerca pubblica nuovi algoritmi. Ogni secondo nel mondo la rete produce un diluvio di dati (3). Infine la capacità computazionale a nostra disposizione è gigantesca. Insomma, i dati statistici non sono un problema, tanto che si parla di «statistica sotto steroidi», cioè statistica drogata.