Intelligenza artificiale: dai giochi di imitazione di Turing a Facebook

di Elisa Camozzi
Editor: Enrico Bocciolesi
Revisori Esperti: Giuseppe Brandi, Anonimo
Revisori Naive: Patrizia Piotti, Andrea De Giorgio
Scarica questo Articolo in PDF

Nell’agosto 2017 su giornali e telegiornali è apparsa una notizia riguardante due bot, Alice e Bob, che avrebbero iniziato a parlare tra di loro in una lingua di loro “invenzione” durante un esperimento condotto al laboratorio di ricerca sull’intelligenza artificiale di Facebook (FAIR). Il tempo ristretto di un servizio del telegiornale non è sicuramente sufficiente a definire il contesto nel quale leggere questa notizia. E quando si parla della possibilità di costruire macchine in grado di simulare l’intelligenza umana, il contesto è utile per evitare entusiasmo eccessivo o paure indotte. L’articolo vuole essere un tentativo di definire tale contesto mediante un percorso, più storico che tecnico, attraverso le tappe principali che hanno portato dai primi calcolatori alle macchine odierne in grado di apprendere.

L’Intelligenza artificiale nella vita di tutti i giorni

Che cosa sono i BOT

Un bot è un programma progettato per svolgere un certo compito. In particolare Bob e Alice sono dei “chatbot”: dei bot progettati per conversare. Il primo chatbot (ELIZA) fu creato nel 1966 da Joseph Weizenbaum ed era una “parodia” di uno psicoterapeuta: rispondeva al paziente con la riformulazione delle affermazioni del paziente stesso.

 

Il fatto interessante è che possiamo stupirci, in positivo o negativo, della notizia su Alice e Bob mentre consideriamo ormai quasi normali e scontate moltissime interazioni quotidiane con parenti prossimi dei due bot: siamo infatti abituati a utilizzare il riconoscimento vocale del nostro smartphone e a seguire i suggerimenti che Google ci dà quando iniziamo a digitare una parola. Non ci stupiamo neanche del fatto che Facebook o Google riescano a riconoscere dei volti all’interno di una foto. Tutti questi esempi ricadono nel campo dell’intelligenza artificiale, termine generale con il quale ci riferiamo alla capacità da parte delle macchine di dimostrare un’intelligenza simile a quella umana. In particolare, gli esempi sopra riportati rientrano nel campo specifico del machine learning, settore dell’intelligenza artificiale che studia la capacità che una macchina ha di apprendere. Lo sviluppo del machine learning è ciò che sta rendendo possibile il riconoscimento di volti, voci, ecc…

La notizia su Bob e Alice [1] ci fa venire più facilmente in mente i robot che siamo abituati a vedere nei film di fantascienza, come il sequel di Blade Runner uscito qualche mese fa al cinema. In questi film sono rappresentate macchine dalle sembianze umane e in grado di pensare come un uomo. Bob e Alice, però, non hanno sembianze umane: sono solo dei bot ovvero dei programmi in grado di svolgere un certo tipo di compito (nel loro caso conversare). L’aspetto interessante nella notizia riguarda una domanda in particolare: hanno davvero scelto di parlare in modo da non farsi capire, sono davvero in grado di pensare? Nell’articolo cercheremo di indagare le risposte date nel tempo a questa domanda.

 

Le macchine sono in grado di pensare?

Questa domanda ricorre da sempre nella storia dello sviluppo delle macchine e il tentativo di risposta più famoso è quello dato da Turing verso il 1950. Turing in realtà, più che tentare di rispondere alla domanda, riformula il problema attraverso la descrizione dei giochi di imitazione e l’idea di macchine in grado di imparare. Sposta quindi il problema su un livello diverso. Prima di arrivare a Turing è necessario dare qualche definizione che ci aiuterà nel ripercorrere i momenti chiave nello sviluppo delle macchine.

Alan Turing

Matematico, logico e crittografo britannico, Turing è considerato uno dei padri dell’intelligenza artificiale. Turing è famoso anche per il fondamentale contributo dato durante la Seconda Guerra Mondiale nella decifrazione dei codici usati dalle potenze dell’Asse, che venivano creati attraverso la macchina Enigma.

 

Cosa intendiamo con il termine macchina

Una macchina è composta da una parte materiale (hardware), che gestisce i segnali elettrici e funziona da magazzino di informazioni e da un programma (software), che si occupa del suo funzionamento. Lo stesso software può essere eseguito su macchine diverse e, viceversa, software diversi possono essere eseguiti sulla stessa macchina. Ad esempio, sul medesimo computer (stesso hardware) possiamo utilizzare programmi diversi: per scrivere, giocare, andare su internet.

Lo stesso Turing, nel suo scritto ‘Macchine calcolatrici e intelligenza’ [3], propone una comparazione efficace: si può paragonare una macchina ad un computer umano, cioè un uomo dotato di carta, penna per eseguire i calcoli e un libro di istruzioni di volta in volta specifico per il singolo compito da portare a termine. Il libro di istruzioni corrisponde al software (figura 1). Questo paragone può far sorridere ai nostri giorni, ma non era molto lontano dalla realtà per l’epoca di Turing. Ancora ai tempi delle prime missioni di esplorazione dello spazio non esistevano le calcolatrici tascabili: gli astronauti e gli addetti del centro controllo missione avevano a disposizione dei manuali di istruzioni ed eseguivano i calcoli utilizzando il regolo. Erano dei computer umani che eseguivano un software.

Figura 1 – Calcolatore umano e computer a confronto

Figura 1 – Calcolatore umano e computer a confronto

 

Come si sono sviluppati hardware e software

L’hardware e il software hanno avuto uno sviluppo parallelo nel corso del quale i successi ottenuti in un campo hanno spesso avuto ripercussioni anche sull’altro. È impossibile condensare in poche pagine questa storia, per questo proponiamo solo i contributi più significativi ad opera di coloro che hanno saputo prevedere e indicare la strada che stiamo ora percorrendo.

Un contributo sicuramente impossibile da trascurare è stato quello di Charles Babbage e Ada Lovelace, matematica inglese e figlia di Lord Byron. Babbage, matematico e filosofo britannico vissuto nel 1800, non costruì mai una macchina realmente funzionante ma immaginò una macchina in grado di svolgere qualsiasi compito le venisse dato. Questa intuizione è alla base di tutti i computer che usiamo quotidianamente. Fino a quel momento, infatti, esistevano macchine in grado di compiere un solo e specifico compito. Erano già in uso, ad esempio, calcolatrici meccaniche in grado di eseguire operazioni ripetitive al posto dell’uomo. Tra queste una delle più note è la Pascalina, costruita da Pascal già nel 1642 per semplificare i calcoli del padre intendente di finanza. La Pascalina, tuttavia, era in grado di eseguire solo un tipo di operazioni: addizioni e sottrazioni. La macchina immaginata da Babbage, invece, poteva eseguire operazioni di volta in volta differenti in base alle istruzioni che le venivano date. Per fornire alla macchina le operazioni da compiere, lo scienziato inglese trasse ispirazione dalle schede perforate di Jacquard, introdotte non molti anni prima nel campo della tessitura. La scheda, tramite la posizione dei fori, poteva “dare indicazioni” ai meccanismi del telaio in modo da riprodurre un determinato disegno. Il telaio era sempre lo stesso ma diverse schede producevano diverse trame. Allo stesso modo Babbage immaginò di poter costruire una macchina, che battezzò “macchina analitica”, in grado di poter eseguire qualsiasi operazione indicata da opportune schede perforate, che fornivano le istruzioni, ossia il programma da eseguire (quello che oggi definiremmo il software). Le schede fungevano anche da magazzino per conservare/introdurre i dati sui quali lavorare (come la memoria dei nostri computer). La posizione dei fori sulla scheda permetteva infatti di codificare un determinato dato in modo tale che la macchina analitica fosse in grado di “leggerlo”. La visione di Babbage fu completata da Lovelace, appassionata di matematica ma con uno spirito visionario degno del padre poeta. Lovelace si appassionò al lavoro di Babbage, curò la traduzione di uno scritto [4] che descriveva la macchina analitica e nelle note a tale traduzione si trova forse il primo programma software mai scritto nella storia. Ada Lovelace fornì infatti un esempio pratico delle potenzialità della macchina di Babbage: scrisse una serie di istruzioni che potevano essere fornite alla macchina per arrivare a calcolare i numeri di Bernoulli (successione di numeri nota in matematica). Nel definire la sequenza di istruzioni da far eseguire alla macchina, Lovelace ideò alcuni dei concetti alla base di qualsiasi odierno linguaggio di programmazione: l’istruzione condizionale e l’iterazione. L’istruzione condizionale indica alla macchina di eseguire una certa operazione solo se prima si verifica una certa condizione. L’iterazione dice alla macchina di procedere con una certa operazione un determinato numero di volte. Entrambe queste due istruzioni permettono alla macchina, in un certo senso, di “decidere” come comportarsi di fronte ad un bivio, possibilità impensabile fino a quel momento. Per questo Ada Lovelace può essere considerata la prima programmatrice di computer della storia. Ada ebbe anche un’altra importante intuizione: la macchina non era limitata all’esecuzione di operazioni matematiche. Con il termine ‘operazione’ Lovelace intendeva qualsiasi processo che modifichi la relazione reciproca fra due o più cose, quindi non solo la relazione tra due numeri, ma anche tra due simboli qualsiasi in rapporto logico tra loro. Questa intuizione implica la possibilità di manipolare, mediante macchine, qualsiasi contenuto purché opportunamente tradotto in un linguaggio congeniale alle macchine stesse. Tale linguaggio (il codice binario), intuito da Leibniz ancora nel 1600 e sviluppato da Boole nel 1800, diventò la lingua ufficiale dei PC solo nella seconda metà del XX secolo.

Secondo Ada L. tuttavia la macchina, pur con tutte le sue potenzialità, non poteva creare nulla di nuovo ma solo eseguire le istruzioni impartite, quindi in questo senso verrebbe da dire che la macchina non era in grado di pensare. La risposta di Lovelace alla domanda sulla capacità di pensiero di una macchina sarebbe stata negativa.

 

Turing: giochi di imitazione e machine learning

Nello scritto ‘Macchine calcolatrici e intelligenza’ Turing prende in esame, tra le varie, anche le argomentazioni di Ada Lovelace mostrando che si può arrivare a conclusioni diverse.

Turing non tenta di rispondere direttamente alla domanda riguardo alla capacità di pensare di una macchina. Sposta l’attenzione sulla possibilità di costruire una macchina che sembri pensare al pari di un uomo. Per fare questo si focalizza sull’aspetto della programmazione (il software) e utilizza i giochi di imitazione. Turing immagina una macchina universale ossia una macchina capace di eseguire qualsiasi compito possa essere descritto tramite un numero finito di istruzioni in un numero finito di passi. La macchina ottiene il risultato come farebbe un umano se eseguisse le stesse istruzioni utilizzando solo carta e penna e senza ricorrere a nessuna intuizione o nessun ragionamento complesso. Non importa come è costruita la macchina, ma solo il suo programma.

L’universalità della macchina consiste nel fatto che essa può ricevere istruzioni di volta in volta diverse e fare di conseguenza cose diverse. Oggi sembra un dato di fatto scontato, ma fino alla fine degli anni 40 cambiare le istruzioni di un calcolatore (grande come una stanza o più) implicava lo spostamento manuale di decine o centinaia di cavi e richiedeva giorni.

Tornando alla macchina di Turing: è in grado di pensare? Turing considera ambigua questa domanda perché presuppone una definizione di cosa intendiamo con macchina e con il verbo “pensare”. Tenta quindi di definire la questione in modo meno ambiguo utilizzando un gioco di imitazione [5]: immagina di far interagire la sua macchina universale con un uomo. L’interazione avviene solo tramite testo scritto (un po’ come i messaggi o le chat di oggi). Se la persona che sta interagendo con la macchina è portata a credere di avere a che fare con un’altra persona reale il test di Turing è passato (figura 2). La macchina si comporta come un umano, appare pensare tanto quanto un uomo.

Figura 2 – Test di Turing: colui che esegue il test (figura nel mezzo) pone delle domande a due soggetti (un uomo reale, destra e una macchina, sinistra) che non vede e con i quali può comunicare solo attraverso testo scritto (Turing aveva immaginato una telescrivente). Se chi pone le domande non è in grado di distinguere l’uomo dalla macchina allora quest’ultima ha passato il test.

Figura 2 – Test di Turing: colui che esegue il test (figura nel mezzo) pone delle domande a due soggetti (un uomo reale, destra e una macchina, sinistra) che non vede e con i quali può comunicare solo attraverso testo scritto (Turing aveva immaginato una telescrivente). Se chi pone le domande non è in grado di distinguere l’uomo dalla macchina allora quest’ultima ha passato il test.

 

Turing introduce anche un elemento in più, l’apprendimento, prendendo come spunto l’idea di un computer in grado di giocare a scacchi [6]. “Turing affrontò il problema pensando non ai modi per sfruttare la grezza capacità di elaborazione del calcolatore per calcolare ogni possibile mossa, ma alla possibilità che una macchina potesse imparare con la pratica a giocare a scacchi” [7]. Stava in pratica pensando a un computer in grado di modificare le istruzioni ricevute. Una macchina di questo tipo dimostrerebbe di avere un’intelligenza. Il problema da risolvere rimane quindi quello di programmare la macchina in modo che sia in grado di giocare a scacchi o al gioco di imitazione descritto sopra. Basterebbe definire un gruppo di istruzioni iniziali (paragonabile alla mente di un bambino) e poi definire un processo di apprendimento.

Turing ipotizzava macchine in grado di emulare il comportamento umano e imparare negli stessi anni in cui lo sviluppo tecnologico muoveva ancora solo i suoi primi passi in questa direzione: era stato costruito da poco il primo calcolatore in grado di avvicinarsi alla descrizione di macchina universale (ENIAC e la sua versione migliorata EDVAC). Era già un calcolatore elettronico e non meccanico (il che aumentava di molto la velocità di calcolo) e soprattutto conteneva nella propria memoria sia i dati che i programmi con le istruzioni, che potevano venire modificati durante l’esecuzione.

 

Machine learning dopo Turing

Da allora, lo sviluppo dei computer è andato avanti in parallelo nel campo dell’hardware e del software e questo ha permesso di assistere, almeno in parte, a quanto ipotizzato da Turing. Nel 1997, per la prima volta, un computer (Deep Blue, realizzato dall’IBM) ha battuto a scacchi l’allora campione del mondo Kasparov. Deep Blue, una volta istruito con delle regole di base, aveva “imparato” a giocare a scacchi studiando migliaia di partite [8].

In modo simile nel 2017 il programma per computer Alpha Go ha battuto il giocatore numero uno al mondo nel gioco da tavola Go. Il programma era in grado di cercare la mossa migliore sfruttando quanto appreso giocando sia contro umani che altri computer [9].

Anche l’esperimento condotto da Facebook rientra nel campo dei computer in grado di imparare [10]. In questo caso ci troviamo di fronte ad un gioco di imitazione molto simile a quello descritto da Turing. Nel caso di Facebook a due soggetti A e B veniva dato il compito di spartirsi una serie di oggetti. A ciascun oggetto era assegnato un punteggio e il fine di A e B era ottenere il maggior punteggio possibile. L’idea era quella di simulare una situazione comune nel mondo reale quando ci sono due soggetti con fini diversi che dialogano per trovare una decisione condivisa. Usando dei software (dei bot) al posto di soggetti umani è possibile sperimentare quanto queste “macchine” sono in grado di imparare a imitare il comportamento umano.

I bot hanno prima studiato il comportamento di due soggetti umani che si dividono gli oggetti a loro assegnati, imparando così le mosse utilizzate. Questo può avvenire grazie ai notevoli progressi compiuti finora nel campo del machine learning (sviluppi i cui dettagli tecnici esulano dallo scopo dell’articolo). Una volta “apprese” le tecniche di negoziazione umane, i bot venivano messi a giocare tra di loro. Questo tipo di interazione, detta apprendimento di rinforzo, permetteva ai bot di massimizzare l’efficacia nella negoziazione. In queste fasi i bot venivano programmati in modo da pianificare le mosse successive del dialogo con lo scopo di massimizzare la possibilità di vittoria. Questo tipo di interazioni venivano alternate a momenti di apprendimento supervisionato nei quali l’enfasi era posta sull’imitazione del comportamento umano. L’apprendimento supervisionato era volto ad evitare che i bot iniziassero a comunicare in modo troppo diverso dal linguaggio umano.

Figura 3 – Descrizione dell’esperimento condotto al FAIR. I soggetti A e B devono spartirsi una serie di oggetti. A ciascun oggetto è assegnato un punteggio e il fine di A e B è ottenere il maggior punteggio possibile. L’interazione avviene attraverso una chat. Le negoziazioni tra A e B vengono utilizzate come modello per l’apprendimento dei bot. I bot vengono poi messi a negoziare tra di loro per la divisione degli oggetti in modo da rinforzare la loro capacità di ottenere il maggior punteggio possibile.

Figura 3 – Descrizione dell’esperimento condotto al FAIR. I soggetti A e B devono spartirsi una serie di oggetti. A ciascun oggetto è assegnato un punteggio e il fine di A e B è ottenere il maggior punteggio possibile. L’interazione avviene attraverso una chat. Le negoziazioni tra A e B vengono utilizzate come modello per l’apprendimento dei bot. I bot vengono poi messi a negoziare tra di loro per la divisione degli oggetti in modo da rinforzare la loro capacità di ottenere il maggior punteggio possibile.

 

I risultati migliori si ottenevano quando I bot erano focalizzati sull’obiettivo di “vincere” attraverso l’apprendimento di rinforzo: imparavano a “ingannare” l’avversario fingendo interesse per oggetti a basso punteggio in modo da ottenere quelli ad alto punteggio. L’apprendimento di rinforzo, con i bot che negoziavano tra di loro, portava tuttavia alla possibilità di divergere dall’utilizzo del linguaggio umano. E questo è probabilmente ciò che si è verificato quando i due bot descritti nelle notizie, Bob e Alice, hanno iniziato a parlare tra di loro in modo quasi privo di senso per l’uomo. Ma questo implica solo che i due bot stavano cercando di massimizzare il loro punteggio secondo le istruzioni impartite, non che avessero un’intenzionalità o un fine di comunicare o non farsi capire.

Similmente Google è capace di completare le parole che digitiamo perché può memorizzare e imparare da ricerche successive. Questo non implica che capisca cosa sia ciò che ci suggerisce.

 

Una domanda ancora aperta

Deep Blue, Bob e Alice sono ancora lontani dal poter passare il test di Turing.

E anche nel momento in cui avessimo una macchina in grado di passarlo, rimane ancora aperta una domanda fondamentale: essere in grado di comportarsi come un uomo equivale davvero a pensare? Questo quesito è ancora dibattuto tra scienziati di tutti i campi del sapere, sostenitori e avversari dell’intelligenza artificiale. Siamo ancora solo all’inizio di un cammino da esplorare, viaggio che merita sicuramente una narrazione a parte.

Bibliografia

[1] M. Rovelli, Facebook blocca i suoi bot: l’intelligenza artificiale ha creato un nuovo linguaggio (che l’uomo non capisce), Corriere della sera (1 agosto 2017).

[2] [10] Mike Lewis, Denis Yarats, Yann N. Dauphin, Devi Parikh, Dhruv Batra(2017) – Deal or No Deal? End-to-End Learning for Negotiation Dialogues – Facebook AI Research, Georgia Institute of Technology.

[3] [5] [6] A. M. Turing (1950) – Computing Machinery and Intelligence –  Mind 49: 433-460.

[4] Translator’s notes to M. Menabrea Memoir on Babbage’s Analytical Engine pp. 691-731, Scientific Memoirs, Selected from the Transactions of Foreign Academies of Science and Learned Societies, Vol. 3, 1843.

[7] Walter Isaacson – Gli innovatori – (Mondadori, 2014, ISBN 9788804645917), p.129.

[8] Oliviero Stock, Yurij Castelfranchi – Macchine come noi. La scommessa dell’intelligenza artificiale – Laterza, 2000, ISBN 88-420-6125-5.

[9] David Silver et al. Mastering the game of Go without human knowledge. Nature 550, 354–359 (19 October 2017).

Info sui Revisori di questo articolo

Giuseppe Brandi, PhD candidate in Economics alla LUISS, si occupa di networks, econometria e machine learning applicati a problemi economico-finanziari.

Il secondo revisore esperto ha chiesto di rimanere anonimo.

Andrea De Giorgio, PhD, è ricercatore di Psicobiologia all’Università eCampus. Si è a lungo occupato di disabilità intellettiva alcol correlata e attualmente il suo interesse di ricerca è focalizzato sugli effetti psicobiologici delle pratiche meditative/contemplative.

Patrizia Piotti, laurea in medicina veterinaria (Milano, IT), MSc in clinica del comportamento animale (Lincoln, UK), PhD in psicologia comparata (Portsmouth, UK), lavora come post-doc presso il Senior Family Dog Project, Eötvös Loránd University (Budapest), su un progetto finanziato dall’European Research Council sull’invecchiamento cognitivo nel cane.

About the Author

Elisa Camozzi
Elisa Camozzi si è laureata in fisica nel 2004 presso l’università di Milano-Bicocca con una tesi in biofisica nell’ambito della spettroscopia di fluorescenza. Nel 2005 si è avvicinata al campo della microelettronica prima presso STMicroelectronics e attualmente in Micron (multinazionale americana) dove lavora come Senior Process Integration Engineer nel dipartimento di Ricerca e Sviluppo. In questo campo si è occupata di Memorie Flash NOR e attualmente lavora su tecnologie Flash NAND. Nel frattempo ha cercato di integrare i metodi e le conoscenze che si apprendono e utilizzano in campo strettamente scientifico/tecnico con un approccio più umanistico e per questo ha conseguito nel 2008 una laurea triennale in filosofia presso l’università di Milano con indirizzo filosofia della scienza.

Be the first to comment on "Intelligenza artificiale: dai giochi di imitazione di Turing a Facebook"

Leave a comment

Your email address will not be published.