La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.

– Isaac Asimov –


Fin dagli albori delle scienze computazionali, il cervello umano è stato considerato il modello assoluto verso cui tendere per la realizzazione di modelli matematici che permettessero ad un circuito elettronico di imparare autonomamente. L’introduzione delle reti neurali artificiali ha apportato una svolta decisiva sia nel campo dell’elettronica che in quello della logica computazionale.

 

Perché le reti neurali sono sempre più importanti? 

Da un punto di vista prettamente fisico, sappiamo che le prestazioni di un sistema a semiconduttori sono direttamente collegate ad alcune specifiche come il grado di miniaturizzazione, il processo costruttivo e la frequenza di funzionamento. v_sat

Una delle principali problematiche nell’avanzamento tecnologico dei circuiti integrati è rappresentata dalla saturazione della velocità dei portatori che rende inutile il passaggio ad un nodo tecnologico successivo. La diminuzione della lunghezza di canale, infatti, determina il raggiungimento della velocità di saturazione da parte dei portatori di carica che non possono essere accelerati ulteriormente. Medesimo discorso vale per l’aumento delle frequenze in gioco che, se al di sopra del limite, rendono difficile la dissipazione del calore prodotto durante l’elaborazione. Simili problematiche hanno portato alla necessità di rivoluzionare la logica sequenziale alla base della progettazione dei circuiti ed a considerare un modello computazionale parallelo costituito da numerose unità elaborative omogenee fortemente interconnesse.

Entriamo dunque nell’ambito delle reti neurali, una nuova tecnologica informatica dall’architettura innovativa, che sovverte le monolitiche regole dell’architettura di Von Neumann.

 Una rete neurale artificiale simula il funzionamento della sua controparte biologica.

Lo scopo di una rete neurale non è quello di svolgere un compito specifico, tantomeno di essere un preciso strumento di calcolo, piuttosto il suo compito è quello di “imparare”.

neural_net2

Schema a blocchi di una rete neurale multilayer

Il processo di addestramento di una rete neurale prevede di fornire in ingresso un campione di dati (training set) insieme al risultato che si vuole ottenere. La rete sarà capace di evolvere autonomamente e gradualmente verso il risultato, riconoscendo da sola i passaggi necessari ad eseguire il compito. Ad esempio, supponiamo di voler insegnare alla nostra rete a svolgere l’operazione di somma: forniamole in ingresso una serie di numeri insieme al risultato che vogliamo ottenere, sarà la rete stessa ad “imparare” il meccanismo alla base dell’operazione da svolgere.

La storia

Nel 1943, con un articolo denominato “Logical Calculus of Ideas Immanent in Nervous Activity“, gli scienziati Warren Sturgis McCulloch e W.A Pitts posero le basi per il primo modello matematico di una rete neurale. Grazie ad esso riuscirono a dimostrare che una rete di neuroni aveva una capacità computazionale tale da poter imitare qualsiasi calcolatore. Il modello di McCulloch – Pitts, ad oltre 60 anni di distanza, è ancora un riferimento standard nel campo delle reti neurali.

Modello McCulloch-Pitts

Modello McCulloch-Pitts

Nel 1948, John Von Neumann, si dedicò allo studio delle reti di automi come macchine in grado di imitare funzioni tipiche degli esseri viventi.
Nel 1949 il neurofisiologo Donald Hebb, dedusse la prima regola di apprendimento applicata nelle reti neurali.
Nel 1958, Frank Rosenblatt, presentò il primo modello hardware basato su rete neurale e lo denominò “percettrone“. Si trattava di una serie di dispositivi logici in grado di risolvere semplici problemi di riconoscimento di forme.
Negli anni 60, le reti neurali vanno in declino a causa di problematiche che, con la tecnologia dell’epoca, non potevano essere ancora risolte.
Negli anni 80, computer decisamente più potenti, riaccesero l’interesse verso le reti neurali.
Negli anni 90, la scienza delle reti neurali aveva raggiunto uno stato tanto avanzato da richiedere l’introduzione di una apposita branca: la cibernetica.

Rosenblatt lavora al percettrone al Cornell Aeronautical Laboratory (1957-1959)

Rosenblatt lavora al percettrone al Cornell Aeronautical Laboratory (1957-1959)