Prima di cominciare a parlare di intelligenza, vediamo di darne una definizione. Si potrebbe dire che l’IA è il settore dell’informatica che si occupa di creare macchine intelligenti, ma cos’è l’intelligenza stessa?
In genere, si può intendere per intelligenza la capacità di eseguire compiti e risolvere problemi nuovi, di adattarsi all’ambiente e comprenderlo, e di capire il linguaggio naturale. Un’altra definizione operativa è stata proposta da Alan Turing nel suo articolo “Computing machinery and intelligence” (1950): una macchina può essere considerata intelligente se passa il “Test di Turing“.
Il test (o “Imitation Game”) consiste nel mettere un uomo davanti a un terminale, attraverso il quale comunicare con due entità: un altro uomo e un computer. Se la persona che comunica attraverso il terminale non riesce a distinguere fra uomo e macchina, allora il computer ha passato il test.
Quando nasce esattamente l’intelligenza artificiale? Si potrebbe considerare l’IA moderna come frutto di un secolare percorso dell’uomo per cercare di comprendere e riprodurre la propria mente e i suoi processi cognitivi.
Tuttavia paragonare gli automi costruiti nell’antico Egitto (come la statua che eleggeva i faraoni), durante il Rinascimento o nel XVIII secolo (anatra digeritrice) con quelle che sono le attuali applicazioni dell’IA sarebbe forse un po’ azzardato. Per dirla con McCorduck (1979) è conveniente ricondurre l’eterogeneità di questi sforzi a una “tradizione di ricerca” per la comprensione formale della mente umana.
1943-1955: Albori dell’IA moderna
L’IA come è oggi è nata nel secondo dopoguerra, grazie soprattutto all’avvento dei calcolatori, fin da subito considerati come il perfetto strumento per riprodurre una mente umana.
McCulloch e Pitts proposero un modello di rete neurale ispirato al funzionamento del cervello umano.
Fra i primi lavori in questo ambito di ricerca spicca quello di Warren McCulloch e Walter Pitts (1943), che proposero un modello di rete neurale ispirato al funzionamento del cervello umano. Ogni neurone, interconnesso con gli altri da sinapsi, poteva rappresentare uno stato binario: “on” o “off”. I due ricercatori dimostrarono che con questo modello era possibile implementare tutti i blocchi fondamentali della logica booleana (not, and, or ecc.). Inoltre ipotizzavano che queste reti fossero in grado di apprendere; e in effetti Donald Hebb nel 1949 ideò una regola di modifica dei pesi delle sinapsi che lo rendeva possibile. Importante fu anche il primo computer a rete neurale, sviluppato da Marvin Minsky nel 1950, detto SNARC, che simulava una rete di 40 neuroni.
Sempre nel 1950 Turing scrisse l’articolo cui si è già accennato sopra (“Computing machinery and intelligence”) che insieme alle sue lezioni sull’argomento portò rilievo a questo campo nascente.
1956: Nascita dell’IA
Se nel primo dopoguerra si assiste a un crescente interesse per l’IA, nell’anno 1956 essa ottiene lo status di vera e propria disciplina scientifica. Nel 1956 si tiene infatti la conferenza del Dartmouth College (Hanover, New Hampshire), organizzata dal ricercatore John McCarthy.
McCarthy nella sua proposta per la conferenza esprime l’opinione che ogni aspetto dell’intelligenza possa essere descritto in termini tanto rigorosi da rendere possibile programmare una macchina in grado di simularli (McCarthy e altri – 1955). La conferenza era pensata come un’occasione per riunire e mettere a confronto su questo tema molti fra i primi ricercatori nell’ambito – fra cui spiccano: M. Minsky, A. Newell, H. Simon, N. Rochester C. Shannon.
È proprio nel manifesto della conferenza, fra l’altro, che McCarthy propone per la prima volta il nome di “intelligenza artificiale”
A Dartmouth i ricercatori Herbert Simon e Allen Newell hanno modo di presentare quello che si può considerare il primo programma di IA: Logic Theorist, ideato dai due già nel 1955.
Esso era in grado, procedendo nella costruzione di un albero i cui nodi sono ipotesi matematiche derivate dalla radice (tesi), di dimostrare buona parte dei teoremi del capitolo 2 dei “Principia Mathematica” di Russell e Whitehead.
1952-1969: I successi e l’entusiasmo dei primi anni
In un certo senso, i primi anni dell’IA furono segnati da una serie di grandi successi; i programmi come Logic Theorist risultavano infatti sorprendenti, dimostrando che i calcolatori non erano semplici manipolatori di espressioni matematiche ma potevano fare di più.
Newell e Simon sviluppano nel 1957 il General Problem Solver (GPS), in cui implementano un processo inferenziale ispirato al modo di ragionare della mente umana. Il GPS poteva agire e manipolare oggetti all’interno della rappresentazione di una stanza, come ad esempio raggiungere un oggetto appoggiato su un tavolo impilando due sedie.
Herbert Gelernter sviluppa invece il Geometry Theorem Prover presso l’IBM, mentre Oliver Selfridge al Lincoln Laboratory implementa il Pandemonium, un primo programma per il “pattern recognition”, basato su una serie di “demoni” (per intenderci lavoravano come piccole funzioni richiamate dal programma) addestrati a riconoscere determinati elementi di una lettera scritta.
Nel frattempo McCarthy lavora assiduamente al MIT per scrivere un nuovo linguaggio di programmazione, detto LISP, che facilitasse la realizzazione di programmi di IA. Incidentalmente – anche se è riduttivo definire incidentale un contributo così importante all’informatica – inventa il “time sharing”.
Nel 1958 McCarthy pubblica “Programs with common sense” in cui descrive il primo esempio di intelligenza artificiale completa: Advice Taker. Advice Taker doveva essere in grado di percepire la realtà circostante e rappresentarla al proprio interno, in modo da interagire con essa e rispondere agli stimoli provenienti dall’esterno.
In questi anni nasce anche un nuovo approccio alla realizzazione di sistemi intelligenti: i micro-mondi. Marvin Minsky teorizza infatti che la soluzione migliore per la rappresentazione del mondo fisico sia ridurlo a forme geometriche, che il computer può manipolare per aggiornare la sua conoscenza e svolgere i compiti assegnati.
Nel 1962 Frank Rosenblatt, sviluppando il concetto di rete neurale introdotto da McCulloch e Pitts, descrive il “percettrone”, una tipologia di rete neurale con un miglior algoritmo di modifica dei pesi sinaptici. Rosenblatt riconosce anche nel percettrone e nelle reti neurali in generale il migliore strumento per il “pattern recognition”.
1966-1973: Una battuta d’arresto
Fra le molte applicazioni in cui i primi ricercatori ritenevano che l’IA potesse fornire contributi essenziali c’è la traduzione automatica (e più in generale la comprensione del linguaggio – “Natural Language Processing”). Tuttavia proprio nella traduzione automatica l’IA soffre i primi fallimenti e delusioni.
Si pensava infatti che fosse possibile realizzare traduzioni automatizzate tramite una semplice manipolazione sintattica, cosa che si rivelò essere sbagliata. Il metodo impiegato portava infatti molto spesso a risultati grotteschi, come la traduzione dall’inglese al russo che da “The spirit is willing, but the flesh is weak” portò a “The vodka is good, but the meat is rotten”. Il fallimento di questi tentativi iniziali, sancito in un rapporto al governo americano nel 1966, costò a molti progetti di ricerca sull’IA il taglio dei fondi. Il DARPA aveva infatti investito molto in questo aspetto dell’IA, sperando che fosse possibile tradurre articoli scientifici dal russo all’inglese, ma abbandonò per la mancanza di risultati.
Un analogo problema sorge nel 1973 in Inghilterra con il rapporto Lighthill, in cui l’IA veniva definita incapace di risolvere molti dei problemi che si proponeva. Infatti i primi ricercatori (ad esempio impegnati nell’elaborazione di algoritmi genetici) non tenevano conto dell’esplosione esponenziale del tempo di calcolo cui sarebbero incorse le soluzioni da loro ideate, che si basavano su tecniche brute-force.
In questi anni si sollevano anche alcune voci critiche nei confronti dell’IA. Da una parte, Hubert L. Dreyfus nel suo articolo “Alchemy and AI” del 1965 e poi nel libro “What computers can’t do” (1972) attacca i ricercatori asserendo che l’IA non sia realizzabile dal punto di vista filosofico, e sottolineando l’incapacità di realizzare i tanti successi promessi.
Dall’altra, anche un ricercatore affermato nel campo dell’IA come Joseph Weizenbaum esprime nel 1976 il dubbio: è morale creare l’intelligenza artificiale?
Weizenbaum era l’ideatore di ELIZA, un programma pensato per simulare uno psicologo Rogersiano, ovvero: dopo aver chiesto al “paziente” di parlare di sé e dei propri problemi, il programma rielaborava l’input in forma di domande, per stimolare ulteriori ragionamenti sul problema. L’effetto che questo programma aveva su molti era sconcertante: i “pazienti” infatti si calavano completamente nell’illusione aprendo il proprio animo e i propri pensieri al computer.
1969-1986: I primi sistemi esperti e la nascita dell’IA come applicazione industriale
Come si è detto, i primi programmi di IA erano scritti per giungere alla soluzione di un problema “ragionando” tramite una serie di proposizioni logiche. In questi anni emerge invece un secondo approccio: i sistemi basati sulla conoscenza. Il primo esempio è DENDRAL, sviluppato da Edward Feigenbaum a Stanford a partire dal 1965.
Il compito di questo programma era mappare la struttura delle molecole: veniva fornita a DENDRAL l’analisi spettrale della molecola e su una base di regole il programma definiva un insieme di possibili strutture; successivamente le metteva a confronto con i dati per determinare quella corretta.
È questo il primo prototipo di sistema esperto. In seguito Feigenbaum e Buchanan implementarono il primo esempio compiuto di un sistema esperto: MYCIN; all’interno del programma infatti, a differenza di DENDRAL, la conoscenza (regole) era separata dalla logica necessaria ad applicarle alla situazione in esame. MYCIN era pensato come uno strumento di aiuto per i medici nella diagnosi di malattia infettive del sangue. Un tesista di Buchanan sviluppò anche TEIRESIAS, per fornire un’interfaccia con cui fosse possibile inserire la conoscenza, in linguaggio naturale semplificato, all’interno di MYCIN, processo che altrimenti si rivelava molto laborioso.
A partire dal 1981 i sistemi esperti si rivelarono degli ottimi strumenti per applicazioni industriali, vivendo così un intenso periodo di sviluppo. Ad esempio nel 1982 R1 (sistema esperto per generare configurazioni hardware di computer) viene attivamente impiegato presso la Digital Equipment Corporation.
1986: Il ritorno delle reti neurali
Non sempre convivono in armonia – ad esempio nel loro articolo del 1967 “Perceptrons” Minsky e Papert avverseranno le reti neurali, definendole inadeguate per risolvere problemi reali.
Nel 1967 con l’articolo “Perceptrons” Minsky e Papert diedero un duro colpo alla ricerca sulle reti neurali, definendole inadeguate per qualsiasi applicazione pratica. Di fatto dopo la pubblicazione dell’articolo e a causa della mancanza di effettivi risultati, le reti neurali erano state abbandonate.
Nella seconda metà degli anni ’80 però, molti gruppi di ricerca ripresero a studiarle: venne scoperto nuovamente l’algoritmo di ‘back-propagation’ (basato su un aggiustamento dei pesi sinaptici eseguito in retroazione) che permetteva alla rete di apprendere. È la nascita del cosiddetto approcio connessionista all’IA, consacrato dal libro “Parallel distributed processing“, pubblicato nel 1986 da Rumelhart e McClelland.
Come era successo per i sistemi esperti, anche le reti neurali diventeranno in questo periodo l’oggetto di grande interesse da parte delle industrie, arrivando fino ai giorni nostri.
1987-Oggi: Verso l’IA moderna
In questi anni cambia l’approccio all’IA: da una ricerca basata sull’intuizione e su esempi creati ad arte, l’attenzione si sposta sulla costruzione dei modelli su risultati matematici ben dimostrati e su estensiva sperimentazione.
Un esempio è fornito dall’ambito del riconoscimento del parlato in cui vengono introdotti i modelli di Markov nascosti (Hidden Markov Models), che portano a grandi miglioramenti e a una maggiore robustezza delle soluzioni. Lo stesso avviene per la traduzione automatica e per le reti neurali. Un altro contributo a questo processo è dato dall’articolo “Probabilistic reasoning in intelligent systems” di Judea Pearl (1988), che introduce la probabilità come valido strumento per il ragionamento rigoroso in condizioni di incertezza, situazione spesso presente in IA.
Nei primi anni del 2000 la disponibilità di vastissimi database ha portato un grande contributo a molti ambiti dell’IA. Infatti non è più necessario, per realizzare sistemi basati sulla conoscenza, inserire manualmente i dati necessari al funzionamento del programma, ma appoggiandosi a robusti algoritmi di apprendimento è sufficiente solo un’ampia base di dati. Il lavoro di Yarowsky (1995) e poi di Banko e Brill (2001) dimostra come l’efficienza di un sistema di disambiguazione del testo cresce al crescere dell’ampiezza della base di dati fornita al programma.
Conclusioni
La storia dell’IA è segnata da alti e bassi, soprattutto per via del grande ottimismo e delle molte promesse fatte dai primi ricercatori. Molte battute d’arresto, vicoli ciechi e taglio dei fondi hanno portato a cambi di rotta spesso anche drastici.
L’idea di riprodurre effettivamente un’intelligenza umana su un computer è stata progressivamente abbandonata, lasciando spazio ad approcci più realistici, e togliendo l’IA da sotto i riflettori dei media per un lungo periodo. Concentrando la ricerca sulla soluzione di problemi particolari, si è arrivati a implementare numerosi strumenti basati su tecniche di programmazione IA che tuttora vengono impiegati attivamente e con efficacia.
Senza pretese di elencarli tutti, riporto di seguito alcuni esempi di ambiti applicativi per l’IA, di cui si sente anche parlare molto ultimamente. Veicoli a guida autonoma (come la Google Car) robot, riconoscimento del parlato e traduzione automatica, pianificazione e logistica, giochi (come Deep Blue di IBM, che nel 1997 batte a scacchi G. Kasparov), filtri per la posta spam, assistenti vocali degli smartphone (Google Now, Cortana, Siri e altri ancora) e motori di ricerca.
Bibliografia
- Crevier, Daniel, AI: the tumultuous search for artificial intelligence, New York, BasicBooks, 1993.
- McCorduck, Pamela, Machines who think, San Francisco, W.H. Freeman, 1979.
- Russell, Stuart – Norvig, Peter, Artificial Intelligence: a modern approach, 3 ed., Pearson, 2010.
- Turing, Alan M., Computing machinery and intelligence, Mind 49: pp. 433-460, 1950.
- McCarthy, John, A proposal for the Dartmouth summer research project on artificial intelligence, 1955.
- Somalvico M., Amigoni F., Schiaffonati V., La grande scienza. Intelligenza artificiale