Cos'è una rete neurale?

Cos'è una rete neurale?

Una rete neurale è un programma di machine learning, o modello, che prende decisioni in modo simile al cervello umano, utilizzando processi che imitano il modo in cui i neuroni biologici lavorano insieme per identificare fenomeni, valutare opzioni e trarre conclusioni.

Ogni rete neurale è costituita da livelli di nodi o neuroni artificiali: un livello di input, uno o più livelli nascosti e un livello di output. Ogni nodo si connette ad altri e ha il suo peso e la sua soglia associati. Se l'output di qualsiasi singolo nodo è al di sopra del valore di soglia specificato, tale nodo viene attivato, inviando i dati allo strato successivo della rete. In caso contrario, non viene passato alcun dato al livello successivo della rete.

Le reti neurali si basano su dati di addestramento per apprendere e per migliorare la loro precisione nel tempo. Una volta messe a punto ai fini della precisione, sono strumenti potenti nel campo dell'informatica e dell'intelligenza artificiale che ci consentono di classificare e raggruppare i dati molto velocemente. Le attività di riconoscimento vocale o di riconoscimento delle immagini possono richiedere pochi minuti rispetto alle ore necessarie per l'identificazione manuale da parte di esperti umani. Uno degli esempi più noti di rete neurale è l'algoritmo di ricerca di Google.

Le reti neurali sono talvolta chiamate reti neurali artificiali (ANN, Artificial Neural Network) o reti neurali simulate (SNN, Simulated Neural Network). Sono un sottoinsieme del machine learning e sono al centro dei modelli di deep learning.

Le ultime tendenze in materia di AI, proposte da esperti

Ricevi insight selezionati sulle notizie più importanti e interessanti sull'AI. Iscriviti alla nostra newsletter settimanale Think. Leggi l'Informativa sulla privacy IBM.

Grazie per aver effettuato l'iscrizione!

L'abbonamento sarà fornito in lingua inglese. Troverai un link per annullare l'iscrizione in tutte le newsletter. Puoi gestire i tuoi abbonamenti o annullarli qui. Per ulteriori informazioni, consulta l'Informativa sulla privacy IBM.

Come funzionano le reti neurali?

Pensiamo a ciascun singolo nodo come al suo modello di regressione lineare, composto da dati di input, pesi, bias (o soglie) e un output. La formula sarebbe simile a questa:

∑wixi + bias = w1x1 + w2x2 + w3x3 + bias

output = f(x) = 1 if ∑w1x1 + b>= 0; 0 if ∑w1x1 + b < 0

Una volta determinato un livello di input, vengono assegnati i pesi. Questi pesi aiutano a determinare l'importanza di una determinata variabile, con quelli più grandi che contribuiscono in modo più significativo all'output rispetto ad altri input. Tutti gli input vengono poi moltiplicati per i rispettivi pesi e poi sommati. In seguito, l'output viene passato attraverso una funzione di attivazione, che determina l'output. Se l'output supera una determinata soglia, "innesca" o attiva il nodo, passando i dati al livello successivo della rete. In questo modo, l'output di un nodo diventa l'input del nodo successivo. Questo processo di passaggio dei dati da un livello a quello successivo definisce questa rete neurale come una rete feedforward.

Vediamo come potrebbe apparire un singolo nodo utilizzando i valori binari. Possiamo applicare questo concetto a un esempio più tangibile, come la scelta di andare a fare surf (Sì: 1, No: 0). La decisione di andare o non andare è il nostro risultato previsto, o ŷ. Supponiamo che ci siano tre fattori che influenzano il tuo processo decisionale:

  1. Le onde sono buone? (Sì: 1, No: 0)
  2. La line-up è vuota? (Sì: 1, No: 0)
  3. C'è stato un recente attacco di squalo? (Sì: 0, No: 1)

Quindi, supponiamo quanto segue, assegnando i seguenti input:

  • X1 = 1, visto che le onde sono belle e potenti
  • X2 = 0, visto che c'è tanta gente
  • X3 = 1, visto che non c'è stato un recente attacco di squalo

Ora dobbiamo assegnare dei pesi per determinare l'importanza. Pesi maggiori significano che particolari variabili sono di maggiore importanza per la decisione o il risultato.

  • W1 = 5, visto che delle onde belle e potenti non sono frequenti
  • W2 = 2, visto che le folle non sono una novità per te
  • W3 = 4, visto che hai paura degli squali

Infine, assumeremo anche un valore di soglia pari a 3, che si tradurrebbe in un valore di distorsione pari a -3. Con tutti i vari input, possiamo iniziare a inserire i valori nella formula per ottenere l'output desiderato.

Ŷ = (1*5) + (0*2) + (1*4) - 3 = 6

Se utilizziamo la funzione di attivazione dall'inizio di questa sezione, possiamo determinare che l'output di questo nodo sarebbe 1, poiché 6 è maggiore di 0. In questo caso, andresti a fare surf; ma se modifichiamo i pesi o la soglia, possiamo ottenere risultati diversi dal modello. Quando osserviamo una decisione, come nell'esempio precedente, possiamo vedere come una rete neurale possa prendere decisioni sempre più complesse a seconda dell'output di decisioni o livelli precedenti.

Nell'esempio sopra, abbiamo utilizzato i percettroni per illustrare parte della matematica in gioco qui, ma le reti neurali sfruttano i neuroni sigmoidi, che si distinguono per avere valori compresi tra 0 e 1. Poiché le reti neurali si comportano in modo simile alle strutture ad albero decisionali, trasmettendo dati a cascata da un nodo all'altro, avere dei valori x compresi tra 0 e 1 ridurrà l'impatto di qualsiasi modifica di una singola variabile sull'output di qualsiasi nodo e, di conseguenza, sull'output della rete neurale.

Quando inizieremo a pensare a casi d'uso più pratici per le reti neurali, come il riconoscimento o la classificazione delle immagini, utilizzeremo l'apprendimento supervisionato, o set di dati etichettati, per addestrare l'algoritmo. Mentre addestriamo il modello, vorremo valutarne l'accuratezza utilizzando una funzione di costo (o perdita). Questo è comunemente indicato anche come errore quadrato medio (MSE, Mean Squared Error). Nell'equazione seguente,

  • i rappresenta l'indice del campione,
  • ŷ è il risultato previsto,
  • y è il valore effettivo, e
  • m è il numero di campioni.

𝐶𝑜𝑠𝑡 𝐹𝑢𝑛𝑐𝑡𝑖𝑜𝑛= 𝑀𝑆𝐸=1/2𝑚 ∑129_(𝑖=1)^𝑚▒(𝑦 ̂^((𝑖) )−𝑦^((𝑖) ) )^2

L'obiettivo finale è quello di minimizzare la nostra funzione di costo per garantire la correttezza dell'adattamento per ogni osservazione. Via via che il modello regola i pesi e i bias, utilizza la funzione di costo e l'apprendimento per rinforzo per raggiungere il punto di convergenza, o il minimo locale. Il processo in cui l'algoritmo regola i suoi pesi è attraverso la discesa del gradiente, consentendo al modello di determinare la direzione da seguire per ridurre gli errori (o ridurre al minimo la funzione di costo). Con ogni esempio di addestramento, i parametri del modello si adattano per convergere gradualmente al minimo.

Leggi questo articolo di IBM Developer per una spiegazione più approfondita dei concetti quantitativi coinvolti nelle reti neurali.

La maggior parte delle reti neurali profonde sono feedforward, nel senso che fluiscono in una sola direzione, dall'input all'output. Tuttavia, è anche possibile addestrare il modello tramite la retropropagazione, ossia con uno spostamento nella direzione opposta, dall'output all'input. La retropropagazione ci consente di calcolare e attribuire l'errore associato a ciascun neurone, permettendoci di regolare e adattare adeguatamente i parametri del modello o dei modelli.

tipi di reti neurali

Le reti neurali possono essere classificate in diversi tipi, utilizzati per scopi diversi. Anche se questo non è un elenco completo di tipi, quanto segue è rappresentativo dei tipi più comuni di reti neurali che incontrerai nei loro casi d'uso comuni:

Il percettrone è la più antica rete neurale, creata da Frank Rosenblatt nel 1958.

Le reti neurali feedforward, o percettroni multistrato (MLP, Multi-Layer Perceptron), sono l'argomento principale di questo articolo. Sono costituiti da un livello di input, uno o più livelli nascosti e un livello di output. Anche se queste reti neurali sono comunemente chiamate MLP, è importante notare che in realtà sono costituite da neuroni sigmoidi, non da percettroni, poiché per la maggior parte, i problemi del mondo reale non sono lineari. Di solito i dati vengono inseriti in questi modelli per addestrarli e costituiscono la base della computer vision, dell'elaborazione del linguaggio naturale e di altre reti neurali.

Le reti neurali convolutive (CNN, Convolutional Neural Network) sono simili alle reti feedforward, ma di solito vengono utilizzate per il riconoscimento delle immagini, il riconoscimento dei modelli e/o la computer vision. Queste reti sfruttano i principi dell'algebra lineare, in particolare la moltiplicazione della matrice, per individuare i modelli all'interno di un'immagine.

Le reti neurali ricorrenti (RNN, Recurrent Neural Network) sono identificate dai loro cicli di feedback. Questi algoritmi di apprendimento vengono utilizzati principalmente quando si utilizzano i dati delle serie temporali per fare previsioni sui risultati futuri, come le previsioni del mercato azionario o le previsioni di vendita.

Reti neurali vs. deep learning

Il deep learning e le reti neurali tendono a essere usati in modo intercambiabile nelle conversazioni, il che può creare confusione. Di conseguenza, vale la pena notare che il termine "profondo (deep)" nel deep learning si riferisce solo alla profondità dei livelli di una rete neurale. Una rete neurale composta da più di tre livelli, che includerebbero gli input e l'output, può essere considerata un algoritmo di deep learning. Una rete neurale che ha solo due o tre livelli è solo una rete neurale di base.

Per maggiori informazioni sulle differenze tra reti neurali e altre forme di intelligenza artificiale, come il machine learning, leggi il post sul blog "AI, machine learning, deep learning e reti neurali: qual è la differenza?"

Storia delle reti neurali

La storia delle reti neurali è più lunga di quanto molti pensino. Sebbene l'idea di "una macchina che pensa" possa essere fatta risalire agli antichi greci, ci concentreremo sugli eventi chiave che hanno portato all'evoluzione del pensiero attorno alle reti neurali, che ha avuto alti e bassi di popolarità nel corso degli anni:

1943: Warren S. McCulloch e Walter Pitts hanno pubblicato "A logical calculus of the ideas immanent in nervous activity (link esterno a ibm.com)" Questa ricerca ha cercato di capire come il cervello umano possa produrre modelli complessi attraverso cellule cerebrali collegate, o neuroni. Una delle idee principali emerse da questo lavoro è stata la comparazione dei neuroni con una soglia binaria alla logica booleana (cioè 0/1 o affermazioni vere/false).

1958: a Frank Rosenblatt è riconosciuto lo sviluppo del percettrone, documentato nella sua ricerca "The Perceptron: A Probabilistic Model for Information Storage and Organization in the Brain" (link esterno a ibm.com). L'autore fa un ulteriore passo avanti rispetto al lavoro di McCulloch e Pitt, introducendo i pesi nell'equazione. Utilizzando un IBM 704, Rosenblatt è riuscito a fare in modo che un computer imparasse a distinguere le schede perforate a sinistra da quelle perforate a destra.

1974: sebbene numerosi ricercatori avessero contribuito all'idea di retropropagazione, Paul Werbos è stata la prima persona negli Stati Uniti a includerne l'applicazione nelle reti neurali all'interno della sua tesi di dottorato (link esterno a ibm.com).

1989: Yann LeCun ha pubblicato un articolo (link esterno a ibm.com) che illustra in che modo l'uso dei vincoli nella retropropagazione e la sua integrazione nell'architettura delle reti neurali possono essere utilizzati per addestrare gli algoritmi. Questa ricerca ha utilizzato con successo una rete neurale per riconoscere le cifre del codice postale scritte a mano fornite dal servizio postale degli Stati Uniti.

Mixture of Experts | Podcast

Decoding AI: Weekly News Roundup

Unisciti al nostro gruppo di livello mondiale di ingegneri, ricercatori, leader di prodotto e molti altri mentre si fanno strada nell'enorme quantità di informazioni sull'AI per darti le ultime notizie e gli ultimi insight sull'argomento.

Soluzioni correlate
IBM watsonx.ai

Addestra, convalida, adatta e implementa le funzionalità di AI generativa, foundation model e machine learning con IBM watsonx.ai, uno studio aziendale di nuova generazione per builder AI. Crea applicazioni AI in tempi ridotti e con una minima quantità di dati.

Scopri watsonx.ai
Soluzioni di intelligenza artificiale

Metti l'AI al servizio della tua azienda grazie all'esperienza leader di settore e alla gamma di soluzioni di IBM nel campo dell'AI.

Esplora le soluzioni AI
Consulenza e servizi sull'AI

Reinventa i flussi di lavoro e le operazioni critiche aggiungendo l'AI per massimizzare le esperienze, il processo decisionale in tempo reale e il valore di business.

Esplora i servizi AI
Fai il passo successivo

Ottieni l'accesso completo a funzionalità che coprono l'intero ciclo di vita dello sviluppo dell'AI. Crea soluzioni AI all'avanguardia con interfacce intuitive, workflow e accesso alle API e agli SDK standard di settore.

Esplora watsonx.ai Prenota una demo live