In primo luogo è importante capire di cosa stiamo parlando, partendo perciò dalla definizione: Le reti neurali artificiali sono modelli matematici composti da neuroni artificiali che si ispirano al funzionamento biologico del cervello umano. Nel primo post avevamo già esaminato brevemente il percorso storico dell’IA e, di conseguenza, anche quello delle reti neurali artificiali; riprendendolo velocemente, possiamo dire che la loro storia si sviluppa a partire dai primi anni ’40 del XX secolo. Il primo neurone artificiale fu proposto, infatti, da W.S. McCulloch e W. Pitts in un famoso lavoro del 1943 intitolato “A Logical Calculus of the Ideas Immanent in Nervous Activity”, concetto ripreso dallo stesso Alan Turing negli anni ’50. Quest’ultimo era estremamente interessato a spiegare come un computer potesse funzionare in modo simile al cervello umano.
In che modo funzionano però le reti neurali artificiali? Riprendendo la definizione, sappiamo che esse sono modelli costituiti da interconnessioni di informazioni, proprio come nei neuroni biologici. Tali interconnessioni derivano da neuroni artificiali e processi di calcolo basati sul PDP – Parallel Distributed Processing (elaborazione a parallelismo distribuito delle informazioni). Il cervello umano elabora le informazioni dei vari sensi in modo parallelo e distribuisce le informazioni in tutti i vari nodi della rete - e non in una memoria centrale come avviene, ad esempio, per l’informatica tradizionale dove i calcoli avvengono in modo seriale e non parallelo.
Nell’analisi del cosa sono e come funzionano le reti neurali, non possiamo però trascurare un accenno ai cosiddetti sistemi esperti, ovvero software intelligenti che rispondono alle domande degli utenti e li aiutano a risolvere un problema o prendere una decisione su un particolare campo della conoscenza. Non si tratta di una novità: sono sistemi che hanno goduto di una certa rilevanza mediatica e di forte interesse da parte delle aziende già negli anni ’80. Possiamo affermare che essi rappresentano una vera e propria rivoluzione, che ha consentito la creazione di software in grado di individuare le soluzioni di problemi complessi.
Per poter funzionare correttamente, questi sistemi esperti devono poi essere composti da alcune parti fondamentali:
- La base di conoscenza: E' il database in cui sono memorizzate le regole che consentono al sistema di seguire un ragionamento logico su una particolare branca del sapere. E' spesso indicata con il termine inglese Knowledge Base ( KB );
- Il motore inferenziale: E' la componente del software che elabora la conoscenza contenuta nella knowledge base, interpreta l'esigenza dell'utente e fornisce una soluzione al problema. Il ragionamento si basa sulla deduzione, le euristiche e la logica fuzzy approssimata;
- L’interfaccia utente: E' l'elemento intermedio tra l'utente e il motore inferenziale. Può trattarsi di una semplice interfaccia input/output in cui l'utente digita la domanda con la tastiera e visualizza le risposte sullo schermo, oppure di un sistema più avanzato basato sul riconoscimento vocale e visivo.
Ciò che differenzia i sistemi esperti dai normali programmi software sono i dati che costituiscono la knowledge base: anziché “appoggiarsi” ad una struttura decisionale predefinita, i sistemi esperti riescono a proporre all’utente la migliore delle alternative possibili trovando la soluzione ottimale al problema tra tutte quelle disponibili.
Nell’immaginario comune i sistemi esperti vengono, però, erroneamente associati alle reti neurali artificiali; probabilmente perché per descriverli, spesso, si ricorre al paragone umano e si dice che sono sistemi in grado di replicare le performance di un essere umano esperto. In realtà, la differenza tra queste tecnologie è abbastanza evidente quando si mettono a confronto le funzionalità:
- Un sistema esperto può dedurre alcuni ragionamenti, cosa che la rete neurale non fa; quest’ultima, però, è perfettamente in grado di riconoscere un volto umano in una immagine complessa, cosa che il sistema esperto non è in grado di fare;
- Il sistema esperto è in grado di spiegare in che modo è arrivato ad una soluzione; il funzionamento delle reti neurali è, invece, molto complesso ed è quasi impossibile risalire al procedimento logico che ha portato ad una determinata soluzione;
- I sistemi esperti necessitano di un primario intervento da parte dell’esperto, devono quindi essere programmati; le reti neurali, invece, “deducono” regole e attività in modo automatico, attraverso l’apprendimento.
Benché, come abbiamo visto, si tratta di tecnologie diverse, oggi le reti neurali potrebbero essere sfruttate per “alimentare” in modo autonomo la knowledge base dei sistemi esperti. Per capire meglio, vediamo finalmente come funzionano le reti neurali.
Una rete neurale biologica riceve dati e segnali esterni (nell’uomo e nell’animale vengono percepiti attraverso i sensi); questi vengono elaborati in informazioni attraverso un imponente numero di neuroni (che rappresentano la capacità di calcolo) interconnessi tra loro in una struttura non-lineare e variabile in risposta a quei dati e stimoli esterni stessi. È in quest’ottica che si parla dunque di “modello” matematico-informatico.
Allo stesso modo, le reti neurali artificiali sono strutture non-lineari di dati statistici che ricevono segnali esterni su uno strato di nodi (che rappresenta l’unità di elaborazione, il processore); ognuno di questi “nodi d’ingresso” è collegato a svariati nodi interni della rete che, tipicamente, sono organizzati a più livelli in modo che ogni singolo nodo possa elaborare i segnali ricevuti trasmettendo ai livelli successivi il risultato delle sue elaborazioni.
In linea di massima, le reti neurali sono formate da tre strati (che però possono coinvolgere migliaia di neuroni e decine di migliaia di connessioni):
- Lo strato degli ingressi (I – Input): è quello che ha il compito di ricevere ed elaborare i segnali in ingresso adattandoli alle richieste dei neuroni della rete;
- Lo strato H – hidden (strato nascosto): è quello che ha in carica il processo di elaborazione vero e proprio;
- Lo strato di uscita (O – Output): qui vengono raccolti i risultati dell’elaborazione dello strato H e vengono adattati alle richieste del successivo livello-blocco della rete neurale.
Affinché questo processo risulti performante e ottimale, è necessario “addestrare” le reti neurali, ossia fare in modo che apprendano come comportarsi nel momento in cui andrà risolto un problema ingegneristico, come per esempio il riconoscimento di un essere umano dall’analisi del volto.
Il tema dell’apprendimento è collegato al Machine Learning, argomento che abbiamo trattato nello scorso appuntamento e che, in breve, funziona come una sorta di percorso scolastico per le reti neurali.
Stefano Cavallari
IT: Nato a Gallarate, in provincia di Varese, ha conseguito la maturità linguistica ed è attualmente laureando in Scienze Politiche e delle Relazioni Internazionali, a Milano. Parla quattro lingue, ama viaggiare ed ha origini sudamericane, un “cocktail” esplosivo che sin da subito ha generato in lui una forte passione per la diplomazia e la politica estera, con un focus particolare sul Sud America, per ovvie ragioni, ma anche su Nord Africa e Medio Oriente.
La sua qualità migliore? Non si ferma mai, c’è sempre qualcosa da imparare, che sia dai propri errori o da chi ci sta di fronte. Tra gli interessi, inoltre, figurano il campo economico e l’innovazione tecnologica, fattori che hanno giocato un ruolo importante per la sua maturazione all’interno dell’Associazione.
In Mondo Internazionale infatti ricopre rispettivamente le cariche di Referente di Tesoreria ed autore per l'area Tecnologia e Innovazione, incarichi che gli permettono di unire tutte le sue passioni e cercare di dare sempre il massimo per l'Associazione.
EN: Born in Gallarate, in the province of Varese, he obtained a linguistic high school diploma and is currently majoring in Political Sciences and International Relations, in Milan. He speaks four languages, loves to travel and has South American origins, an explosive "cocktail" that immediately generated in him a strong passion for diplomacy and foreign policy, with a particular focus on South America, for obvious reasons, but also on North Africa and the Middle East.
His best quality? He never stops, there is always something to learn, whether it is from one's mistakes or from those in front of us. Furthermore, his interests include the economic field and technological innovation, factors that have played an important role in his maturation within the Association.
In fact, in Mondo Internazionale he holds the positions of Treasury Referent and author for the Technology and Innovation area, positions that allow him to combine all his passions and always try to give his best for the Association.