Un doveroso ringraziamento ai nostri "ispiratori"

Si sente a volte la necessità (direi quasi il dovere) di condividere le proprie esperienze, conoscenze e passioni.
Nell'ambito della scienza e della tecnica si è sempre ben consci della propria ignoranza, ma si avverte al tempo stesso l'importanza di comunicare quanto si conosce agli altri, soprattutto ai più giovani e meno esperti.
La cosa più importante poi non risiede in quelle poche schegge di esperienza che si riescono a condividere, quanto nella passione che ci ha permesso di acquisirle.
Trasmettere una scintilla di quella passione è tanto difficile quanto fondamentale.
Ognuno di noi ha avuto uno o più ispiratori che ci hanno istradato lungo il cammino di un "hobby" o di una professione.
Io dovrei ricordare l'amico conosciuto al mare che mi disegnò su un foglio di carta da lettera (che ancora conservo) lo schema e le istruzioni per costruire la mia prima radio "a galena" (in realtà utilizzava un bel diodo al germanio OA81 che ancora conservo gelosamente) e tanti, tanti altri, amici, conoscenti e colleghi, che hanno segnato la mia vita fornendomi idee ed ispirazione.

Non posso tuttavia non menzionare particolarmente un signore che, pur non avendolo io mai incontrato, ha influenzato più di tutti la mia vita e che rimane tuttora un riferimento ed un modello ideali: Guglielmo Marconi.

Guglielmo Marconi, padre della radio e primo radioamatore

Guglielmo Marconi, padre della radio e primo radioamatore

Ascolta la voce di Guglielmo Marconi

Visite a questo sito

venerdì 5 ottobre 2012

Spazio, la Nasa registra ''la voce della Terra''

La Terra 'canta' una canzone, sotto forma d'onde radio, e per la prima volta è stato possibile registrarla. A 'incidere' la voce del pianeta sono state due sonde della Nasa in missione nelle fasce di Van Allen, a circa 20mila chilometri dalla superficie terrestre.

venerdì 6 gennaio 2012

Introduzione alle reti neurali ed alla bioingegneria del cervello


Nel 1963 lo scrittore di fantascienza Arthur C. Clarke, famoso tra l’altro per aver ispirato il film “2001: Odissea nello spazio” di Stanley Kubrik, pubblicò un racconto breve intitolato “Chiamata per l’homo sapiens” (“Dial F for Frankstein”, nella versione originale inglese). In questo scritto Clarke paventava, con intuizione quasi visionaria, un non lontano futuro nel quale per la prima volta tutti i calcolatori del mondo sarebbero stati connessi tra loro attraverso la rete telefonica; si sarebbe così venuta a creare un’enorme mente artificiale planetaria, che non avrebbe tardato a dare dimostrazione dei suoi poteri.
L’incubo futuristico di Clarke si è realizzato ai nostri giorni, anche se in forme e modalità imprevedibili, trascendenti anche la più fervida immaginazione.
Internet, familiarmente chiamata “the Net”, è oggi la più grande rete di computer al mondo. Una rete di computer è essenzialmente costituita di un numero, più o meno elevato, di calcolatori di medie/grandi dimensioni, connessi fra loro in qualche modo (ad esempio, via linee telefoniche terrestri, o fibre ottiche, o satelliti). Di fatto, Internet non è proprio una rete, ma una rete di reti, che scambiano informazioni senza ostacoli.
Nonostante la quasi fantascientifica proliferazione di Internet, il cervello umano rimane tuttavia il più complesso sistema di elaborazione delle informazioni esistente nell’universo e può essere esso stesso considerato come un’enorme rete neurale. Per avere un’idea della complessità di questa rete, si pensi che i suoi nodi sono costituiti dai circa 100 miliardi di neuroni che formano il cervello. Ciascun neurone è peraltro collegato a sua volta a decine di migliaia di altri neuroni, cosicché esistono milioni di miliardi di connessioni.

Neuroni e reti neurali

Il componente base dei sistemi nervosi degli esseri viventi è il neurone. Esso può essere paragonato a quello che la porta logica elementare o la cella elementare di memoria rappresentano in un calcolatore elettronico. L’analogia è ancora più stretta se si considera che, così come in un calcolatore, i neuroni si scambiano informazioni attraverso impulsi elettrici. Il fatto che le connessioni nervose siano basate su fenomeni elettrici è noto peraltro sin dal diciottesimo secolo. Tutti infatti ricorderanno (reminiscenze dei tempi della scuola) l’esperimento di Luigi Galvani, il quale notò che le zampe di una rana si contraevano quando venivano collegate ad una pila accidentale, fatta di metalli diversi.
Il neurone (figura 1), o cellula nervosa elementare, è costituito da quattro parti principali: il corpo della cellula, l’assone (attraverso il quale passano i messaggi accumulati a livello del corpo della cellula), i dendriti (con i quali si stabiliscono connessioni sinaptiche con altre cellule) e le sinapsi (mediante le quali il neurone comunica con le altre cellule nervose).


Figura 1: neurone biologico e sue parti costituenti

Il corpo della cellula ha le dimensioni di circa 10 micron (cioè 10 milionesimi di metro) ed è a sua volta costituito da un nucleo centrale circondato da protoplasma e racchiuso da una membrana. Da questa si dipartono i dendriti, fibre sottili ed estremamente ramificate, ed originano uno o più assoni, prolungamenti lunghi e sottili, la cui lunghezza varia da una frazione di millimetro fino ad oltre un metro.
Un neurone opera ricevendo segnali da altri neuroni attraverso le sinapsi. Ogni sinapsi non è altro che una sottile intercapedine fra l’assone di un neurone ed il dendrite di un altro, attraverso la quale gli impulsi elettrici vengono trasmessi attraverso un processo elettrochimico.
La combinazione di questi segnali, al di sopra di una certa soglia o livello di attivazione, porta il neurone a “sparare”, cioè ad inviare un segnale agli altri neuroni connessi ad esso. Alcuni dei segnali ricevuti da un neurone agiscono come eccitatori, altri come inibitori. E’ a questo punto già abbastanza evidente come l’analogia tra cervello umano (o più generalmente animale) e calcolatore elettronico sia solo lontanamente appropriata. Si pensi che nel cervello umano ci sono approssimativamente cento miliardi (100.000.000.000) di neuroni, ciascuno connesso a qualche migliaio di altri. In totale la rete neurale del cervello è costituita da oltre un miliardo di miliardi di connessioni (1.000.000.000.000.000.000)! Se si considera che il cervello di un adulto umano pesa da 1300 a 1400 grammi, è evidente che esso costituisce una macchina di calcolo e di commutazione di gran lunga più complessa e più miniaturizzata di quelle realizzabili con le attuali tecnologie elettroniche.

Modello di neurone artificiale

Il comportamento dei neuroni è estremamente complesso e lungi dall’essere completamento compreso. Per i nostri fini è più che sufficiente fare riferimento ad un modello semplificato del neurone, sviluppato già nel 1943 da McCulloch e Pitts (figura 2).


Figura 2: modello di McCulloch e Pitts

Il modello di McCulloch-Pitts è basato su cinque assunzioni fondamentali:

1. il neurone è un dispositivo binario, nel senso che può trovarsi in soli due possibili stati: “eccitato” o “non eccitato”;
2. ogni neurone ha una soglia fissa di eccitazione, oltre la quale esso cambia di stato e “spara”, cioè manda un impulso elettrico lungo l’assone;
3. lo stato di eccitazione dipende da impulsi ricevuti da sinapsi eccitatorie, che in prima approssimazione possono assumersi tutte con pesi identici (in realtà le sinapsi più frequentemente eccitate tendono a prevalere rispetto alle altre);
4. lo stato di eccitazione dipende anche dagli impulsi ricevuti da sinapsi inibitorie (se una di esse è attiva, il neurone non può attivarsi);
5. c’è un tempo finito d’integrazione degli impulsi in ingresso, durante il quale il neurone calcola il suo stato (azione d’integrazione a breve termine delle varie eccitazioni).

Dal modello del neurone appena descritto si comprende come nel sistema nervoso coesistono due differenti tipi di trattamento dell’informazione: un’elaborazione analogica all’interno delle cellule nervose ed una trasmissione essenzialmente digitale tra le cellule stesse.
Gli impulsi nervosi, trasmessi attraverso gli assoni alle altre cellule nervose, viaggiano con velocità che, a seconda del tipo di neurone, passano da 0,5 metri/secondo a 120 metri/secondo. Si tratta di velocità rispettabili, ma molto inferiori alla velocità di trasmissione di un impulso elettrico in un conduttore metallico, che è prossima a quella della luce. Ciò spiega il perché di alcuni limiti fisici del nostro corpo, quale il tempo di risposta di un guidatore d’automobile nel premere il pedale del freno.

Reti neurali artificiali

Una rete neurale è un sistema che vuole in qualche modo riprodurre il comportamento della mente umana. Analogamente a quanto avviene nel nostro cervello, essa si basa su componenti elementari hardware o, più frequentemente, software chiamati celle neurali o neuroni artificiali. Un neurone artificiale è in realtà molto più semplice di un neurone biologico.
Ciascuna cella è collegata ad alcune delle celle adiacenti attraverso connessioni più o meno forti, a seconda dei coefficienti (o “pesi”) ad esse associati. Il processo di apprendimento è per l’appunto ottenuto aggiustando questi coefficienti in modo che la rete complessiva fornisca l’uscita (o le uscite) corrette.
La figura 3 mostra l’architettura semplificata di una tipica rete neurale. Ogni nodo della rete è di fatto l’equivalente di un neurone cerebrale, con i suoi ingressi, le sue uscite e la sua legge di eccitazione.


Figura 3: architettura di una rete neurale artificiale

Perché si usano le reti neurali?

Data la loro capacità di derivare risultati significativi partendo da dati complessi o imprecisi, le reti neurali trovano applicazione per riconoscere pattern o scoprire tendenze che altrimenti sarebbero troppo complicate per la mente umana o per altre tecniche cibernetiche. Un computer neurale può essere pensato come un sistema esperto che, oltre ad essere in grado di interpretare in breve tempo informazioni complesse, è anche capace di apprendere dall’esperienza, affinando sempre più la sua già specializzata capacità.
Le reti neurali hanno in realtà un approccio alla risoluzione dei problemi che è completamente differente da quello dei computer tradizionali.
I computer tradizionali hanno un approccio algoritmico, cioè essi seguono una serie di istruzioni per risolvere un problema. Di fatto la sequenza di istruzioni è basata sulla nostra conoscenza “a priori” del problema. Si potrebbe altrimenti dire che un computer tradizionale risolve solo i problemi che noi stessi già sappiamo come affrontare e risolvere.
Per poter parlare di intelligenza artificiale, si dovrebbe però avere computer che sanno cavarsela anche di fronte a nuovi problemi, imparando dall’esperienza accumulata.
Nei computer neurali piuttosto che un’unità centralizzata di elaborazione (la CPU), che esegue istruzioni in forma sequenziale, si ha una rete con un numero molto alto di elementi di processamento elementari (neuroni artificiali, anche detti “percettroni”), che sono fortemente interconnessi e lavorano in parallelo alla risoluzione di uno specifico problema. Continuando l’analogia con il cervello umano, un computer neurale non può essere programmato in modo convenzionale, ma gli deve essere insegnato ciò che deve fare attraverso lo “studio” di esempi, che devono essere scelti molto accuratamente. I risultati possono essere sorprendenti, ma al contempo spesso del tutto imprevedibili.
Nella realtà pratica, i due sistemi di elaborazione, convenzionale e neurale, si integrano a vicenda, piuttosto che farsi competizione.
Le reti neurali trovano oggi applicazione in un’ampia serie di campi, dalla medicina alla simulazione di sistemi economici complessi. Particolarmente note ed efficaci sono le applicazioni riguardanti il riconoscimento dei caratteri calligrafici e delle immagini, utilizzate quest’ultime nei più sofisticati sistemi di sorveglianza elettronica.
La ricerca sulle reti neurali artificiali sta compiendo passi da gigante. Ne è un esempio il circuito integrato “neuromorfico” (cioè che simula il comportamento della corteccia cerebrale) sviluppato dai ricercatori del mitico Massachusetts Institute of Technology (MIT) e della Lucent Technologies (figura 4).


Figura 4: circuito integrato “neuromorfico”

Anche questo circuito sarà impiegato in sistemi di riconoscimento d’immagini “a prima vista” da utilizzare, fra l’altro, nella realizzazione di futuri robot intelligenti.

Alcuni semplici modelli circuitali del neurone

La simulazione del funzionamento di una cellula nervosa non deve essere pensata come un argomento riservato alla ricerca universitaria o ad applicazioni esclusivamente professionali.
In realtà è possibile costruire dei semplici modelli circuitali del neurone, dei veri e propri neuroni artificiali o bionici, con pochi e semplici componenti elettronici, alla portata di tutti gli sperimentatori dilettanti.
Il primo semplicissimo circuito è quello mostrato in figura 5. Esso simula un neurone avente un solo ingresso (dendrite) ed una sola uscita (assone). I componenti R1 e C1 costituiscono un circuito integratore, i cui valori determinano il tempo di propagazione degli impulsi in ingresso attraverso la rete nervosa. La porta inverter può essere derivata da un integrato digitale 7414 o 74HC14.

Figura 5

Un circuito più complesso è quello mostrato in figura 6, dove un amplificatore operazionale (un comunissimo LM741), utilizzato come comparatore, riceve stimoli da vari ingressi, simulati dai pulsanti A, B e C. I potenziometri associati agli ingressi permettono di variare i “pesi” ad essi associati. Un diodo LED in uscita segnala l’eccitazione (o “sparo”) del neurone artificiale.

Figura 6

Un terzo circuito (figura 7), da me progettato, utilizza un comunissimo timer integrato NE 555 per realizzare buona parte delle caratteristiche di un neurone biologico precedentemente elencate, cioè:

• la possibilità di sommare nello spazio (ingressi multipli) e nel tempo (funzione integratrice) impulsi asincroni con azione eccitatrice o inibitrice;
• la presenza di un circuito a soglia;
• la generazione di un impulso in uscita in corrispondenza al superamento della soglia.


Figura 7: schema elettrico del neurone bionico

Due parole di descrizione sul funzionamento del circuito. I pulsanti (normalmente aperti) collegati al positivo dell’alimentazione fungono da ingressi eccitatori. Quelli collegati alla massa del circuito svolgono la funzione opposta, cioè simulano gli impulsi inibitori. Il LED giallo è normalmente acceso ed indica lo stato di quiete del neurone. Quando la soglia di “sparo” viene raggiunta, il LED giallo si spegne e si accende invece, per pochi secondi, quello rosso, che simula l’impulso elettrico verso l’assone.
Il valore dei componenti non è critico: sperimentate pure con tranquillità, è difficile fare danni.
Questo semplice circuito costituisce una buona modellizzazione elettrica della cellula neurale, utile per fini didattici e non.
Lascio alla creatività dei lettori il gusto di sperimentare altre applicazioni del circuito presentato, ad esempio per simulare una rete di connessioni neurali, oppure per realizzare antifurto “intelligenti”, capaci cioè d’integrare gli stimoli provenienti da vari sensori.