You are on page 1of 6

Page 1/6

©2009 Neuroscienze.net
Journal of Neuroscience, Psychology and Cognitive Science

On-line date: 2009-02-25

Intelligenza Artificiale
Una breve introduzione

di Enrico Nanni

Keywords: IA, Intelligenza Artificiale, Reti Neurali, Eliza, Sistemi, Turing


Permalink: http://www.neuroscienze.net/index.asp?pid=idart&cat=3&arid=322

UN PO' DI STORIA
L'Intelligenza Artificiale nasce ufficialmente negli anni 50 con la redazione di un documento, a
seguito di un seminario tenutosi al Dartmouth College di Hannover, in cui si descriveva il progetto
di poter ricreare l'Intelligenza in un essere artificiale . Il termine stesso, Artificial Intelligence, pare
sia stato coniato da un giovane professore di matematica, John McCarthy, nel tentativo di trovare
un'etichetta accattivante e appetibile per supportare la richiesta dei fondi da destinare
all'organizzazione del seminario che avrebbe dovuto studiare delle tecniche per "riprodurre
l'intelligenza" in un essere non umano. Ecco come suonava tale richiesta: "Proponiamo che uno
studio (di due mesi, con dieci uomini) dell'intelligenza artificiale venga condotto durante l'estate
del 1956 al Dartmouth College di Hannover, New Hampshire. Lo studio procederà sulla base
della congettura che, in linea di principio, ogni aspetto dell'apprendimento o di qualsiasi altra
caratteristica dell'intelligenza possa venir descritto in modo così preciso da mettere una macchina
in grado di simularlo." La richiesta fu finanziata dalla fondazione Rockfeller e il seminario vide la
partecipazione, tra gli altri, di Marvin Minsky, Allen Newell, Herbert Simon. Il progetto non ebbe
risultati consistenti per quanto riguarda la ‘creazione' di macchine intelligenti. Si è trattato
di un coraggioso, pionieristico tentativo, di affrontare un problema forse inaffrontabile allora (e
forse ancora oggi), con le armi dell'impegno e della multidisciplinarità. Facendo un salto di quasi
cinquant'anni, è lecito chiedersi cosa abbia prodotto questa scienza ancora giovanissima, e quali
siano le nuove frontiere della ricerca in quest'ambito. È importante sottolineare che l'IA è
tutt'altro che una disciplina omogenea e ben definita. L'anima originale dell'IA si basa sull'ipotesi

Page 2/6
del sistema fisico di simboli (physical symbol system). Nella definizione degli stessi Newell e
Simon: "un sistema fisico di simboli consiste in un insieme di entità, dette simboli, le quali sono
delle strutture fisiche che possono apparire come componenti di un altro tipo di entità dette
espressioni (o strutture simboliche). Così una struttura simbolica è composta da un certo numero
di esemplari (o token) di simboli che sono fisicamente in relazione tra loro in un certo modo (per
esempio per il fatto che un token si trova accanto ad un altro token). In ogni istante il sistema
conterrà una collezione di queste strutture simboliche. Oltre a queste strutture, il sistema conterrà
anche una collezione di processi che operano sulle espressioni per produrre altre espressioni:
processi di creazione, modifica, riproduzione e distruzione. Un sistema fisico di simboli è una
macchina che produce nel corso del tempo una serie mutevole di strutture simboliche. Questo
sistema esiste in un mondo di oggetti più ampio rispetto a queste espressioni simboliche (Newell e
Simon, 1976). Questa ‘branca' dell'Intelligenza Artificiale (comprendente moltissime
sotto-aree) viene chiamata Intelligenza Artificiale Classica o Simbolica. L'intelligenza Artificiale
Classica comprende sotto di sé numerosi campi di ricerca. Come abbiamo visto il proposito
originario dell' IA era quello di ridurre il ragionamento ad un calcolo, intendendo per calcolo un
qualcosa che abbia una struttura finita e ben definita, e che possa in questo modo essere
implementato su una macchina. Il primo passo è quello di definire cosa intendiamo per
comportamento intelligente. Un comportamento intelligente è un comportamento organizzato, e
quindi complesso. Al di là di questa definizione intuitiva, la Teoria della Commutabilità è in
grado di darci una misura di quanto un problema sia difficile da risolvere. A volte ci rendiamo
conto che le macchine sembrano più intelligenti di noi; una qualsiasi calcolatrice tascabile ha delle
capacità di calcolo che chiunque di noi si sognerebbe di avere. Ma non dobbiamo cedere alla
tentazione: bisogna spostare l'attenzione su che cosa è da considerare intelligente, e che cosa no.
Alan Turing ha proposto un test, da cui emerge una visione operazionale dell'intelligenza: stretto ai
minimi termini, il ragionamento di Turing era che se una macchina è in grado di sostenere una
conversazione con un agente umano via terminale oltre un certo limite di tempo, senza che questi
si accorga che sta comunicando con una macchina, allora la macchina ha un comportamento
intelligente. La macchina in questo caso deve riuscire a derivare una semantica dal linguaggio
naturale, in modo da dare delle risposte adeguate. Uno dei punti cruciali su cui era focalizzata
l'attenzione dell'IA delle origini era l'elaborazione del linguaggio. Ai tempi di Turing era ancora
difficile che una macchina fosse in grado di ‘parlare' con una persona. Anche per questo
l'interazione linguistica poteva plausibilmente rappresentare un buon criterio di valutazione per
l'intelligenza, quanto meno per quella di una macchina. Così nacque Eliza. Eliza, un programma
scritto da Joseph Weizenbaum, è un terapeuta virtuale col quale si poteva (e si può tuttora, io l'ho
scaricato da Internet) dialogare dei propri problemi, ricevendo risposte plausibili per i primi
scambi di battute, ma artificiose e totalmente non-psicologicamente realistiche subito dopo. Eliza
funziona più o meno in questo modo: analizza aree di significato all'interno della frase che viene
immessa nel calcolatore, e dà in uscita risposte in base a regole del tipo "quando ricevo in input la
parola padre ïƒ dare in uscita la risposta "mi parli ancora della sua infanzia" o "mi parli
ancora del rapporto coi suoi genitori". Si tratta di un comportamento non intelligente, ma di tipo
associativo.

IMPIEGO DELLE RETI NEURALI


Lo studio dei linguaggi naturali è una delle linee di evoluzione fondamentali dell'IA. Esistono
tuttavia altri settori in cui l'IA classica di è espressa, alcuni tuttora studiatissimi. Abbiamo così la
Teoria dei Giochi, la Risoluzione di Problemi, le Basi di Conoscenza, che vedremo in seguito,
insieme ad alcune informazioni di base circa il linguaggio della Logica dei Simboli. L'"altra"
Intelligenza Artificiale è quella in seno alla quale sono nate le Reti Neurali Artificiali (dall'inglese
Artificial Neural Networks), e si chiama Intelligenza Artificiale sub-simbolica o Intelligenza

Page 3/6
Artificiale ‘soft' in contrapposizione a quella hard.

COME FUNZIONA UNA RETE NEURALE


Una Rete Neurale è un sistema di elaborazione, caratterizzato da funzionamento parallelo degli
elementi che lo compongono, e strutturata in modo tale da ricordare vagamente il sistema nervoso
umano (Reti Neurali Naturali). Le Reti Neurali Artificiali affondano le radici teoriche nel
Connessionismo, che accetta la critica al modello di mente centrata sul calcolatore inteso come
macchina di von Neumann. Il cuore del Connessionismo è, appunto, la modellizzazione in termini
di reti neurali, ricercando plausibilità neurologica, assente nei modelli rappresentazionali
precedentemente descritti. Una descrizione esaustiva del funzionamento delle reti neurali, dei vari
tipi di reti, e della loro storia è un obiettivo alquanto pretenzioso, e oltretutto ci sono un sacco di
bei libri su quest'argomento, esaurienti e pieni di formule dettagliate e di illustrazioni. Una
descrizione sommaria però è necessaria. Una rete neurale è formata da nodi (vengono chiamati
anche unità, o neuroni) collegati tra loro da legami, o connessioni. Le reti possono essere formate
da più strati di neuroni, collegati tra loro in svariati modi. Il livello di neuroni in cui entra
l'informazione data dallo sperimentatore, o contenuta nell'"ambiente" della rete è detto
‘strato dei nodi di input o input layer. Quello da cui esce la risposta della rete lo strato dei
nodi di output, o output layer. Se una rete è formata da più di due strati, gli strati interposti tra
quelli di input e di output sono detti ‘hidden', o striati dei nodi nascosti. Nei programmi che
simulano reti neurali è possibile scegliere o modificare le architetture e i pattern di connettività,
ovvero in che modo i neuroni che compongono una rete interagiscono tra di loro. Compiti diversi
possono richiedere architetture e tipi di connessioni diversi. Il punto è: cos'è che la rete apprende?
La risposta è: qualsiasi cosa. O meglio, qualsiasi associazione. Insisto ancora nel ribadire che sto
parlando in modo veramente semplificato di un argomento molto complesso, e di alcuni aspetti più
specifici avrò occasione di parlare in futuro. Tornando a noi: la rete impara ad associare pattern.
Per fare un esempio, possiamo insegnare ad una rete neurale ad associare un'immagine a un nome.
Dobbiamo quindi presentare alla rete per un numero finito di volte questa associazione, nella fase
cosiddetta di addestramento (training) della rete. L'input deve essere codificato in modo tale che
la rete possa ‘comprenderlo'. Possiamo codificare ad esempio un immagine come una
matrice i cui elementi sono valori interi, che costituiscono il grado di intensità dell'illuminazione di
ogni punto (pixel); il nome a cui l'immagine deve essere associata può essere codificato
arbitrariamente, per esempio col codice binario, associando ad ogni fonema un vettore i cui
elementi possano assumere valore binario (1 o 0) o bipolare (1, 0 ,-1); l'attivazione di un nodo di
input rappresenta quindi la presenza di una certa caratteristica fonologica, la non attivazione la sua
assenza. Rientreremo più avanti nell'intricato settore della codifica. Mi limito ad aggiungere che
esistono fondamentalmente due tipi di rappresentazione, quella locale e quella distribuita
(rappresentazione localist vs distributed). Quando l'input è rappresentato in maniera locale,
significa che ad ogni nodo della rete corrisponde un elemento. La perdita di quel nodo dovuta a
danneggiamento determina la perdita definitiva dell'informazione. Codificare un'informazione in
modo distribuito significa invece lasciare che concetto, una parola, un immagine, sia, appunto,
distribuito a livello rappresentazionale su tutti i nodi che costituiscono l'input. Questo tipo di
rappresentazione è biologicamente più plausibile e resistente al danneggiamento, perché la perdita
di un nodo, e quindi di una parte dell'informazione, vedrà la rete comunque in grado di ricostruire
il pattern originale. Questa è una delle caratteristiche che ha suscitato maggior interesse nel campo
delle reti, perché le rende strumenti di analisi estremamente flessibili e robusti per le applicazioni,
diciamo, più pratiche (data-mining, previsioni meteorologiche, analisi della Borsa), nonché un
metodo simulativo che si è mostrato in molte occasioni estremamente utile allo studio sulle facoltà
mentali, sui circuiti cerebrali, sugli effetti delle lesioni al cervello. La memoria della rete è
costituita dalle connessioni tra i vari strati (o layer) di unità. Queste connessioni, alle quali è

Page 4/6
associato un peso, sono rappresentate da una matrice i cui elementi sono organizzati, alla fine
dell'apprendimento, in una configurazione ottimale per la risoluzione del problema che la rete deve
affrontare. Se ad esempio la rete deve imparare a separare un set di fotografie in due categorie,
uomini e donne, noi dobbiamo presentarle n volte il corpus di fotografie in cui ad ogni immagine è
associato il nome della classe di appartenenza. Questo è un compito alquanto difficile, dato che la
rete non ha un'informazione esplicita sulle foto che vede, ma deve in un certo modo
‘capire' la regola che sta sotto all'associazione. Una rete neurale artificiale è in grado di
fare questo se riesce a capire le invarianze caratteristiche di ciascuna classe. Addestreremo la rete
finché non produrrà un errore sufficientemente basso; verificheremo se la rete ha imparato a
distinguere tra le due classi presentandole delle foto nuove, di uomini e di donne, che la rete non
ha mai visto, e osservando se ha imparato a categorizzare quindi in modo adeguato i nuovi dati.
Questa è la cosiddetta fase di test. La rappresentazione risiede nella matrice dei pesi associati ai
legami tra le unità e i cambiamenti di rappresentazione sono dati dall'evoluzione di tale matrice.
Dobbiamo notare che la rete è composta da unità relativamente semplici, e che le funzioni
complesse emergono dalle interazioni dei singoli elementi. Nel singolo nodo non c'è niente della
complessità manifestata dal sistema di cui fa parte. Nel caso della capacità di scegliere tra due
categorie in cui mettere una fotografia di una persona, si tratta proprio di una funzione emergente
dalle interazioni reciproche tra i nodi, sotto forma di operazione algebriche che vedremo più da
vicino in una sezione specifica.

MODELLI COMPUTAZIONALI E SISTEMI IBRIDI


Tornando all'Intelligenza Artificiale come "paradigma generale", diciamo che ci sono due modi di
vedere lo scopo di questa disciplina. La visione più pratica dell'IA è quella che trae origine
dall'anima ingegneristica e applicativa, e che vede come obiettivo la creazione di calcolatori
sempre più potenti e con caratteristiche che li rendano in grado di affiancare e (o sostituire) l'uomo
in attività ad elevato contenuto intellettuale. A noi interessa maggiormente l'altra visione dell'IA,
quella che promuove lo studio delle facoltà mentali attraverso l'uso di modelli computazionali. Un
modello computazionale è (o deve essere) in grado di spiegare in modo esplicito l'ipotesi o la
teoria a cui fa riferimento, al punto da poter implementare questa su un calcolatore. Ma la regola
non deve essere questa, è troppo rigida; si rischia di sbattere contro il muro della complessità; il
cervello è troppo complicato per essere implementato su un calcolatore del tipo macchina von
Neumann, almeno in base alle nostre conoscenze attuali. Lo sviluppo di nuovi metodi simulativi
permette d'altro canto di riuscire ad ottenere risultati sempre più raffinati nello studio dei processi
mentali. Da una parte l'IA classica ha ben presto mostrato i suoi limiti nel campo dello studio della
mente (anche se gli algoritmi a cui ha dato vita sono tutt'oggi usatissimi per molte applicazioni).
Va quindi fatto un ultimo accenno a una proposta di integrazione tra i due modi di affrontare lo
studio e la programmazione di agenti (più o meno) intelligenti. Faccio riferimento alla creazione
dei cosiddetti Sistemi Ibridi. Un sistema ibrido è un sistema che integri due approcci differenti. In
riferimento a ciò di cui stiamo parlando, si tratta di trarre il maggior beneficio possibile sia
dall'approccio simbolico, sia da quello sub-simbolico. La modellizzazione in termini di sistemi
ibridi rappresenta un'integrazione di modelli connessionisti, come le Reti Neurali, e , ad esempio, i
Sistemi Esperti, che vanno a costituire la parte simbolica del sistema. Possiamo immaginare di
utilizzare una rete neurale inserita in diversi moduli pre-programmati, per simulare le funzioni di
diverse aree della corteccia cerebrale, senza perdere la caratteristica plasticità di ogni singola area;
possiamo variabilmente interconnettere i moduli, per studiarne le interazioni dinamiche e i
conseguenti sviluppi strutturali. È possibile inoltre che una rete organizzata in modo
completamente connessionista si auto-organizzi in moduli senza l'aiuto di regole esplicite. Nel
caso della rete descritta sopra (ancora quella delle foto), può succedere che il modo in cui impara a
riconoscere le invarianze di ciascuna delle due categorie consista nello specializzare alcuni gruppi

Page 5/6
di neuroni, o addirittura singoli nodi, nel riconoscimento di tratti specifici, come linee inclinate,
colori, particolari gradienti di intensità della luce, e così via. Vedremo in dettaglio che sono stati
raggiunti, in molti casi, risultati straordinari.

Bibliografia

Floreano, D. e Mattiussi, C (1996). Manuale sulle Reti Neurali. Bologna: il Mulino


Burattini, E. e Cordeschi, R.(a cura di) , (2001).Intelligenza Artificiale. Roma: Carocci
Fum, D. , (1994). Intelligenza Artificiale, teoria e sistemi. Bologna: il Mulino
Luccio, R. (2001). Psicologia Generale: le frontiere della ricerca. Roma-Bari: Laterza

Page 6/6

You might also like