Reti neurali: cosa sono, come funzionano e le applicazioni

Le reti neurali artificiali trovano la loro teorizzazione già negli anni Quaranta del Novecento, quando W.S. McCulloch e W. Pitts pubblicarono “A logical calculus of the ideas immanenti in nervous activity”, un pionieristico lavoro di ricerca in cui si ipotizzava una macchina di Turing realizzata con una serie finita di neuroni per dimostrare come questi ultimi caratterizzassero l’unità logica di base del cervello.

Rispetto ad allora, l’intelligenza artificiale ha compiuto progressi enormi. Le reti neurali artificiali, grazie alla raggiunta maturazione dei sistemi computazionali necessari per supportare le loro elaborazioni, sono sempre più utilizzate per comprendere e risolvere problemi mediante un approccio di tipo ingegneristico, in molti settori di business.

Vediamo pertanto in cosa consistono le reti neurali, come funzionano, come vengono addestrate e quali sono le applicazioni dove oggi vengono più comunemente utilizzate.

Cosa sono le reti neurali

Le reti neurali rappresentano l’elemento centrale degli algoritmi di deep learning, una sottobranca del machine learning, collocabile nel più ampio contesto dell’intelligenza artificiale. L’etimologia del termine è volutamente ispirata ai neuroni del cervello umano e anche dal punto di vista del funzionamento una rete neurale di fatto imita il modo in cui i neuroni dell’uomo si inviano segnali sfruttando le loro connessioni.

In letteratura le reti neurali (neural network) sono anche note come ANN (artificial neural network) e SNN (simulated neutral network).

Le reti neurali, note anche come ANN (artificial neural network) o SNN (simulated neural network), sono un sottoinsieme del machine learning e rappresentano l’elemento centrale degli algoritmi di deep learning.  Il loro nome e la loro struttura sono ispirati al cervello umano, imitando il modo in cui i neuroni biologici si inviano segnali.

Nella loro configurazione più semplice, le reti neurali sono composte da vari livelli di nodi, comprendenti un livello di input, uno o più livelli nascosti, oltre ad uno specifico livello dedicato all’output. Come vedremo, a regolare il funzionamento della rete neurale vi è il fatto che ogni nodo, corrispondente di fatto ad un neurone artificiale, è caratterizzato da un peso ed una soglia di attivazione e si connette agli altri nodi definendo appunto quella topologia a rete da cui prende il nome.

Secondo i principi fondamentali dell’apprendimento automatico, le reti neurali utilizzano data set per l’addestramento, per migliorare nel tempo la loro conoscenza, portando l’algoritmo ad un livello di ottimizzazione sempre maggiore. Tale dinamica le rende utili ed efficienti nell’ambito della data science, per quanto concerne la classificazione e l’organizzazione dei cluster di dati, soprattutto nel contesto del deep learning. Anche se non viene esplicitamente dichiarata, la rete neurale più nota è probabilmente costituita dall’algoritmo di ricerca di Google.

Grazie a reti neurali ben addestrate, attività molto complesse dal punto di vista dell’elaborazione, come il riconoscimento vocale o delle immagini, possono essere risolte addirittura nell’ordine dei minuti o dei secondi, anziché delle ore o dei giorni che si renderebbero necessarie in caso di identificazione “manuale”, anche se eseguite da personale umano esperto.

Come funziona una rete neurale

La rete neurale opera come un sistema adattivo, sviluppato per modificare nel tempo la propria struttura nodale, sulla base dei data set esterni che delle informazioni generate al proprio interno durante il suo funzionamento.

Trattandosi di un algoritmo per l’apprendimento automatico, le reti neurali vedono la loro linfa nei dati ed operano secondo una modalità simile ad una rete neurale biologica, come quella implementata nel cervello umano.

Una rete neurale biologica riceve infatti continuamente segnali dall’esterno. I dati biologici vengono percepiti dall’uomo mediante una serie di cellule nervose, dotate di funzioni multisensoriali. I segnali provenienti dall’esterno vengono di fatto elaborati dai neuroni, tra loro interconnessi mediante una topologia a rete di tipo non lineare, in grado di variare la propria configurazione in maniera adattiva, reagendo agli stimoli che arrivano dall’esterno.

Una rete neurale artificiale si basa su un modello funzionale molto simile, traducendo il significato di una rete neurale biologica attraverso un modello matematico-informatico, che la rende compatibile all’utilizzo con i dati digitali.

Le reti neurali artificiali sono pertanto definibili quali strutture non lineari di dati statistici, quali strumenti di modellazione in grado di ricevere i segnali dei data set esterni attraverso uno strato di nodi, aventi funzioni di natura computazionale.

Il nodo di ingresso è collegato ad altri nodi della rete, organizzati come livelli interni, in modo che il singolo nodo possa elaborare il dato ricevuto e successivamente trasmetterlo ai livelli successivi, i cui nodi si occuperanno di aggiungere ulteriori dettagli e ricchezza informativa.

Secondo questa logica, l’algoritmo diventa sempre più efficiente nella propria fase di apprendimento automatico e in grado di restituire risultati analitici sempre più rapidi ed accurati.

La rete neurale può utilizzare vari modelli di apprendimento, che esamineremo nel dettaglio successivamente. Alcuni di questi modelli consentono di utilizzare i dati elaborati quale base per le successive fasi di apprendimento. Nella loro struttura più elementare, le reti neurali sono composte da tre livelli, o strati, che possono a loro volta coinvolgere molte migliaia di nodi e connessioni.

In primo luogo, ritroviamo lo strato di input, che si occupa di ricevere ed elaborare i segnali in ingresso, adattandoli alle richieste dei neuroni presenti nei vari livelli della rete.

In una posizione intermedia ritroviamo almeno uno strato nascosto, che si occupa di elaborare i dati, con una struttura che vede i neuroni organizzati su più livelli.

Il terzo strato è quello relativo all’output, dove vengono raccolti e organizzati i dati delle elaborazioni provenienti dagli strati nascosti, e adattati alle richieste dei successivi blocchi della rete neurale, a seconda della complessità che la caratterizza.

Per quanto riguarda le connessioni tra i singoli nodi, oltre al peso, assume particolare rilievo la soglia di attivazione. Se l’output di un nodo presenta un valore superiore a quello previsto dalla soglia, il nodo stesso si attiva inviando il segnale al livello successivo della rete. Se il valore risulta invece inferiore alla soglia, non avviene alcuna trasmissione di dati.

Le diverse tipologie

Sotto la definizione comune di rete neurale rientrano varie tipologie, differenti sia dal punto di vista matematico che per quanto concerne gli scopi per cui vengono abitualmente utilizzate. La più antica rete neurale disponibile è costituita dal percettrone, creata da Frank Rosenblatt nel lontano 1958. Da allora, è stata svolta moltissima ricerca per sviluppare algoritmi sempre più sofisticati ed efficienti nell’apprendimento. In questa sede, ci limiteremo a sintetizzare le tipologie attualmente più diffuse: le reti neurali feed forward, le reti neurali convolutive e le reti neurali ricorrenti.

Reti neurali feed forward

Altrimenti note come percettroni multilivello (multi-layer perceptron, MLP) presentano la classica struttura per strati descritta nel corso del precedente paragrafo. Sono infatti costituite da un livello di input, uno o più livelli nascosti e un livello di output.

Anche se ci si riferisce ad una rete neurale feed forward come un percettrone multilivello, sono in realtà formate da neuroni sigmoidi, in quanto più funzionali a rispondere a problemi di natura non lineare, almeno rispetto al percettrone classicamente inteso.

Le reti neurali feed forward sono molto utilizzate in vari ambiti dell’intelligenza artificiale, quali la computer vision (visione artificiale) e il riconoscimento naturale del linguaggio (NLP).

Reti neurali convolutive

Le convolutinal neural network (CNN) sono piuttosto simili alle reti neurali feed forward, rispetto alle quali si differenziano per adattarsi ad altri scopi di utilizzo, con particolare riferimento al riconoscimento delle immagini e altre derivate dalla visione artificiale.

La matematica delle reti neurali convolutive si basa prevalentemente sull’algebra lineare, sfruttando strumenti come la moltiplicazione della matrice per identificare i pattern presenti all’interno di un’immagine.

Le CNN sono particolarmente note per il loro utilizzo nell’ambito dei deepfake e delle tecniche ricostruttive, come quelle impiegate nel restauro conservativo.

Reti neurali ricorrenti

Le recurrent neural network (RNN) sono le più impiegate nel contesto dell’analisi predittiva. Gli algoritmi di una RNN sono funzionali all’elaborazione di dati storici, riferiti a varie serie temporali, per effettuare previsioni relative a risultati futuri in un determinato contesto analitico.

Le funzioni di analisi predittiva sono sempre più utilizzate, al punto da costituire una delle applicazioni più popolari dell’intelligenza artificiale. Le reti neurali ricorrenti sono infatti la base di moltissime applicazioni di business analytics impiegate nelle previsioni finanziarie e di vendita, grazie alla capacità di correlare una grande quantità di variabili, trattando numeriche di dati molto importanti.

I diversi modelli di apprendimento

Date le varie tipologie di reti neurali, è opportuno concentrarci sui modelli che vengono utilizzati per il loro addestramento. Si tratta di un processo estremamente affascinante dell’intelligenza artificiale, che vede l’impiego di tecniche matematico-informatiche per simulare il funzionamento delle reti neurali biologiche, come quella alla base del cervello umano.

Utilizzando un’espressione non tecnica, le reti neurali devono infatti essere addestrate affinché imparino come comportarsi di fronte ad un problema, ingegnerizzandolo ai fini di poter elaborare una serie di soluzioni utili e fruibili nei vari contesti applicativi per cui è previsto il loro utilizzo.

Per citare un esempio pratico, un’applicazione di riconoscimento facciale utilizza una rete neurale capace di riconoscere le caratteristiche del volto umano ogni volta che una persona si presenta in un determinato contesto.

L’apprendimento automatico è il tema fondamentale del machine learning ed è costituito da algoritmi che utilizzano metodi matematico-computazionali per generare conoscenza attraverso l’esperienza, secondo proprietà di tipo adattivo. Nel caso delle reti neurali, come più volte sottolineato, si rientra nel contesto del deep learning, che è in ogni caso annoverabile come una sotto branca del machine learning.

I principali metodi utilizzati nell’ambito dell’apprendimento automatico sono: apprendimento supervisionato, apprendimento non supervisionato, apprendimento per rinforzo, apprendimento semi-supervisionato.

Apprendimento supervisionato

Nel caso dell’apprendimento supervisionato (supervised learning), l’algoritmo viene addestrato con opportuni data set sia per quanto riguarda l’input che l’output, con l’obiettivo che la sua elaborazione identifichi una regola per collegare appunto i dati di ingresso con quelli di uscita.

In altri termini, l’apprendimento supervisionato prevede l’impiego di esempi di input e output tra loro correlati, con l’obiettivo che il sistema scopra le correlazioni più utili ai fini di ottenere una regola riutilizzabile nel contesto di problemi simili a quelli esemplificati.

Apprendimento non supervisionato

L’impiego dell’apprendimento non supervisionato (unsupervised learning) prevede che al sistema di elaborazione vengano forniti soltanto i set di input, senza indicazioni specifiche sull’output previsto. L’assenza di un risultato è finalizzata a formulare un metodo utile a risalire agli schemi nascosti, ossia a riconoscere nei dati di input una struttura logica indipendente dal loro etichettamento, in quanto non è noto a priori alcun collegamento con i dati di output, che l’algoritmo ignora.

Apprendimento per rinforzo

L’apprendimento per rinforzo (reinforcement learning) viene impiegato quando si prevede che il sistema debba interagire con un ambiente dinamico per raggiungere un determinato obiettivo imparando dai propri errori.

In altri termini, l’algoritmo riceve i dati di input dall’ambiente, li elabora ed ottiene una ricompensa quando raggiunge il proprio obiettivo. Nel caso in cui questa condizione non venisse soddisfatta, interviene invece una punizione. La routine di apprendimento alterna ricompense e punizioni per ottimizzare le prestazioni dell’algoritmo e renderlo sempre più efficace nella soluzione del problema.

Apprendimento semi-supervisionato

Oltre ai tre metodi principali, si ritrova ormai piuttosto frequentemente anche un metodo ibrido: l’apprendimento semi-supervisionato.

Come l’etimologia stessa lascia presagire, tale metodo prevede la compresenza di situazioni supervisionate e non supervisionate. L’algoritmo viene infatti addestrato con data set incompleti, in quanto in alcuni casi si ha una compresenza di input-output, mentre in altri è noto soltanto l’input.

A prescindere dai casi specifici, l’obiettivo dell’apprendimento semi-supervisionato è quello di identificare una serie di regole e funzioni utili alla soluzione di problemi in un determinato contesto, oltre a formare modelli e strutture di dati utili a raggiungere il medesimo obiettivo.

Reti neurali e intelligenza artificiale

Il ricco glossario dell’intelligenza artificiale vede spesso le reti neurali affiancate a termini quali machine learning e deep learning. In una valutazione di primo impatto è possibile fare riferimento a sistemi tra loro collegabili, con una progressione che va dal generale al particolare.

In questo contesto appare evidente come l’intelligenza artificiale costituisca il sistema generale, che comprende tutti gli altri. Il machine learning costituisce infatti un sottoinsieme della AI, il deep learning un sottoinsieme del machine learning e le reti neurali caratterizzano a loro volta la colonna dorsale degli algoritmi di deep learning.

Le reti neurali vengono utilizzati per l’apprendimento automatico nell’ambito di moltissimi contesti applicativi. Tra le più ricorrenti possiamo ad esempio citare:

  • – Analisi dei dati comportamentali, alla base delle applicazioni di marketing mirato, mediante i filtri dei social network ed altri strumenti che consentono agli specialisti di personalizzare ed automatizzare le procedure necessarie per coinvolgere il cliente e facilitare le conversioni.
  • – Diagnosi medica, attraverso la classificazione delle immagini ottenute dagli strumenti di radiologia.
  • – Analisi predittive di varia natura, tra cui la stima della domanda di energia basata sulla previsione del carico elettrico.
  • – Previsioni degli andamenti finanziari mediante correlazioni anche molto complesse basate sugli andamenti storici.

Le reti neurali vengono utilizzate per sostenere vari ambiti tematici dell’intelligenza artificiale, come la computer vision, il riconoscimento vocale, l’elaborazione del linguaggio naturale (NLP) e i motori di raccomandazione.

Computer vision (visione artificiale)

La computer vision, o visione artificiale, viene riconosciuta nella capacità dei computer di estrarre informazioni dettagliate dall’analisi dei contenuti presenti in immagini e video. Tale attività utilizza le reti neurali per distinguere e classificare le immagini, abilitando differenti applicazioni:

  • – Moderazione automatica dei contenuti sui social network, bloccando automaticamente dati sospetti, non sicuri o non conformi alle normative sui diritti d’autore.
  • – Riconoscimento facciale, con la possibilità di identificare i volti, oltre a riconoscere vari dettagli tra cui la presenza di occhiali, peli sul volto o il fatto di avere gli occhi aperti o chiusi.
  • – Riconoscimento dei segnali e degli ostacoli presenti sul percorso per i dispositivi di guida autonoma.
  • – Sistemi antifrode, grazie al riconoscimento automatico delle potenziali anomalie dei pattern previsti da sistemi come i Bancomat/POS

Riconoscimento vocale

Le reti neurali artificiali vengono impiegate per analizzare una conversazione umana ai fini di identificare i modelli discorso e aspetti quali l’intonazione, la lingua, l’accento ed altri dettagli tipici del parlato. Le applicazioni basate sul riconoscimento vocale sono tipiche degli assistenti virtuali e dei software di trascrizione automatica, su cui vengono strutturate attività come:

  • – Automatizzazione processi di call center, per classificare automaticamente le richieste di assistenza e supportare l’apertura di ticket
  • – Trascrivere automaticamente le conversazioni tenute nelle riunioni di lavoro
  • – Trascrivere conversazioni mediche in documentazione clinica
  • – Sottotitolare in tempo reale video e call ai fini di facilitare la partecipazione di utenti provenienti da differenti culture e contesti geografici

Elaborazione del linguaggio naturale

Il natural language processing (NLP) impiega una serie di tecniche per riconoscere i contenuti testuali creati dall’uomo. Se integrate da funzioni generative, le applicazioni NLP possono elaborare testi simili a quelli che l’uomo avrebbe scritto in analoghe circostanze contestuali.

Le reti neurali utilizzano documenti testuali per elaborare informazioni e significati utili ad una serie di applicazioni:

  • – Assistenti virtuali e chatbot intelligenti
  • – Riassunti di più documenti relativi a uno o più argomenti chiave e generazione automatica di nuovi contenuti riguardanti gli stessi temi
  • – Classificazione automatica dei dati per la gestione documentale
  • – Business intelligence su documenti lunghi e complessi
  • – Attività di sentiment analysis

Motori di raccomandazione

Le reti neurali artificiali vengono utilizzate per le applicazioni, prevalentemente in ambito marketing, che prevendono la redazione di suggerimenti personalizzati. I motori di raccomandazione raggiungono questo obiettivo a partire dall’analisi comportamentale dell’attività dell’utente, nota mediante un’attività di tracciamento.

L’analisi comportamentale consente infatti di abilitare molte applicazioni, a partire dalla previsione delle esigenze di un potenziale consumatore, con l’obiettivo di rendere più coinvolgente il customer journey attraverso una serie di suggerimenti capaci di facilitare e accelerare le conversioni.

Reti neurali e deep learning

Nel contesto più ampio dell’intelligenza artificiale si tende spesso ad utilizzare in maniera indistinta deep learning e reti neurali, anche se formalmente ciò non sarebbe esatto, in quanto le reti neurali possono essere costituite da pochi layer e non essere pertanto considerate quali profonde, a prescindere dal fatto che costituiscono degli algoritmi utilizzati nell’ambito dell’apprendimento automatico.

Il “deep” a cui fa riferimento il machine learning nella specifica sotto branca da esso derivata è infatti riferito alla profondità dei livelli che compongono una rete neurale.

Sulla base di questa premessa, una rete neurale caratterizzata da quattro o più livelli, comprensivi dei relativi input e output, viene considerata quale un algoritmo di deep learning, mentre quando sono riscontrabili soltanto due o tre livelli ci si riferisce ad una rete neurale di base.

Tags:

No responses yet

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Latest Comments

Nessun commento da mostrare.