background

Che cosa sono le reti neurali artificiali e come funzionano?

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.


Condividi il post

  • L'Autore

    Stefano Cavallari

    Studente di Scienze Politiche e delle Relazioni Internazionali presso l'Università degli Studi di Milano, da sempre interessato al mondo della politica, società e diplomazia con un focus particolare su Sud America, Nord Africa e Medio Oriente. Se c'è qualcosa in cui credo fortemente è la necessità di puntare sui giovani in quanto futura classe dirigente; il cambiamento, sperando in senso positivo, può infatti partire proprio da noi.

Categorie

Salute e Benessere Ricerca Medica Salute e Benessere


Tag

#Technology #ArtificialIntelligence #AI

Potrebbero interessarti

Image

Che cosa intendiamo con Intelligenza Artificiale?

Stefano Cavallari
Image

Intelligenza Artificiale e Robotica

Matteo Bergamini
Image

Gli ambiti di applicazione dell'Intelligenza Artificiale

Matteo Bergamini
Accedi al tuo account di Mondo Internazionale
Password dimenticata? Recuperala qui
Diventa Associato