Reti neurali

Le reti neurali sono un modello computazionale ispirato al funzionamento del cervello umano, che è costituito da miliardi di neuroni interconnessi tra loro. Le reti neurali artificiali (o ANN, artificial neural network) sono formate da unità elementari chiamate neuroni artificiali, che ricevono degli input da altre unità o da fonti esterne, li elaborano e producono un output che viene trasmesso ad altre unità o a destinatari esterni.

Un neurone artificiale è caratterizzato da due elementi principali: una funzione di somma pesata, che combina gli input moltiplicandoli per dei coefficienti detti pesi, e una funzione di attivazione, che determina l’output del neurone in base al valore della somma pesata. I pesi rappresentano il grado di importanza di ciascun input e vengono modificati durante il processo di apprendimento della rete neurale, in modo da ottimizzare la capacità di risolvere il problema assegnato.

Le reti neurali artificiali sono composte da diversi livelli di neuroni artificiali, che si distinguono in: livello di input, che riceve i dati dal mondo esterno; uno o più livelli nascosti, che elaborano i dati provenienti dal livello precedente e li trasmettono al livello successivo; livello di output, che restituisce i risultati al mondo esterno.

Il numero e la disposizione dei livelli nascosti determinano la complessità e la potenza della rete neurale. Una rete con diversi livelli nascosti prende anche il nome di deep neural network.

Le reti neurali artificiali sono in grado di apprendere dai dati e di adattarsi a situazioni nuove o impreviste, grazie a degli algoritmi di apprendimento che modificano i pesi in base agli errori commessi dalla rete stessa.

Esistono diversi tipi di algoritmi di apprendimento, che si differenziano per il modo in cui viene calcolato e propagato l’errore nella rete. I principali sono:

  • apprendimento supervisionato, in cui la rete riceve degli input e degli output desiderati e cerca di minimizzare la differenza tra l’output prodotto e quello atteso;
  • apprendimento non supervisionato, in cui la rete riceve solo degli input e cerca di organizzarli in gruppi omogenei o di estrarre delle caratteristiche salienti;
  • apprendimento per rinforzo, in cui la rete riceve degli input e dei segnali di ricompensa o punizione in base alle azioni compiute e cerca di massimizzare la ricompensa totale.

Le reti neurali artificiali hanno numerose applicazioni in diversi ambiti, ad esempio, il riconoscimento vocale e facciale, la traduzione automatica, la diagnosi medica, la guida autonoma, il riconoscimento delle emozioni in NLP, la sintesi musicale e la generazione di immagini.

Hanno anche qualche problema, ad esempio, la necessità di grandi quantità di dati per l’apprendimento, la difficoltà per gli utilizzatori di interpretare il funzionamento interno della rete e le motivazioni delle sue decisioni (una rete neurale è assimilabile ad una black box), la possibilità di incorrere in errori o bias dovuti alla qualità dei dati o alla progettazione della rete.

Se volete provare e capire meglio come funziona una rete neurale, seguite questo link.

"KNIME Analytics Platform per Data Scientists, corso base o intermedio" su Udemy a 12.99€