|
||||||
DOCUMENTS
elab.immagini
galileo
realtà virtuale
vrml
biomeccanica
esapodi
formula1
intelligenza
Papers
meccanica
sistemi
robotica
Gli empiristi ritengono invece che la conoscenza derivi dall'esperienza. Per esempio, il significato di una parola viene appreso dall'esperienza di sentire indicare con quella parola un qualche oggetto. Il razionalismo, infine, assume che la conoscenza abbia origine dai processi inferenziali, e un esempio tipico e' la conoscenza di tipo matematico.
Le teorie computazionali dell'apprendimento studiano il fenomeno dalla prospettiva degli empiristi. Il tema e' pertanto quello di spiegare in che modo l'esperienza generi conoscenza.
Esistono innanzitutto diversi livelli di apprendimento. Il livello piu' banale e piu' passivo e' il cosiddetto "rote learning", l'apprendimento di tipo mnemonico: apprendere consiste nell'"essere istruiti" (per esempio, studiare una poesia a memoria). Un qualsiasi programma puo' essere considerato come una forma di apprendimento da parte del computer: il computer ha appreso come eseguire l'algoritmo corrispondente essendo stato stato istruito dal programmatore.
I livelli superiori di apprendimento possono essere meglio definiti sulla base di "cosa" consentono di apprendere che non sulla base di "come" lo apprendono.
Estendendo l'idea di Clayton Lewis (1978) della "composizione di produzioni" (riassumere piu' regole in una regola sola), SOAR di Paul Rosenbloom apprende procedure (o meglio "skill") grazie al meccanismo di "chunking" (originariamente proposto da Miller nel 1956): la conoscenza viene acquisita in chunk che sono insiemi strutturati di informazioni presenti nel momento in cui la conoscenza e' stata acquisita. Cosi' a fronte di una nuova situazione SOAR costruisce il relativo "chunk" di informazioni: il chunk descrive quella situazione e la risposta prodotta per tale situazione. Il chunk viene costruito (ovvero "imparato") la prima volta che la situazione si presenta. Le situazioni (espresse come regole di produzione) che il programma e' in grado di risolvere sono organizzate in una gerarchia: all'inizio SOAR "impara" soltanto quelle terminali, poi poco alla volta anche quelle dei livelli superiori. Ogni nuovo livello comporta un aumento esponenziale nella velocita' di risposta. In tal modo si simula il modo in cui vengono apprese le competenze e il modo in cui l'apprendere competenze via via piu' complesse migliora progressivamente anche la performance: la curva di apprendimento di SOAR e' esattamente quella prevista dalla legge empirica di Snoddy.
La differenza fra l'apprendimento mnemonico e l'apprendimento di un concetto comporta generalmente un notevole salto di qualita' per le capacita' di ragionamento. Esiste un'ovvia differenza di efficienza fra l'avere imparato a memoria tutte le possibili soluzioni di teoremi matematici e l'aver imparato cosa significa in generale dimostrare un teorema.
Una possibile definizione di tipo operativo e' la seguente: un concetto e' una regola di classificazione (detta "funzione di valutazione") in base alla quale un dominio di istanze viene partizionato in istanze che soddisfano la regola e istanze che non la soddisfano. Questa definizione ha il vantaggio di identificare il concetto tanto con la regola che serve a selezionare le sue istanze, quanto con l'insieme di tali istanze, quanto infine con la "categoria" che viene cosi' creata.
Un concetto puo' essere appreso in tre modi fondamentali, corrispondenti a induzione, deduzione e abduzione: generando una regola da un insieme di esempi pratici del concetto (Patrick Winston, 1970); costruendo la regola sulla base di una descrizione del concetto (Gerlad DeJong, 1981); trasferendo alla regola le proprieta' di un concetto analogo (Patrick Winston, 1979).
I sistemi di apprendimento deduttivo "imparano" un concetto nel senso che trasformano la descrizione di un concetto in una regola di classificazione utilizzando un esempio pratico come riferimento. L'apprendimento deduttivo rende cioe' un concetto in una forma che possa essere utilizzata praticamente per classificare istanze: il suo scopo e' di rendere "operazionale" un concetto gia' noto. E' deduttivo in quanto non aggiunge nuova conoscenza, ma "trasforma" soltanto quella gia' disponibile. Mentre le analisi compiute dai metodi empirici sono semplicemente analisi di tipo sintattico su grandi insiemi di istanze, l'apprendimento deduttivo consiste nello studio approfondito di una singola istanza: il sistema costruisce una "spiegazione" di perche' quell'istanza sia un esempio del concetto, e tale spiegazione, debitamente generalizzata, costituisce allora una regola per riconoscere anche future istanze dello stesso concetto. Tom Mitchell (1986) identifica tale spiegazione con una dimostrazione logica del perche' quell'istanza appartenga a quel concetto e identifica la sua generalizzazione con le condizioni generali sotto cui tale dimostrazione vale.
Piu' comune e' l'apprendimento induttivo, che e' stato studiato nei secoli da diversi pensatori. Propedeutico a ogni forma di induzione e' l'essere in grado di costruire "generalizzazioni" delle istanze note. Nei sistemi di produzione cio' e' possibile tramite accorgimenti come quelli adottati da John Anderson nel 1978: una regola puo' essere generalizzata eliminando qualche condizione nella sua premessa e sostituendo costanti con variabili.
L'intera scienza umana e' fondata in gran parte su un meccanismo di tipo induttivo: da un certo numero di dati empirici ricavare una legge generale che li spieghi. Il processo mentale che consente di pervenire alla legge generale e' quello appunto della "generalizzazione", per cui si estraggono le proprieta' (le "feature") comuni a tutte le istanze. Costruire una regola di classificazione significa allora, secondo il punto di vista tradizionale di Jerome Bruner (1956), identificare per ogni categoria un insieme di features che consentano di discriminare fra le istanze che appartengono a tale categoria e istanze che non le appartengono. Nel contesto dei sistemi di produzione John Anderson propone banalmente di identificare l'insieme di features con la premessa della regola di classificazione cercata e la categoria con il suo conseguente.
Lo "spazio delle istanze", che contiene tutte le possibili istanze positive e negative (tutti gli esempi e i contro-esempi) di tutti i possibili concetti, corrisponde a uno "spazio delle descrizioni", che contiene tutte le possibili descrizioni di istanze e insiemi di istanze a tutti i possibili livelli di astrazione. Ogni concetto copre un sotto-insieme dello spazio delle istanze e un sotto-insieme dello spazio delle descrizioni. Un'altra astrazione equivalente e' quella dello spazio delle feature: ad ogni istanza sono associate le sue proprieta', ovvero i valori di un certo numero di attributi; lo spazio delle feature e' lo spazio multi-dimensionale in cui ogni attributo corrisponde a una dimensione, ogni valore a un valore sull'asse di quella dimensione, e ogni istanza a un punto nello spazio.
Apprendere un concetto a partire da un insieme di sue istanze equivale allora a costruire il relativo sotto-insieme nello spazio delle istanze (o nello spazio delle feature) e ad identificare il corrispondente sotto-insieme dello spazio delle descrizioni.
Esistono in generale infiniti insiemi di descrizioni che coprono tutte le istanze positive e nessuna delle istanze negative. Se le istanze positive sono, per esempio, 1, 2 e 3, e le istanze negative sono 4,5 e 6,9, una possibile descrizione e' "l'insieme dei numeri interi"; ma un'altra possibile descrizione e' "l'insieme dei numeri che contengono le cifre 1,2 e 3", e un'altra ancora e' "l'insieme dei numeri che sono minori di 4", e cosi' via. Ogni descrizione coerente con le istanze e' un'"ipotesi candidata". L'insieme di tutte le possibili ipotesi candidate costituisce un altro spazio, detto "spazio delle versioni". Uno spazio delle versioni e' cioe' l'insieme di tutte le generalizzazioni coerenti con l'insieme attuale delle istanze. Le ipotesi candidate di uno spazio delle versioni possono essere parzialmente ordinate dalla relazione di generalita', ovvero dalla relazione di inclusione dei corrispondenti sotto-insiemi nello spazio delle istanze: l'estremo limite inferiore e' dato dall'ipotesi che non generalizza per nulla le istanze esaminate, l'estremo limite superiore e' dato dall'ipotesi che copre tutte le possibili istanze dell'universo. In tal modo lo spazio delle versioni assume la struttura di un tipo particolare di grafo diretto, detto "aciclico" (ogni arco e' diretto da un nodo a un altro nodo in maniera tale che non possano esserci ricicli all'indietro).
Per definizione tutti gli elementi dello spazio delle versioni sono coerenti con le istanze, ma naturalmente l'obiettivo e' quello di selezionare l'elemento "migliore" dal punto di vista sia computazionale sia psicologico. Gli algoritmi di apprendimento induttivo si possono dividere sulla base di come procedono per selezionare tale elemento. Negli algoritmi "model-driven" ogni nuova istanza specializza ulteriormente la descrizione attuale, negli algoritmi "data-driven" ogni nuova istanza generalizza ulteriormente la descrizione attuale. I primi partono con la descrizione piu' generale possibile, i secondi partono con la descrizione meno generale che copra le prime istanze.
Per esempio, l'algoritmo data-driven di Winston (1970) assume come descrizione iniziale del concetto una qualsiasa istanza positiva; se l'istanza successiva e' positiva, e non soddisfa la descrizione attuale, rende la descrizione piu' generale in modo da comprenderla; se invece e' negativa, e soddisfa la descrizione attuale, rende la descrizione meno generale in modo da non comprenderla; poi ripete questi passi per tutte le istanze finche' l'algoritmo converge a una descrizione stabile. L'algoritmo di Winston e' un tipico algoritmo "incrementale", fedele al principio psicologico che l'apprendimento di un nuovo concetto avvenga per gradi.
L'algoritmo di Ryszard Michalsky (1978) non e' invece incrementale, pur avendo un obiettivo simile: costruire l'insieme minimo di tutte le descrizioni piu' generali che generano tutti gli eventi positivi e non generano nessuno degli eventi negativi. Michalsky produce una descrizione del concetto sotto forma di una disgiunzione di congiunzioni, il che' e' equivalente a un sistema di produzione (un insieme di regole e' una disgiunzione di congiunzioni).
L'algoritmo di Tom Mitchell (1978) formalizza sia il rendere "piu' generale" sia il rendere "meno generale" attraverso l'astrazione dello spazio delle versioni. Le descrizioni meno generali che sono ancora coerenti con l'insieme di istanze positive analizzato sono gli elementi "minimali" di tale spazio; viceversa le descrizioni piu' generali che sono ancora coerenti con l'insieme di istanze negative analizzato sono gli elementi "massimali". Il modo ottimale di convergere a una descrizione e' quello di rendere sempre meno generali gli elementi massimali e sempre piu' generali gli elementi minimali: ogni istanza positiva sposta il limite inferiore verso la minima generalizzazione dei casi positivi finora presi in esame, e ogni istanza negativa sposta invece il limite superiore verso la massima generalizzazione che non comprende i casi negativi considerati finora. Ogni nuova istanza provoca pertanto una revisione sia dell'uno sia dell'altro finche' i due limiti non diventino identici.
La tecnica dello spazio di versioni riflette l'incertezza dell' apprendimento. Raramente un concetto viene appreso subito in maniera precisa. E' piu' normale che per un lungo periodo il concetto resti piu' o meno vago. Lo spazio di versione di Mitchell rappresenta la conoscenza imparata in maniera ancora incompleta.
James Fetzer (1981) ha cosi' riassunto le proprieta' della deduzione: una deduzione e' valida se a) la sue conclusioni non potrebbero essere false se tutte le sue premesse fossero vere; b) la conclusione non contiene piu' informazione di quanta ne contenessero le sue premesse; c) l'aggiunta di premesse non puo' ne' rafforzare ne' indebolire questa conclusione, che e' pertanto "massimamente forte". In altre parole la deduzione e': dimostrativa, non-ampliativa e additiva. Lo scopo della deduzione, infine, e' quello di conservare la verita'.
Al contrario Fetzer definisce "propria" un'induzione se a) la sua conclusione potrebbe essere falsa anche se tutte le sue premesse fossero vere; b) la sua conclusione contiene piu' informazione di quanta ne contenessero le sue premesse; c) l'aggiunta di premesse puo' sia rafforzare sia indebolire questa conclusione. In altre parole l'induzione e': non-dimostrativa, ampliativa e non-additiva. Naturalmente anche una banalissima deduzione sbagliata potrebbe soddisfare queste condizioni, pur non essendo un'induzione. Queste sono pertanto soltanto condizioni necessarie, mentre non e' ancora stato raggiunto un accordo su quale possa essere una condizione sufficiente che consenta di definire in maniera univoca l'induzione.
La critica portata all'induzione fin dai tempi di Hume e' che risulta impossibile "convalidare" la conoscenza acquisita. Non esiste cioe' un metodo esatto per accertarne la verita': ogni ipotesi induttiva ha potenzialmente un numero infinito di consequenze, mentre si conosce soltanto un numero finito di casi confermati. In altre parole il computer puo' ricavare un insieme infinito di generalizzazioni, e poi deve "indovinare" quella giusta, senza avere altra informazione che quei casi. Winston ha fatto notare che un buon insegnante non fornisce ai suoi allievi un insieme casuale di esempi, ma un insieme di esempi accuratamente preparato affinche' gli studenti apprendano il concetto giusto.
Un'altra conseguenza del suo "non essere esatto" e' che l'apprendimento induttivo conserva la falsita', non la verita'. Per esempio, dalla nozione che "l'Italia confina con la Svizzera" si puo' indurre che "ogni stato Europeo confina con la Svizzera", ovvero da una verita' e' possibile indurre una falsita': l'induzione non conserva pertanto la verita'. Dalla nozione invece che "l' Italia confina con la Cina" non e' possibile indurre alcuna affermazione vera, cioe' da una falsita' si possono indurre soltanto altre falsita' e pertanto l'induzione conserva la falsita'. Purtroppo la conservazione della falsita' e' di scarso interesse pratico.
Pur non esistendo un metodo per validare un'inferenza induttiva, esistono dei requisiti affinche' essa sia completa e coerente. Gli algoritmi di induzione pervengono alla fine a una descrizione che e' una combinazione logica di altre descrizioni, in parte "caratteristiche", cioe' descrizioni degli elementi comuni a tutti gli oggetti della classe esaminata, e in parte "discriminanti", cioe' descrizioni degli elementi che non sono comuni a nessun'altra classe: le prime esprimono la condizione di completezza dell'inferenza induttiva, le seconde esprimono la sua condizione di coerenza. Un'inferenza induttiva e' accettabile soltanto se e' completa e coerente, ovvero se e' una congiunzione di caratteristiche e discriminanti.
Seguendo un'idea di Putnam del 1963, nel 1967 Gold ha definito formalmente il paradigma per accettare un'inferenza induttiva, la cosiddetta "identificabilita' nel limite": un'inferenza induttiva e' accettabile se dopo un certo numero di istanze positive produce l'ipotesi corretta e, per tutte le successive istanze positive, non cambia piu' ipotesi.
Un altro problema dell'apprendimento di concetti e' che si rifa' a una visione classica del "concetto" definito come insieme di proprieta', una visione che risale agli studi di Hull (1920). In generale cio' non e' pero' possibile: quali proprieta' caratterizzano e quali discriminano un uccello? Anche gli insetti e persino qualche mammifero (il pipistrello) hanno le ali; alcuni uccelli non hanno il becco, altri non volano. Se anche fosse possibile elencare le proprieta' che consentono di classificare senza dubbio un uccello come tale, e' probabile che un uccello a cui sia stata amputata un'ala verrebbe ancora riconosciuto come tale, benche' non soddisfi piu' quelle proprieta'. E' psicologicamente piu' plausibile l'ipotesi di Eleanor Rosch (1975) che una categoria sia definita non da un insieme di proprieta' ma da un "prototipo" e che la classificazione di un'istanza consista non in una regola che esamina le proprieta' dell'istanza ma in una funzione che calcola la somiglianza di questa nuova istanza con il prototipo.
Al tempo stesso L. Rips (1989) ha dimostrato che il prototipo non e' sufficiente a determinare una classificazione. Supponiamo di aver imparato i concetti di "fede" (l'anello di matrimonio) e "pneumatico" dopo aver visto centinaia di esempi di fedi e di pneumatici, e che quindi il prototipo di fede sia un anello di circa un centimetro di diametro e il prototipo di pneumatico sia un anello di circa mezzo metro di diametro; se dobbiamo classificare in una delle due classi "fede" o "pneumatico" un anello del diametro di cinque centimetri, sceglieremo probabilmente "pneumatico", benche', in termini strettamente di "somiglianza", cinque centimetri siano molto piu' prossimi a un centimetro che non a mezzo metro. La ragione e' semplice: oltre al prototipo abbiamo chiaro anche il grado di "flessibilita'" di quel concetto. Benche' non ci sia mai stato presentato un pneumetico di cinque centimetri, sappiamo che i pneumatici possono essere di dimensioni assai variabili, mentre le fedi sono delle dimensioni di un dito e le dimensioni di un dito non possono variare piu' di tanto. In altre parole oltre a confrontare l'istanza con il prototipo, siamo anche in grado di compiere inferenze, e tali inferenze hanno priorita'.
E' possibile partizionare un insieme di istanze anche su basi puramente statistiche (ovvero sulla base di una misura di similarita'), ma un concetto risultera' definito soltanto in maniera estensionale, ovvero dall'insieme delle istanze che gli appartengono. Le definizioni estensionali non hanno potere predittivo, non consentono cioe' di stabilire se una nuova istanza appartiene o meno allo stesso concetto (occorre calcolare la "distanza" di tale nuova istanza da tutti i concetti per rispondere a quella domanda). Se so che il gatto, il cane e il cavallo sono mammiferi, mentre l'aquila e il canarino sono uccelli e la trota e' un pesce, non ho elementi per classificare l'elefante, a meno di stabilire a quale dei tre gruppi esso sia piu' simile.
Michalsky (1980), utilizzando una variante del calcolo dei predicati del primo ordine, ha fondato le basi del clustering moderno che produce concetti definiti dalle loro intensioni: non solo la definizione del concetto risulta molto piu' "breve", e quindi computazionalmente utile, ma puo' servire a discriminare immediatamente se una nuova istanza appartiene o meno allo stesso concetto. Se so che i mammiferi non fanno le uova, so subito classificare l'elefante come mammifero. Michalsky da' un senso alle partizioni dello spazio delle istanze. Analogamente il programma di Michael Lebowitz (1984) riconosce regolarita' fra le istanze e costruisce quindi (in maniera incrementale) una gerarchia di generalizzazioni.
Il clustering di concetti e' fondamentale per poter studiare come gli umani formino teorie a partire dalle osservazioni di fenomeni. La scoperta scientifica consiste appunto nel formulare leggi che spieghino le regolarita' di un certo numero di istanze.
Il primo a studiare l'euristica che gli scienziati utilizzano per scoprire nuove teorie, ovvero per indurre nuove funzioni da un insieme di dati sperimentali, fu D. Gerwin nel 1974. Il programma AM (1977) di Douglas Lenat simula, per esempio, come si comporta un matematico guidato dall'intuito nello scoprire una nuova teoria scientifica. I concetti vengono pertanto formati non sulla base di semplici similarita', ma sulla base di quell'euristica che e' comune a tutti gli scienziati: per esempio, i casi estremi di una funzione sono sempre interessanti; i punti di discontinuita' anche; e cosi' via. L'euristica svolge di fatto la funzione dell'"intuito" che focalizza l'attenzione della ricerca in una certa direzione. Il programma BACON (1977) di Pat Langley scopre le leggi della fisica inducendo ipotesi dai dati empirici e raffinandole con ulteriori esperimenti. La sua euristica si focalizza ovviamente sulla ricerca di "regolarita'". Sono programmi che incorporano il buon senso di un qualsiasi ricercatore scientifico e che producono modelli qualitativi del mondo.
Un primo modo di automatizzare l'apprendimento della conoscenza "esperta" e' stato quello di costruire programmi in grado di imparare "osservando" l'esperto al lavoro, i cosiddetti "sistemi apprendisti" (learning apprentice systems). Questa strada e' stata tentata da Mitchell (1986), da Dietterich (1987) e da Michalsky (1987). Il sistema apprendista chiede consiglio all'esperto su come risolvere un problema, verifica che il consiglio funziona e acquisisce poi una regola di produzione che incorpora tale consiglio.
Il buon senso e' pero' qualcosa che dovrebbe valere in assoluto, e non essere specifico ad un particolare dominio. Un'altra possibilita' e' proprio quella di studiare la natura e le origini del buon senso in maniera astratta e di costruire poi programmi che siano in grado di apprendere buon senso in maniera autonoma.
Il buon senso puo' essere definito come: cio' che e' implicito negli atti di comunicazione fra umani. Come tale, avrebbe origine da un principio di economia delle comunicazioni: gli umani tendono sempre a minimizzare gli atti di comunicazione e a massimizzare l'informazione trasmessa. Si acquisirebbe pertanto tramite il processo che Minsky ha chiamato "sedimentazione cognitiva": durante ogni conversazione ciascun agente acquisisce conoscenza sulle conoscenze dell'altro agente. Un fenomeno piu' generale e' quello della scoperta attraverso la soluzione di problemi.
Negli anni Quaranta George Polya fondo' l'Euretica, la scienza che studia come l'Euristica viene creata, da dove trae il suo potere di convinzione, come si modifica, etc. E' evidente che un individuo ricorre alle sue capacita' inferenziali solo in casi molto rari, solo quando non riesce a trovare alcuna "euristica" che gli consenta di arrivare alla soluzione in maniera spontanea. Quando manca l'euristica, la velocita' computazionale della mente umana si riduce di ordini di grandezza. Un essere umano che non possedesse alcuna euristica dovrebbe risolvere ogni singolo problema della sua giornata (dal mangiare la colazione al prendere l'autobus) compiendo complicate inferenze su situazioni estremamente intricate. E probabilmente non riuscirebbe a sopravvivere.
In ultima analisi scopo dell'Euretica e' studiare non l'Intelligenza, ma la Saggezza.
L'Euretica tenta di trovare una risposta a due principali domande: come si genera una regola euristica, ovvero da cosa ha origine il buon senso? da cosa deriva il potere di convinzione di questo tipo di regole, ovvero la fiducia che riponiamo nel buon senso? E' impressionante la priorita' che esse hanno sulla nostra capacita' di ragionamento: non appena ci rendiamo conto di poter applicare una delle nostre regole euristiche, abbandoniamo istantaneamente ogni linea di ragionamento e ci affidiamo totalmente a tale regola.
Il maggiore "euretico" dell' Intelligenza Artificiale e' Lenat, il cui programma EURISKO (1977) dovrebbe scoprire nuove regole euristiche da se', utilizzando a sua volta la sua euristica di partenza: fonti di euristica sarebbero, per esempio, l'analogia con altra euristica, la specializzazione di altra euristica e la generalizzazione di altra euristica. Indirettamente Lenat suggerisce che la regolarita' del mondo sia una delle ragioni per fidarsi delle regole euristiche.
Il programma SAGE (1983) di Langley studia invece come avviene la transizione dallo stadio di inesperienza a quello di esperienza: se l'esperienza viene definita come "la capacita' di dirigere verso direzioni ottimali la ricerca della soluzione", tale transizione consiste nel trasformare strategie di ricerca generali, ma "deboli" (come means-end analysis), in strategie potenti ma specifiche del dominio di applicazione.
LEX (1981) di Tom Mitchell impara l'euristica necessaria per risolvere problemi di calcolo integrale in maniera efficiente basandosi su un principio analogo: un sistema apprende nel senso che usa informazioni ottenute durante un'interazione con il proprio ambiente per migliorare la propria performance durante future interazioni. Il programma impara risolvendo esercizi: al principio conosce soltanto le regole piu' semplici del calcolo degli integrali, applicando le quali prima o poi arriva alla soluzione. Dopo ogni esercizio LEX rivede pero' criticamente il percorso seguito per giungere alla conclusione, e ne ricava nuova euristica per il futuro.
Nel 1986 Lenat ha iniziato il progetto CYC, il cui obiettivo e' di costruire un'enciclopedia del senso comune. In un certo senso CYC sara' l'esatto complementare di una normale enciclopedia: conterra' cioe' tutte le informazioni che non sono contenute in un'enciclopedia, le quali sono a loro volta proprio le informazioni che servono per poter capire le informazioni fornite da un'enciclopedia. Nessun essere umano conosce tutte le informazioni contenute in un'enciclopedia, ma tutti gli esseri umani condividono le informazioni che sono necessarie per interpretare le informazioni di un'enciclopedia, infatti tutti gli esseri umani sono in grado di consultare l'enciclopedia.
Paul Feyerabend e Wilfrid Sellars (1963) hanno studiato la psicologia "folk" (o "intuitiva") che guida le inferenze dell'uomo della strada circa le azioni delle persone: se voglio una cosa e so che comprando una cosa ottengo quella cosa, allora e' probabile che comprero' quella cosa; se una persona che odiava la vittima viene trovata sul luogo del delitto con una pistola fumante in mano, allora e' lecito credere che quella persona sia l'assassino; e cosi' via. E' l'analogo per la mente della fisica "folk" di McCloskey. Secondo Feyerabend e Sellars la psicologia folk costituisce a tutti gli effetti una teoria completa e coerente e ogni singolo concetto della psicologia folk, ovvero ogni singola istanza di buon senso riferita al comportamento umano, e' spiegabile come conseguenza di tale teoria. E' naturale domandarsi di nuovo da cosa abbia avuto origine la psicologia folk, soprattutto visto che si configura come una vera e propria teoria e non soltanto come un insieme piu' o meno casuale di convinzioni.
Nel modello connessionista un sistema intelligente e' una rete di piccole unita' indipendenti, detta "rete neurale". Ogni unita' (corrispondente a un neurone) esegue task molto semplici che richiedono capacita' molto specifiche e comunica con altre unita'. La quantita' di intelligenza e' una misura dei messaggi scambiati sulla rete.
Una rete neurale e' pertanto una struttura di elaborazione parallela e distribuita, in forma di grafo diretto (non lineare), che rappresenta un agente tropistico (capace cioe' di reagire a ogni stimolo con una risposta senza stati cognitivi intermedi). Ogni elemento di elaborazione (ogni nodo) riceve numerosi segnali di input da altri nodi ed emette a sua volta un solo segnale di output, che si propaga lungo le interconnessioni con altri nodi. Le interconnessioni (le "sinapsi") hanno un "peso sinattico", e questi pesi possono fluttuare in maniera continua.
Un sistema "dinamico" e' un sistema in grado di modificare nel tempo la sua risposta. Affiche' sia dinamico un sistema deve essere regolato da due funzioni: una "di trasferimento", che stabilisce come l'input viene trasformato nell'output, e una "di apprendimento", che stabilisce come la funzione di trasferimento viene trasformata nel tempo sulla base dei suoi output.
Un sistema "adattativo" e' un sistema dinamico in grado di modificare la propria risposta sulla base della sua esperienza. Il primo a sviluppare una teoria formale del cervello che lo concepisse come un sistema adattativo, ovvero come un campo di variabili nel tempo, fu Ross Ashby nel 1960. In questo caso la funzione di apprendimento sfrutta cioe' il concetto di feedback, di restituire in input al sistema i suoi stessi output. L'obiettivo, come in tutti i sistemi dotati di feedback, e' di raffinare la funzione di apprendimento sulla base della performance del sistema. La funzione di apprendimento e' determinata in generale da un sistema di equazioni differenziali del primo ordine. La funzione di trasferimento descrive invece soltanto il comportamento del neurone in un certo istante, ed e' in generale un'equazione lineare che somma i singoli input moltiplicandoli ciascuno per uno specifico coefficiente. Cio' che evolve nel tempo per effetto della funzione di apprendimento sono proprio tali coefficienti.
La funzione di trasferimento e' del tipo
.ce output = F( C1 x input1 + C2 x input2 + ...)
mentre quella di apprendimento e' del tipo
.ce Feedback1 (C1, C2, C3, ...) = 0 .ce Feedback2 (C1, C2, C3, ...) = 0 .ce .......etc........
Un sistema "auto-organizzantesi" e' un sistema adattativo che puo' essere addestrato per esibire un certo comportamento. In questo caso la funzione di trasferimento deve convergere verso un output stabile nel tempo. La rete neurale viene "addestrata" presentandole diverse istanze del corretto comportamento. Ogni istanza (o, meglio, ogni feedback a seguito di un'istanza) provoca una riconfigurazione dei pesi delle sinapsi (ovvero dei coefficienti della funzione di trasferimento). Se, man mano che si sottopongono istanze, tali pesi convergono verso una configurazione stabile, allora la rete neurale sta "imparando" correttamente. Tramite il feedback fra i varii nodi l'informazione continua a propagarsi finche' il sistema raggiunge un nuovo stato di equilibrio.
Infine una "memoria associativa" e' una memoria che emette come output il segnale piu' fortemente associato all'input. Una rete neurale puo' ora essere definita formalmente come un sistema auto-organizzantesi che sia anche una memoria associativa.
Per facilita' di calcolo i nodi di una rete neurale vengono generalmente disposti a "strati". Il primo strato e' quello che riceve la configurazione dell'input (l'input e' solitamente un insieme di segnali piuttosto che un segnale unico) e l'ultimo strato e' quello che emette la configurazione di output. Gli strati intermedi, i cosiddetti strati "nascosti", non hanno un significato preciso benche' la loro funzione sia spesso quella di costruire i concetti da cui gli output possono essere derivati. Sono importanti dal punto di vista computazionale poiche' possono facilitare la costruzione di generalizzazioni: quanto piu' grande e' uno strato tanto piu' rapida, ma limitata, e' la generalizzazione; quanto piu' piccolo e' uno strato tanto piu' lenta, ma precisa, e' la generalizzazione.
Un input alla rete neurale puo', per esempio, essere l'immagine di un viso, che consiste di migliaia di punti. Queste migliaia di punti vengono fatti corrispondere a migliaia di nodi del primo strato. Se, per esempio, l'immagine e' in bianco e nero, ogni punto e' definito da un valore di intensita' (dallo zero del bianco totale all'uno del nero totale). Il valore di ogni punto costituisce il valore di input del rispettivo nodo. Ogni nodo esegue la sua funzione di trasferimento e, se viene superato il valore di soglia, trasmette il valore di output cosi' calcolato agli altri nodi con cui e' connesso. I nodi del primo strato intermedio ricevono pertanto combinazioni di valori di input che sono combinazioni dei valori di output calcolati dalle funzioni di trasferimento dei nodi dello strato di input. A loro volta eseguono la stessa funzione e propagano i loro valori di output verso i nodi del secondo strato intermedio con cui sono connessi. Quando, dopo "n" strati nascosti, si giunge all'ultimo strato, gli output dei suoi nodi costituiscono la risposta del sistema. E tale risposta puo', per esempio, essere costituita dalle lettere che compongono il nome della persona a cui appartiene tale viso.
Affinche' la rete possa fornire i corretti output deve essere stata prima addestrata. Durante l'addestramento gli input daranno origine ad output errati, e la rete, preso atto di quale avrebbe dovuto essere l'output corretto, dovra' di volta in volta riconfigurare i pesi delle sinapsi. Questa operazione di riconfigurazione avviene sulla base della legge di Hebb, di rafforzare cioe' le interconnessioni in proporzione al loro uso. Una variazione e', per esempio, la "regola Delta" di Bernard Widrow e Marcian Hoff (1960), a sua volta una generalizzazione della regola di apprendimento del Perceptron (Frank Rosenblatt, 1957), secondo la quale il peso di una sinapsi va rafforzato di una quantita' che e' proporzionale alla differenza fra l'output fornito e l'output atteso (e cosi' via ricorsivamente per gli strati intermedi).
Quando l'apprendimento della rete e' "supervisionato", la rete viene di fatto addestrata a riconoscere gli elementi di alcune categorie pre-definite. Per esempio, una rete neurale puo' essere addestrata a riconoscere il volto di una persona presentandole in input diverse prospettive (istanze) di quel volto e richiedendo che l'output generato sia il nome di quella persona (ovvero che quelle istanze vengano classificate nella categoria identificata dal nome di quella persona); dopo aver ripetuto l'operazione un grande numero di volte, la rete dovrebbe essere in grado di associare a una nuova, diversa fotografia di quel volto ancora il nome di quella persona. La rete neurale puo' anche essere utilizzata per costruire categorie, nel qual caso non viene addestrata, ma e' la rete stessa a decidere come partizionare l'insieme delle istanze. In questo secondo caso, non supervisionato, il ruolo dei nodi nascosti e' determinante.
Le differenze fra reti neurali e computer alla Von Neumann sono numerose: In un computer la conoscenza e' contenuta in un luogo ben preciso, la memoria, mentre in una rete neurale la conoscenza non e' localizzabile, e' distribuita nella rete, e precisamente nelle sue connessioni; le unita' di elaborazione di un computer sono sistemi statici (forniscono sempre lo stesso output a fronte di un dato input), mentre quelle di una rete neurale sono sistemi dinamici (l'output dipende anche dal peso delle sinapsi); i computer elaborano dati digitali, mentre le reti neurali elaborano segnali analogici che fluttuano in maniera continua; i computer sono in grado di compiere operazioni solo su quantita' esatte, mentre le reti neurali rispondono anche a configurazioni di input approssimate o incomplete o disturbate; il flusso "sequenziale" di operazioni di un computer e' prevedibile, mentre quello "parallelo" delle reti neurali e' praticamente impossibile da ricostruire a mano; il computer ha difficolta' a memorizzare schemi complessi (come l'immagine di un viso, che e' composta da migliaia di punti), ed e' lento poi nel reperirli, mentre la rete neurale memorizza facilmente schemi complessi ed e' rapida nel reperirli; il computer non e' "fault tolerant", ovvero non e' trasparente alla perdita di informazione, mentre l'output di una rete neurale non si degrada necessariamente se parte dell'informazione si perde (un viso viene riconosciuto anche se parte dell'immagine e' sbiadita); un computer, infine, non e' in grado di imparare dalle proprie esperienze, una rete neurale si' (il processo di addestramento puo' continuare all'infinito).
L'architettura del computer neurale e' in palese antitesi a quella del computer di von Neumann. Il secondo e' certamente piu' preciso e piu' veloce dell'uomo, eppure non viene considerato intelligente. La ragione e' che non e' in grado di compiere quelle funzioni che sono comuni a tutti gli umani e naturali per tutti, come riconoscere il volto di un amico o comprendere una situazione complessa. Una possibile obiezione a questa critica e' che si tratta soltanto di raffinare il software: costruendo software sufficientemente complesso, tutto diventera' possibile. Il computer neurale nasce invece dalla convinzione opposta: il computer di von Neumann non puo' compiere certe funzioni in quanto e' intrinsecamente inadeguato a compierle; soltanto un'architettura di elaborazione massicciamente parallela e distribuita puo' riuscire a competere con le prestazioni di un essere umano, per la semplice ragione che il paradigma che la mente usa non e' quello dell'elaborazione sequenziale di von Neumann ma quello, appunto, dell'elaborazione parallela e distribuita.
Sono state semmai notate analogie fra le reti neurali e l'olografia (inventata da Dennis Gabor nel 1954): tanto le une quanto l'altra sono trasparenti a una deformazione dell'informazione, tanto nelle une quanto nell'altra l'informazione non e' localizzata in un luogo unico, ma distribuita sull'intero sistema.
Le reti neurali vengono costruite collegando fra di loro migliaia di circuiti elettrici: un neurone e' rappresentato da un amplificatore e una sinapsi da una resistenza.
Le applicazioni tipiche delle reti neurali sono complementari a quelle dei sistemi esperti. Analogamente a cio' che accade nel cervello umano, nel cui emisfero sinistro vengono svolte mansioni analitiche e nel cui emisfero destro vengono svolte mansioni di riconoscimento, i sistemi esperti sono piu' utili in contesti analitici, mentre le reti neurali sono piu' utili in fasi di riconoscimento.
Il modello delle reti neurali si venne formando in maniera incrementale fra la fine degli anni Cinquanta e l'inizio dei Sessanta. Dopo la rete di McCulloch e Pitts, i cui neuroni potevano emettere soltanto uno o zero come output e le cui sinapsi avevano pesi fissi, il progresso piu' significativo fu rappresentato dalla rete di Wilfrid Taylor (1956), che esibiva un comportamento "associativo" coerente con il condizionamento pavloviano. Il Perceptron di Frank Rosenblatt (1957), che era sostanzialmente una rete adattativa (cioe' con sinapsi modificabili) di neuroni binari alla McCulloch-Pitts, fu la macchina che dimostro' come le reti neurali potevano essere addestrate a classificare un insieme di istanze in base alle loro caratteristiche comuni (o simili). Simile al Perceptron era anche l'Adaline (neurone lineare adattativo) di Widrow e Hoff (1960), che usava la regola Delta di apprendimento.
In parallelo si stava consolidando una visione "parallela" e "distribuita" del cervello che aveva avuto origine dagli studi di Luria e Lashley. La nuova nozione, dovuta principalmente a Hebb, era che le connessioni del cervello si potessero modificare nel tempo e che tale modifica avvenisse in funzione dell'esperienza.
Nel 1969 Marvin Minsky e Seymour Papert dimostrarono che percettroni e adaline non sono in grado di distinguere una T da una C e che esiste una limitazione intrinseca dovuta al modo in cui viene eseguita l'operazione booleana di OR esclusivo (l'OR esclusivo, o, meglio, la sua negazione, e' computazionalmente universale poiche' qualsiasi altra funzione puo' essere espressa come una combinazione di negazioni di OR esclusivi). Dimostrarono inoltre (o credettero di dimostrare) che gli strati nascosti non possono essere addestrati con certezza matematica.
Nel 1972 James Anderson propose il modello lineare del neurone analogico, il cosiddetto "associatore lineare" (linear associator). Le limitazioni del percettrone venivano evitate associando alle connessioni un insieme di pesi che potevano assumere valori continui: mentre il neurone binario trattava input e output che potevano valere soltanto uno o zero, il neurone di Anderson e' un neurone reale, che riceve in input dei valori qualsiasi, combina quei valori in un'espressione lineare ed emette un output che puo', di nuovo, avere un valore qualsiasi.
Alcuni algoritmi cercano di mettere in "competizione" fra di loro i vari neuroni in modo che essi gareggino per essere attivati. Questo fenomeno viene ottenuto consentendo le "inibizioni" e le "eccitazioni" di neuroni da parte di altri neuroni. Un'inibizione (o eccitazione) di tipo "forward" e' quella in cui il nodo dello strato "n", quando viene eccitato, inibisce (o eccita) un nodo dello strato "n+1". Un'inibizione (o eccitazione) di tipo "backward" e' quella in cui il nodo dello strato "n", quando viene eccitato, inibisce (o eccita) un nodo dello strato "n-1". Un'inibizione (o eccitazione) di tipo "laterale" e' quella in cui il nodo di un certo strato, quando viene eccitato, inibisce (o eccita) un nodo dello stesso strato.
I meccanismi di eccitazione e inibizione possono accelerare in maniera determinante il riconoscimento di un input. Per esempio, supponiamo che una rete neurale debba riconoscere caratteri maiuscoli e sia composta da tre strati: il secondo riconosce caratteristiche come la barra verticale (comune alle lettere B,D,E,F,H,I, etc.), la barra orizzontale (comune alle lettere A, E, F, H, etc.), la barra diagonale (comune a A, M, N, V, etc.), il semicerchio (C, D, G, etc.) e cosi' via; il terzo strato e' quello di output che riconosce le lettere. Il riconoscimento viene allora facilitato da eccitazioni e inibizioni di tipo "forward": il nodo relativo alla barra orizzontale puo' inibire i nodi relativi a C, N, V, etc, cosi' come il nodo relativo alla barra verticale puo' inibire i nodi relativi a A, V, etc.
Il modello di Teuvo Kohonen (1973) utilizza l'inibizione laterale per apprendere in maniera non supervisionata. Dato un certo input, un solo neurone del primo strato puo' essere attivato, quello che meglio risponde a tale input; quel neurone eccita i suoi "vicini", generando una forma di competizione moderata. Ne risulta un comportamento molto utile per classificare: la rete di Kohonen tende ad organizzare gli input in gruppi, ovvero tende a scoprire le proprieta' salienti dell'input. Parti della rete si specializzano di fatto nel riconoscere certe caratteristiche, e assumono pertanto il ruolo di "feature detector".
La teoria della "risonanza adattativa" e' stata proposta da Stephen Grossberg nel 1976 per rendere conto di come si formano le rappresentazioni interne di Craik a partire dall'esperienza. Grossberg riprende la teoria delle inferenze inconsce di Helmholtz, secondo cui le nostre percezioni sono influenzate dalle "vorstellung", dalle nostre "aspettative" di cosa debba essere percepito in una certa situazione. Grossberg riformula la teoria di Helmholtz supponendo l'esistenza di tre processi: (1) un processo evolutivo tramite cui viene appresa la vorstellung, ovvero una "learned feedback expectancy"; (2) un processo di feedback tramite cui a fronte di una percezione viene reperita la vorstellung piu' appropriata; (3) un processo competitivo tramite cui vorstellung e percezioni vengono conciliate. La percezione consiste cioe' nel conciliare i dati sensoriali con cio' che ci aspettiamo che essi siano. Grossberg esamina poi il fenomeno per cui la mente e' in grado di correggere un errore di percezione, anche se nessuna cellula del sistema nervoso sa che un errore e' stato commesso. Grossberg ipotizza che esistano connessioni reciproche fra due insiemi di cellule. Il suo algoritmo di correzione dell'errore (il processo competitivo di cui sopra) e' allora un algoritmo che, invece di prendere la differenza fra il segnale desiderato e il segnale attuale (come fanno gli algoritmi supervisionati), prende la somma fra il segnale "atteso" e quello attuale. La somma ha l'effetto di sopprimere i segnali deboli e di esaltare i segnali forti: se il segnale attuale e quello atteso sono coerenti, la loro somma e' maggiore del segnale attuale e ha la stessa forma; ovvero il segnale viene esaltato (viceversa, se i due segnali non sono coerenti, la loro somma da' luogo a un segnale ridimensionato). Se i segnali di feedback e di input continuano a rinforzarsi a vicenda, cio' da' origine a uno stato dinamico di "risonanza adattativa" che si estende nel tempo: questo e' per Grossberg il funzionamento degli stati cognitivi. Quest'algoritmo di risonanza e' non lineare, non locale e non stabile.
A Grossberg (1987) si deve anche una formulazione matematica del condizionamento pavloviano. La formula di Grossberg viene costruita sommando i contributi di tre termini: un termine che esprime la crescente dipendenza nel tempo dell'attivazione del neurone dallo stimolo (la derivata nel tempo dell'attivazione dev'essere costante); un termine che esprime la dipendenza decrescente nel tempo dell'attivazione del neurone una volta che lo stimolo venga rimosso (la derivata nel tempo dell'attivazione dev'essere pari all'attivazione stessa moltiplicata per una costante negativa, in modo da generare una curva tendente a zero); e un termine che esprime la dipendenza dell'attivazione del neurone dagli stimoli generati dall'attivazione di altri neuroni (la derivata dev'essere pari alla somma delle attivazioni degli altri neuroni moltiplicate ciascuna per il peso della propria sinapsi). Si ottiene cosi' un'equazione differenziale del primo ordine che esprime l'andamento dell'attivazione del neurone in funzione dello stimolo e degli altri neuroni:
.DS L d -- attiv(t) = -A x attiv(t) + S(t) + W1 x attiv1(t) + W2 x attiv2(t) +.... dt .DE
Al tempo stesso si puo' scrivere anche un'altra equazione differenziale che esprima l'andamento nel tempo dei pesi delle connessioni come somma di due fenomeni elementari: il "dimenticare" (espresso come sopra) e la legge di Hebb (espressa come prodotto delle attivazioni dei due neuroni):
.DS L d -- Wij(t) = -A x Yj(t) + B x Yi(t) x Yj(t). dt .DE
Per ottenere un apprendimento rapido si possono combinare diversi modelli. La "counter propagation" consiste per esempio nel configurare la rete con tre strati: uno strato di input, uno strato di Kohonen e uno strato di Grossberg. Lo strato di Kohonen esegue un apprendimento non supervisionato, ovvero costruisce una classificazione degli input. Lo strato di Grossberg esegue invece un apprendimento supervisionato, ovvero fa corrispondere quelle classi empiriche con gli output desiderati. In altre parole lo strato di Kohonen rinforza le connessioni nascoste e lo strato di Grossberg rinforza le connessioni di output.
Nel 1954 Brian Cragg e Nevill Temperley notarono una singolare similitudine fra gli spin degli atomi e gli stati dei neuroni e postularono che le reti di neuroni esibissero proprieta' simili ai lattici di cristallo, nei quali ogni atomo interagisce via il suo spin con gli atomi vicini e alla fine si genera un equilibrio stabile. Nel 1975 David Sherrington e Scott Kirkpatrick scoprirono un nuovo materiale magnetico e lo denominarono "spin glass". La proprieta' piu' significativa dello spin glass e' quella di assomigliare a una rete neurale in cui i pesi siano distribuiti simmetricamente. Fu da questa similitudine che John Hopfield (1982) trasse l'idea per il suo modello di appredimento non supervisionato. Nelle reti di Hopfield esiste un solo strato di neuroni ma ciascun neurone e' connesso con tutti gli altri neuroni; ogni neurone e' binario e le connessioni sono simmetriche (cioe' quella fra il neurone X e il neurone Y ha peso uguale a quella fra Y e X). Le reti di Hopfield memorizzano l'informazione che apprendono in configurazioni che risultano "stabili dinamicamente" (o "ultrastabili") nel modo in cui Ross Ashby (1950) aveva previsto che cio' avvenisse. Ogni ricordo e' un "minimo locale" per una "funzione energia" (calcolata in maniera assai simile all'energia potenziale della Fisica) che puo' soltanto decrescere, in perfetta analogia con gli stati di equilibrio di un particolare sistema fisico, come appunto lo spin glass, la cui dinamica sia dominata dall'attrazione verso un numero molto elevato di stati localmente stabili. La struttura a minimi locali consente anche di rendere conto della capacita' di gestire informazioni incomplete o incorrette: ogni deviazione dai minimi locali tende naturalmente a scomparire poiche' viene appunto "attratta" verso tali minimi fino a cadervi dentro. Prove sperimentali hanno stabilito che una rete neurale di Hopfield puo' contenere un numero di ricordi pari a circa il 15% della sua capacita'.
La macchina di Boltzman ideata da Geoffrey Hinton e Terrence Sejnowsky (1985) migliora le reti di Hopfield utilizzando una procedura di Monte Carlo per evitare i "minimi locali" dell'algoritmo di Hopfield. La macchina di Boltzman si rifa' ad un'altra analogia con un fenomeno fisico, quello della tempratura dei metalli: per temprare un metallo lo si riscalda a temperature molto elevate (in tal modo si "liberano" gli atomi del metallo) e poi si riduce gradualmente la temperatura (in tal modo gli atomi hanno tempo di sistemarsi nella configurazione di energia minima). Analogamente all'inizio tutte le sinapsi della rete di Boltzman hanno pesi casuali. Man mano che l'apprendimento procede la probabilita' che uno di essi cambi valore e' espressa dalla funzione di Boltzman, la quale fa in modo che l'energia della rete (espressa come la somma di tutti i pesi delle connessioni fra neuroni attivi) tenda a diminuire. Il problema di determinare le connessioni nascoste viene risolto pertanto con un algoritmo legato alle probabilita' di attivazione, invece che alle attivazioni. Una costante di questa formula svolge il ruolo che in termodinamica viene svolto dalla temperatura. Facendo diminuire progressivamente tale costante si ottiene l'effetto analogo a quello della tempratura dei metalli: le connessioni si stabilizzano in un minimo globale.
Una variante e' la macchina di Cauchy, ideata da Harold Szu, che utilizza un algoritmo piu' efficiente e rappresenta probabilmente il vertice tecnologico per le reti non supervisionate.
Come Anderson aveva insegnato, i neuroni reali devono essere trattati in maniera analogica, ovvero simulando output che possono valere qualsiasi numero reale. Estendendo la regola di Adaline al caso analogico secondo un'idea di Rosenblatt, David Parker (1981) e David Rumelhart (1986) pervennero all'algoritmo standard dell'apprendimento supervisionato, quello di "back propagation", che, dato un percettrone a molti strati, calcola l'errore in ogni nodo e lo propaga all'indietro aggiustando i pesi degli strati intermedi per minimizzarlo. In tal modo vennero definitivamente risolti i problemi di come assegnare valori agli strati nascosti, di calcolare l'OR esclusivo e di riconoscere una T da una C. La regola di back propagation sembra avere anche plausibilita' neurobiologica: Richard Anderson e David Zipser sono riusciti nel 1987 a costruire un percettrone a tre strati che simula parte del sistema visivo del cervello delle scimmie. Ma altri sostengono che ogni modello che preveda elaborazione "non locale" (ovvero che preveda di prendere in considerazione piu' dei semplici neuroni pre-sinaptici e post-sinaptici) non puo' essere valido dal punto di vista fisiologico.
La tecnologia attuale e' ancora assai lontana dal realizzare una rete neurale delle dimensioni e della complessita' del cervello umano. I computer neurali piu' capienti contengono ventimila neuroni, ma possono realizzare poche interconnessioni per neurone. Il cervello del verme, per esempio, contiene soltanto mille neuroni, ma, grazie a una complessita' di connessioni infinitamente maggiore, e' in grado di compiere operazioni che nessun computer neurale saprebbe compiere. Il cervello umano contiene circa cento miliardi di neuroni e circa duecentomila miliardi di sinapsi.