lunedì 25 agosto 2008

Platone e l'informatica

Se, dunque, sempre la verità degli esseri è nella nostra anima, l'anima dovrà essere immortale. Sicché bisogna mettersi con fiducia a ricercare ed a ricordare ciò che attualmente non si sa: questo è infatti ciò che non si ricorda.

Socrate in Menone


Uno degli snodi fondamentali della filosofia occidentale è sicuramente il Menone di Platone. E nel Menone di Platone, uno degli snodi fondamentali è il dialogo con lo schiavo, in cui Socrate porta lo schiavo a derivare la lunghezza della diagonale di un quadrato - più precisamente: lo porta a costruire un quadrato di area doppia rispetto ad un quadrato dato.

L'argomento successivo di Platone, presentato da Socrate, è il seguente: lo schiavo ha dedotto, senza che Socrate gliela esplicitasse, la soluzione del problema. Quindi la soluzione del problema era già in lui. Quindi le idee preesistono l'individuo, e il conoscere equivale al ricordare.

Cambiamo scenario. In informatica si distingue fra due maniere in cui un programma contiene informazioni: dichiarativa o procedurale. Nel primo modus, un'informazione è registrata esplicitamente nel programma. Per esempio, un programma in cui sia registrata una lista di capitali sa, in maniera dichiarativa, che la capitale della Germania è Berlino. Da qualche parte nel programma c'è una funzione e questa funzione contiene come valore della nazione Germania la città Berlino. La maniera procedurale invece è diversa: una calcolatrice sa, in maniera procedurale, che 12 x 12 = 144. Ovviamente questa informazione non è registrata da nessuna parte nella calcolatrice: invece è registrata la maniera in cui ottenere tale risultato.

Trasportando questo ragionamento all'uomo. Io so in maniera dichiarativa che il compleanno di mio fratello è il 27 settembre, e conosco in maniera procedurale i massimi della funzione sin²(x). Ragionando un po', si capisce come i risultati matematici siano spesso registrati in maniera procedurale nella mente.

Se Platone avesse conosciuto o formalizzato questa differenza, avrebbe notato che quello che dimostra Socrate non è la preesistenza delle idee, ma la possibilità umana di accedere alla propria memoria procedurale.

E io aggiungo: questa possibilità tutta umana è, finora, negata ai computer.

11 commenti:

Anonimo ha detto...

In ogni caso la domanda cruciale per Platone e': lo schiavo ha *imparato* a derivare la soluzione "trova il quadrato di area doppia", o ha semplicemente *ricordato*, come si deriva? (quel che tu chiami "accedere alla propria memoria procedurale").
Secondo me il punto che "sfugge" a Platone e' il concetto di apprendimento che, con quello di "scoperta", non puo' essere ricondotto alla sola memoria: non almeno nel solo senso del "pescare dalla —", bisogna aggiungerci come minimo il "mandare a —".
La memoria procedurale, come dici, ce l'hanno anche i computer. E' l'apprendimento che ancora gli manca. Almeno alle macchine di Von Neumann tradizionali che abbiamo sulla scrivania... :)

Bluebeardburns ha detto...

Molto interessante... ma non mi pare che una simile dicotomia sia in voga tra gli studiosa della memoria dichiarativa. Sarebbe interessante capire se i due processi hanno basi molto differenti.

Lap(l)aciano ha detto...

@hronir: Per essere preciso, penso che l'apprendimento dell'uomo sia, in effetti, un'estensione della sua memoria procedurale implementata tramite una rete neurale con un meccanismo di ricompensa. Ovviamente, la complessità della rete neurale fa si che l'apprendimento non sia così semplice, soprattutto se riguarda temi per cui la mente umana non è stata costruita, come le diagonali dei quadrati.

Inoltre, la grande differenza con il computer non mi sembra la mancanza di apprendimento di capacità. Il computer apprende qualsiasi abilità, se viene dotato del programma adatto e di sufficiente potenza di calcolo. E l'uomo il programma adatto ce l'ha implementato alla nascita, per non parlare della potenza di calcolo.

Un'altra nota sulla differenza uomo-macchina: i programmi sono stati fatti da un esterno, che quindi ne conosce la struttura, e con essa la memoria procedurale. La memoria procedurale è registrata in maniera dichiarativa da qualche parte. Nel caso dell'uomo, invece, non c'è un "manuale di istruzioni del cervello". E il grande compito dei cognitivisti è quello di 1) scoprire una parte di tale memoria procedurale, per lo meno per i meccanismi di base e 2) scoprire il programma di base con cui tale memoria viene estesa. Aggiungerei anche: 3) scrivere tali scoperte in maniera dichiarativa e comprensibile. :-)

@bluebeardburns: hronir sa da dove prendo tutte queste ispirazoni, ma tu forse no: "Gödel, Escher, Bach" di Douglas Hofstädter. Se te lo trovi incomincia piano piano a leggerlo, è illuminante, anche se un po' prolisso. Poi: certamente i meccanismi hanno basi differenti. La domanda interessante è scoprire se c'é un denominatore comune fra tutte le memorie dichiarative della mente e un altro fra tutte le sue memorie procedurali.

Anonimo ha detto...

Forse non mi sono espresso bene.
Parlando di memoria, si intende sempre, mi pare, un'attività di "ripescaggio" (re-collect), tanto nel caso della memoria dichiarativa, quanto in quella procedurale.
Il punto che volevo sottolineare, invece, è che non mi pare affatto ovvio che nel caso dello schiavo di Socrate si sia in una simile circostanza. Davvero lo schiavo già *sapeva* (pure in maniera procedurale, non dichiarativa, ma secondo me non è questo il punto) la dimostrazione, e l'ha semplicemente "richiamata alla mente"? O l'ha, più verosimilmente, *appresa*?
Forse intendete dire che anche i meccanismi che soggiacciono all'apprendimento, alla scoperta, sono comunque di tipo "recollect"? Forse in maniera simile a quel che si pensa avvenga col sistema immunitario (immunità specifica), in cui, se ricordo bene, esistono "già" tutti gli anticorpi "possibili" e l'arrivo di un antigene semplicemente "attiva" quello giusto? Ma possiamo davvero chiamare "memoria" un meccanismo (celebrale) simile, in cui semplicemente "attiviamo" (per la prima volta) i "circuiti neuronali della diagonale del quadrato"? Chiamerei memoria solo quando *ri*attivo questi circuiti perchè avevo verificato la loro "utilità" (distinzione fra apprendimento/scoperta e richiamo dalla memoria).
O no?

Lap(l)aciano ha detto...

Tornando coi piedi per terra: quello che io volevo dire è semplicemente che Platone confonde l'apprendimento da parte dello schiavo della possibilità di accedere ad una parte di memoria procedurale che lui non conosceva (o della possibilità di estendere la sua memoria procedurale al campo matematico) con la preesistenza delle nozioni nella mente dello schiavo.

LongBeardCux ha detto...

Secondo me in questa discussione si stanno intrecciando due temi, da un lato la contrapposizione innatismo/empirismo, dall'altro la differenza tra memoria procedurale e dichiarativa.

Il problema innatismo/empirismo ha, credo, soluzioni diverse per i due tipi di memoria.

Sull'innatismo:
-La "memoria" procedurale ha senz'altro una forte base innata.
-Sono state teorizzate anche memorie dichiarative innate, mi riferisco in particolare all'idea dell'inconscio collettivo di Jung. Personalmente non do molto credito a queste teorie, ma lo studio transculturale dei simboli e del folklore sembra portare qualche prova al riguardo.
In particolare credo che, se c'è qualche "contenuto" innato, questo consiste nella corrispondenza tra nostri stati corporei e/o emotivi e determinati colori, suoni, sensazioni tattili, etc.

Sull'empirismo:
-La "memoria" dichiarativa è quella più probabilmente "empirica", appresa; credo si basi soprattutto su associazioni. Per quanto i paradigmi classici di studio della memoria abbiano sempre previsto la metafora del "magazzino", che prevede il "re-collect", si è visto che anche sulla memoria dichiarativa agiscono non pochi meccanismi di costruzione e ricostruzione. Anche questa memoria insomma si appoggia ad un certo punto a delle "procedure" di recupero. Inoltre le procedure di recupero agiscono sulle "tracce mnestiche", quelle "fisse" del magazzino, possono anche cambiarle.
-La memoria procedurale, intesa come metodo per arrivare a determinati dati (ma ho delle difficoltà a comprendere in che accezione è usato in questa discussione questo termine) sembrerebbe non avere particolari basi empiriche. In realtà le forme del ragionamento cambiano molto come minimo nei primi anni di vita di ogni individuo. In particolare bisogna qui rifarsi agli studi di Jean Piaget e alla sua epistemologia genetica. Vi dico subito che tirando lui in ballo si esce almeno un po' dall'ambito della memoria, per finir dritti sul funzionamento del pensiero

Lap(l)aciano ha detto...

Ciao Daniele,

per chiarirti in che maniera usiamo il termine memoria (o più precisamente: conoscenza) procedurale.

Una persona a digiuno di fisica ha una conoscenza puramente procedurale della forza di gravità: non ha un termine corrispondente a questo fenomeno che rimandi ad una spiegazione del fenomeno stesso.

Pur tuttavia, in (quasi) ogni momento della sua vita si comporta come se conoscesse la forza di gravità: non si butta dai grattacieli, sa misurare la forza con cui lanciare un pallone etc...

Questo tipo di conoscenza implicita la chiamiamo conoscenza procedurale.

Quello che io asserisco è che una delle differenze sostanziali fra le macchine e gli esseri intelligenti è che essi sono in grado di costruire pezzi di conoscenza dichiarativa sfruttando la loro conoscenza procedurale dei fenomeni.

LongBeardCux ha detto...

Ciao Stefano,
mi sa che ancora non capisco bene il tuo discorso, perchè in realtà quella che tu dici non mi sembra una differenza davvero sostanziale, nel senso che mi sembra una differenza derivata: una differenza derivata per le macchine dalla mancanza di uno scopo per così' dire autonomo, una differenza derivata dalla mancanza di un corpo, e del sentire delle relazioni tra corpo e ambiente.

Correggimi se sbaglio, mi avventuro un po' barbaramente nel tuo campo, ma la risoluzione di almeno un certo tipo di funzioni consiste nell'applicare un procedura e nell'arrivare ad un risultato, giusto? Esse sono procedure, che portano a risultati dichiarativi, al punto che cambiando delle variabili in una formula (che vedo come una procedura) abbiamo risultati sempre diversi (le "dichiarazioni"). Ora, i computer sono straordinariamente più veloci di noi dell'eseguire questo tipo di operazioni, ma per loro sono tutte procedure e dichiarazioni vuote, senza senso, perchè derivate da delle regole eteronome, imposte loro. Essi non hanno infatti uno scopo autonomo, ad esempio autoconservativo, come abbiamo invece noi verso il nostro corpo

Lap(l)aciano ha detto...

Ciao Daniele,

la tua osservazione è così intelligente, che ho deciso di dedicarvi un post intero sul mio blog di matematica. In matematica è presente, almeno in parte, la stessa dicotomia...

Quanto a noi uomini, non so. Ci penso un po' su e poi ti faccio sapere.

LongBeardCux ha detto...

Ne sono onorato, spero di riuscire a capirlo: trovo molto difficile seguirti sull'altro blog, non lo leggo spesso; in campo matematico mi ritorna l'errore "Too many informations missing" ^^
A presto

Anonimo ha detto...

Prendiamo la programmazione a oggetti, non si basa forse sulle idee di Platone?