Con «pensiero computazionale» generalmente si fa riferimento al problem solving, in realtà questa è solo una delle componenti del pensiero. Se è vero che il pensiero in generale si radica nella biologia, allora ogni forma di pensiero può essere definita «computazionale», dal momento che quest’ultimo termine indica tutto ciò che si basa su computazioni, ovvero calcoli, analisi e algoritmi. Nelle macchine, compresa quella umana, la risoluzione di problemi non è l’unica forma di pensiero che richiede una computazione.
IN BREVE
AUMENTO DELL’INCLUSIONE
Con «pensiero computazionale», secondo la sua definizione standard, si intende il processo mentale che ci consente, o consente alle macchine, di identificare problemi, scomporli e risolverli. Classicamente tale forma di pensiero viene fatta coincidere con la capacità di risolvere un problema facendo uso di una particolare strategia ad hoc. «Pensiero computazionale» secondo Jeannette Wing significa «pensare in modo algoritmico, a livelli multipli di astrazione». La logica del pensiero computazionale viene tipicamente utilizzata per realizzare le intelligenze artificiali (IA) fin dalla loro nascita, si pensi ai cosiddetti «alberi di ricerca». Le IA difatti sono spesso programmate in modo tale da 1. Identificare il problema (astrazione); 2. Realizzare una strategia (automazione); 3. Metterla in atto e analizzarla al fine di raggiungere lo scopo (analisi). Questi tre step sono quelli che generalmente vengono fatti rientrare nella descrizione di «pensiero computazionale», eppure quando si parla di «pensiero» non ci si può limitare solo al problem solving, né quando si parla di «computazione».
Oltre il problem solving
Come ci insegnano molti degli esperimenti condotti a proposito del test di Turing (si pensi alla «stanza cinese» di John Searle), vi è una differenza tra «intelligenza» in senso stretto e «pensiero». La prima richiede il secondo, il secondo include la prima, ma non è possibile far nettamente coincidere le due cose. Le intelligenze artificiali utilizzano sicuramente una forma di pensiero per trarre le loro conclusioni, il pensiero computazionale per l’appunto, ciò non significa però che tale forma di pensiero debba essere limitata esclusivamente alla risoluzione meccanica di problemi. «Computazionale» indica tutto ciò che si basa su computazioni, ovvero calcoli, analisi e algoritmi, e nelle macchine, compresa quella umana, la risoluzione di problemi non è l’unica forma di pensiero che richiede una computazione di base.
Computazioni su rappresentazioni
Secondo la scienza cognitiva classica, i processi mentali umani in senso lato sono descrivibili come «computazioni su rappresentazioni», ovvero calcoli e analisi su astrazioni della realtà. Difatti, quando ciascuno di noi pensa, non fa altro che interconnettere o distinguere tra loro diversi elementi, modificandoli, plasmandoli e adattandoli. La parola «treno» suscita in ciascuno di noi un diverso insieme di concetti associati: suoni, colori, odori, ricordi… Ognuno crea il suo sistema di rappresentazioni per associazione tra alcuni elementi e distinzione da altri (il treno non è una macchina, ma entrambi sono mezzi di trasporto). Lo stesso processo viene implementato nelle IA al fine di ricreare una forma di pensiero che sia il più simile possibile a quella umana. Ne derivano forme di pensiero simboliche che utilizzano frame, script e reti semantiche per rappresentare la realtà, tutte fondate sulla computazione.
Tuttavia, affinché il termine «pensiero computazionale» riesca davvero a spiegare il significato di «pensiero», è necessario che estenda la sua definizione ad altre forme di ragionamento diverse dalla sola risoluzione di problemi ed astrazione. Computazioni e calcoli non sono caratteristici del solo problem solving, né del solo pensiero simbolico, riguardano anche altre componenti del pensiero, ad esempio la memoria e l’apprendimento, che si fondano sulle rappresentazioni, ma al tempo stesso le spiegano. Il pensiero con tutte le sue componenti, per quanto sembri astratto, si basa in realtà su un substrato biochimico ed elettrofisiologico regolato da leggi fisiche e matematiche. In quest’ottica sarebbe meglio affermare che i processi mentali sono «rappresentazioni su computazioni» e non il contrario.
Pensiero computazionale e coding
Lo stesso substrato su cui si basa il pensiero umano può essere riprodotto nelle IA più o meno fedelmente. Le intelligenze artificiali che fanno uso di script, di frame e di reti semantiche, basano il proprio funzionamento su rappresentazioni, ma un’altra categoria di IA cerca invece di emulare il pensiero umano non sulla base di simboli, bensì sulla base del funzionamento neuronale che vi è alla base. Stiamo parlando delle reti neurali artificiali (ANN), che tuttavia, per quanto ricordino vagamente il funzionamento cerebrale, vi si discostano di molto. Simulazioni neurocomputazionali più realistiche, che fanno uso delle regole riportate nei prossimi paragrafi, possono essere utilizzate per dimostrare che il pensiero, per definizione, è computazionale. Dunque «pensiero computazionale» non dovrebbe coincidere con la sua sola definizione standard che lo descrive come processo mentale che ci consente di risolvere problemi. Questo perché non solo il problem solving è un meccanismo basato sulla computazione, ma l’intero pensiero, in ogni sua forma, lo è. L’uomo è una macchina finemente programmata, ed in quanto tale, «computata»: il pensiero è solo una delle manifestazioni del «codice di programmazione».
IL SUBSTRATO DEL PENSIERO COMPUTAZIONALE
Difficile credere che il nostro pensiero e la nostra coscienza si basino su leggi fisiche, chimiche e matematiche, ma la verità è che siamo frutto della nostra memoria e questa si radica nella biologia, governata dalla natura, ed in quanto tale, governata da computazioni fisiche ed elettrochimiche. Segue una breve descrizione (piuttosto semplicistica) delle componenti fondamentali del sistema neurale al fine di evidenziarne il meccanismo computazionale di base. Cominciamo dal neurone, la tipica unità di controllo cerebrale. È stato visto che anche nei neuroni, come in altre cellule del corpo, vi è una differenza di potenziale elettrico tra i due lati della membrana cellulare. Tale differenza viene chiamata potenziale di membrana e viene utilizzata per trasmettere ed integrare segnali, spesso anche su grandi distanze. Il potenziale di membrana a riposo si aggira intorno a \(-65mV\), il che significa che il potenziale all’interno della cellula è più negativo di quello esterno. I neuroni possono quindi essere visti come componenti di un circuito elettrico (verrà presentata più avanti la similitudine), difatti i cambiamenti nelle concentrazioni di ioni, all’interno o all’esterno della cellula, a volte alterano significativamente le proprietà elettriche e di segnalazione della cellula stessa.
La membrana neuronale è la parete di separazione che distingue lo spazio intracellulare da quello extracellulare. La matrice intracellulare (il citoplasma) e quella esterna contengono concentrazioni differenti di vari ioni. Alcuni di essi hanno un’importanza fondamentale nelle cellule nervose: vi sono cationi carichi positivamente, quali sodio (\(Na^{+}\)), potassio (\(K^{+}\)), calcio (\(Ca^{2+}\)) e magnesio (\(Mg^{2+}\)), e anioni caricati negativamente come il cloruro (\(Cl^{-}\)). Vi è tipicamente una maggiore concentrazione di sodio extracellulare rispetto al sodio intracellulare e viceversa per il potassio, fattore da cui dipende il suddetto potenziale di membrana. La membrana cellulare infatti è composta da un doppio strato fosfolipidico che la rende impermeabile, e tale impermeabilità può causare un accumulo netto di ioni positivi da un lato e ioni negativi dall’altro. Questo può portare alla formazione di una differenza di potenziale tra i due lati della membrana, come fossero due piastre di un condensatore elettrico.
Canali e pompe
Abbiamo detto che la membrana cellulare che ricopre il neurone è impermeabile, quindi gli ioni non possono passarvi attraverso. Tuttavia abbiamo anche detto che possono esserci dei cambiamenti nelle concentrazioni ioniche all’esterno o all’interno della cellula. Difatti vi sono alcuni elementi proteici transmembrana che hanno proprio la funzione di far transitare particolari ioni tra i due lati del confine. Stiamo parlando dei cosiddetti canali ionici, ovvero pori nel doppio strato lipidico, costituiti da proteine (anch’esse programmate dal codice genetico per ricoprire un ruolo specifico), che possono consentire a determinati ioni di fluire attraverso la membrana. Possono essere attivi o passivi. I canali attivi nello specifico controllano il flusso degli ioni per mezzo della loro apertura o chiusura, come fossero cancelli. L’apertura e la chiusura possono dipendere dal potenziale di membrana, dalle concentrazioni ioniche o dalla presenza di ligandi legati al canale stesso: i neurotrasmettitori.
Anche le pompe ioniche sono strutture proteiche transmembrana, ma a differenza dei canali, trasferiscono attivamente ioni e molecole specifici dentro e fuori la cellula. Le particelle che transitano dai canali sono libere di muoversi da una regione all’altra dello spazio in funzione della loro concentrazione nella soluzione cellulare. Le pompe, al contrario, pompano ioni contro il gradiente di concentrazione, per questo richiedono l’utilizzo di energia. Ad esempio, la pompa sodio-potassio spinge gli ioni \(K^{+}\) nella cellula e gli \(Na^{+}\) fuori. Per ogni due ioni \(K^{+}\) pompati nella cellula, vengono pompati tre ioni \(Na^{+}\) fuori. Questo esercizio richiede energia, che viene fornita dall’idrolisi dell’adenosintrifosfato (ATP), una molecola in grado di immagazzinare e trasportare energia chimica all’interno delle cellule.
La codifica dei principi fisici
Il neurone appare quindi come una complessa struttura elettrochimica all’interno della quale vi sono continui spostamenti di ioni. Volendo creare un modello microscopico del pensiero computazionale in senso ampio, non si può prescindere dalla comprensione dei principi fisici che governano questi spostamenti. La base dell’attività elettrica dei neuroni sta proprio nel movimento delle particelle all’interno del citoplasma e attraverso i canali ionici della membrana cellulare. Quando vi sono sia campi elettrici che concentrazioni di ioni non uniformi, il movimento degli ioni è descritto da una combinazione di electrical drift e diffusione, chiamata elettrodiffusione. Segue la descrizione delle componenti del moto.
Forza elettromotrice. Quando gli ioni sono caricati elettricamente, esercitano forze e subiscono forze da altri ioni. La differenza nell’energia potenziale tra due punti qualsiasi nel campo, qualora ci sia, è chiamata differenza di potenziale, indicata con \(V\) e misurata in Volt. Un semplice esempio di campo elettrico è quello che si può creare in un condensatore a piastre parallele. La differenza di potenziale tra le due piastre genera una forza elettromotrice che agisce sugli ioni e gli sposta nello spazio;
Diffusione. Le singole particelle che si muovono liberamente sembrano muoversi casualmente, un fenomeno noto come moto browniano. In realtà, nel comportamento di grandi gruppi di particelle, si possono osservare regolarità statistiche negli spostamenti. Ad esempio, la diffusione è il movimento delle particelle dalle regioni in cui sono altamente concentrate a regioni in cui hanno una bassa concentrazione. Ad esempio, quando una goccia di inchiostro cade in un bicchiere d’acqua, inizialmente si forma un’area di colore ad alta concentrazione, ma nel tempo questa si espande fino a quando l’acqua non è uniformemente colorata. Fick nel 1855 fu il primo a dare una descrizione empirica del fenomeno mettendo in relazione il flusso molare, \(J_{X,diff}\), frutto della diffusione di una molecola \(X\), al suo gradiente di concentrazione \(\frac{d[X]}{dx}\), dove \(D_{X}\) corrispondeva al coefficiente di diffusione della molecola \(X\):
$$ J_{X,diff}=-D_{X}\frac{d[X]}{dx} $$
Electrical drift. I neuriti (gli assoni) contengono ioni \(K\) caricati positivamente e ioni \(Cl\) caricati negativamente. Sotto l’effetto della differenza di potenziale che si crea tra le due estremità, gli ioni potassio tendono a spostarsi verso il terminale positivo e gli ioni cloruro verso quello negativo. In questo modo avvengono diverse collisioni tra le particelle \(K^{+}\) e \(Cl^{-}\), impedendo loro di accelerare. Il risultato è che entrambi gli ioni viaggiano a una velocità media (drift velocity) che dipende dall’intensità del campo:
$$ J_{X,drift}=-\frac{D_{X}F}{RT}z_{X}[X]\frac{dV}{dx} $$
dove \(z_{X}\) è la valenza dello ione (la carica dello ione misurata come multiplo della carica elementare). Le altre costanti sono: \(R\), la costante del gas; \(T\), la temperatura in kelvin; \(F\), la costante di Faraday, che è la carica per mole di ioni monovalenti.
Membrana come circuito
L’elettrodiffusione risulta finalmente dall’unione delle componenti precedenti. Il flusso totale di uno ione \(X\), \(J_{X}\), è uguale alla semplice somma dei flussi di diffusione e drift:
$$ J_{X}=J_{X,diff}+J_{X,drift}=-D_{X}(\frac{d[X]}{dx}+\frac{z_{X}F}{RT}[X]\frac{dV}{dx}) $$
Questa equazione venne sviluppata da Nernst e Planck. Prese il nome di equazione di Nernst-Planck e fu la prima a descrivere in generale come gli ioni carichi si muovono in soluzione nel campo elettrico. Possiamo vedere l’elettrodiffusione come un fenomeno in cui sono presenti sia gradienti di tensione che di concentrazione, come normalmente avviene nei canali ionici. La quantità di carica positiva che scorre per unità di tempo attraverso un elemento del conduttore (un canale ionico o un neurite) è chiamata corrente e viene misurata in Ampere. Viene definita densità di corrente (\(I_{X}\)) invece la quantità di carica che scorre per unità di tempo attraverso una sezione trasversale del conduttore (il neurite nel nostro caso):
$$ I_{X}=Fz_{X}J_{X} $$
In condizioni di equilibrio, è possibile misurare una differenza di potenziale stabile tra i due lati della membrana. Tale differenza indica la permeabilità specifica per ciascuno ione, e per questo motivo prende il nome di «potenziale di equilibrio» per quello ione. L’equazione di Nernst ci permette di calcolare il potenziale di equilibrio per ciascuna particella \(X\):
$$ E_{X}=\frac{RT}{z_{X}F}\ln{\frac{X_{[out]}}{X_{[in]}}} $$
dove \([X]_{in}\) e \([X]_{out}\) sono le concentrazioni intracellulari ed extracellulari di \(X\), ed \(E_{X}\) è il potenziale di equilibrio, detto anche potenziale di Nernst, per quel particolare ione. Ognuna delle forze e delle componenti descritte fino ad ora ricorda un possibile elemento di un circuito elettrico. La figura mostra come le parti descritte fino a questo momento si possono unire per formare un vero e proprio circuito equivalente di un piccolo pezzo di membrana.
Come i neuroni si parlano
Nei paragrafi precedenti abbiamo spiegato come funziona la propagazione «passiva» del segnale lungo il neurite; parliamo adesso di potenziale d’azione, il mezzo attraverso il quale il neurone comunica attivamente con le altre componenti del sistema. Trattasi di un impulso caratterizzato da un rapido aumento del potenziale di membrana (depolarizzazione) seguito da un ritorno più graduale verso il potenziale di riposo (ripolarizzazione). Quest’ultimo può essere seguito a sua volta da una fase di post-iperpolarizzazione in cui il potenziale di membrana scende al di sotto del potenziale di riposo prima tornare finalmente al suo resting state. La principale differenza tra la propagazione dei potenziali d’azione e la propagazione passiva dei segnali è che i potenziali d’azione sono rigenerativi, quindi la loro grandezza non decade durante la propagazione. Hodgkin e Huxley furono i primi a descrivere quantitativamente il meccanismo appena citato. Il modello HH, dalle iniziali dei due ricercatori, era caratterizzato da due tipi di canali attivi presenti nell’assone del calamaro gigante: il canale del sodio e quello del potassio. Si basava quindi su un circuito elettrico equivalente in cui vi erano tre tipi di corrente ionica: una corrente-sodio (\(I_{Na}\)), una corrente-potassio (\(I_{K}\)) e una corrente detta leak current (\(I_{L}\)), costituita perlopiù da ioni cloruro. L’entità di ciascun tipo di corrente veniva calcolata tramite il prodotto tra la forza motrice dello ione e la conduttanza di membrana per quello ione:
$$ I_{Na}=g_{Na}(V-E_{Na}) $$
$$ I_{K}=g_{K}(V-E_{K}) $$
$$ I_{L}=g_{L}(V-E_{L}) $$
dove \(g_{Na}\), \(g_{K}\) e \(g_{L}\)indicano rispettivamente le conduttanze di sodio, potassio e leak current, mentre \(E_{Na}\), \(E_{K}\) ed \(E_{L}\) indicano i corrispondenti potenziali di equilibrio.
- La corrente-potassio. Dopo aver prima isolato la corrente-potassio, Hodgkin e Huxley calcolarono la conduttanza utilizzando l’equazione di \(I_{K}\). Osservarono che, dopo la depolarizzazione, la conduttanza saliva ad un valore costante. Questo aumento della conduttanza era indicato come «attivazione». Rimaneva al suo valore di picco fino a quando la tensione non veniva abbassata fino a fermarsi: a quel punto decadeva in modo esponenziale. La caduta della conduttanza era chiamata «disattivazione»;
- La corrente-sodio. Vi era una principale differenza con la conduttanza del potassio. Quella del sodio raggiungeva un picco e poi decadeva anche mentre la tensione rimaneva in una fase di depolarizzazione sostenuta. Questa riduzione della conduttanza veniva definita «inattivazione», a differenza della precedente «disattivazione»;
- Leak current. Mentre il potassio era una parte importante della corrente ionica non sodica, altri ioni oltre al sodio trasportavano la corrente attraverso la membrana. Difatti Hodgkin e Huxley scoprirono che, al potenziale di equilibrio del potassio, scorreva ancora corrente non sodica. Questa corrente non poteva essere dovuta agli ioni di potassio poiché la forza motrice \(V – E_{K}\) era zero. Così i due ricercatori pensarono fosse dovuta ad una miscela di ioni che chiamarono leak current. Il potenziale di azione presentato da Hodgkin e Huxley fu il risultato della combinazione di queste tre componenti.
Torniamo sul pensiero
Come tutto questo si ricollega al pensiero? Possiamo vedere le scariche elettriche del potenziale di azione come un codice morse che comunica con altre sinapsi: queste, in funzione della segnalazione che ricevono, rilasciano neurotrasmettitori secondo leggi probabilistiche. Non verrà approfondita ulteriormente la componente di calcolo, ma ancora una volta la computazione di base genera una cascata di processi che, passo dopo passo, si traduce in attivazione macroscopica delle aree cerebrali, poi in immagini nella nostra mente, poi in ricordi e narrazioni coerenti (o apparentemente incoerenti in caso di patologia). In linea con la legge di Hebb del 1949, ancora attualissima, pare sia proprio la componente sinaptica ad avere un notevole impatto sull’apprendimento, una delle componenti che spiega ed è spiegata dal pensiero. Il meccanismo è ben più complesso di quanto descritto, vi sono infatti diversi tipi di canali ionici, diversi tipi di ioni e neurotrasmettitori, diversi tipi di neurone, diverse forme di comunicazione, ecc… questo articolo però non vuole spiegare il cervello nel suo insieme, sarebbe un’impresa decisamente poco realistica; vorrebbe limitarsi a dare uno spunto di riflessione. Abbiamo descritto il pensiero, o quantomeno una sua componente (la memoria), in termini microscopici. Anch’essa, come il pensiero mirato alla risoluzione di problemi, si basa su computazioni; siccome la base biologica è comune, che siano dunque tutte le forme di pensiero la conseguenza di un insieme di computazioni di base?
Fonte
- Principles of computational modelling in neuroscience. Cambridge University Press.
Sterratt D., Graham B., Gillies A. & Willshaw D. (2011) - Wing, J. M. (2006). Computational thinking.
Communications of the ACM