Cos'è una rete neurale?
Esplora la soluzione di rete neurale di IBM Iscriviti agli aggiornamenti sugli argomenti dell'AI
Un volto AI che elabora le informazioni e impara a imitare l'essere umano.
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, pesare le opzioni e arrivare alle 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 al livello 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 imparare e migliorare la loro precisione nel tempo. Una volta ottimizzate per la precisione, sono strumenti potenti nel campo dell'informatica e dell'intelligenza artificiale, che ci consentono di classificare e raggruppare i dati ad alta velocità. Le operazioni 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 una 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 .

Crea flussi di lavoro AI responsabili con la governance AI

Scopri gli elementi costitutivi e le best practice per aiutare i tuoi team ad accelerare l'AI responsabile.

Contenuti correlati

Registrati per l'ebook sull'AI generativa

Come funzionano le reti neurali?

Pensa a ciascun singolo nodo come al proprio modello di regressione lineare, composto da dati di input, pesi, distorsioni (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

In definitiva, l'obiettivo è minimizzare la nostra funzione di costo per garantire la correttezza dell'adattamento per ogni data osservazione. Man mano che il modello regola i suoi pesi e la sua distorsione, 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.  

Consulta 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.

Ora disponibile: watsonx.ai

Il nuovissimo studio aziendale che riunisce il machine learning tradizionale e le nuove funzionalità di AI generativa basate su foundation model.

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 ciò su cui ci siamo concentrati principalmente in questo articolo. Sono costituiti da un livello di input, uno o più livelli nascosti e un livello di output. Anche se queste reti neurali vengono comunemente chiamate MLP, è importante notare che in realtà sono costituite da neuroni sigmoidi, non da percettroni, poiché la maggior parte dei problemi del mondo reale non sono lineari. Di solito i dati vengono inseriti in questi modelli per addestrarli e sono 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 identificare 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 machine learning, leggi il post sul blog "Confronto tra 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 il confronto 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 far sì che un computer imparasse a distinguere le carte segnate a sinistra da quelle segnate a destra.

1974: sebbene numerosi ricercatori avessero contribuito all'idea di retropropagazione, Paul Werbos è stata la prima persona negli Stati Uniti a prendere nota della sua 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 di rete neurale 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.

Soluzioni correlate
Soluzioni di deep learning

Progetta reti neurali complesse. Sperimenta su larga scala per implementare modelli di apprendimento ottimizzati all'interno di IBM Watson Studio.

Esplora le soluzioni di deep learning
IBM Watson Studio

Crea e scala un'IA attendibile su qualsiasi cloud. Automatizza il ciclo di vita dell'IA per ModelOps.

Esplora IBM Watson Studio
watsonx.ai

Fai un altro passo per iniziare a rendere operativa e a scalare l'AI generativa e l'apprendimento automatico per il business.

Esplora watsonx.ai
Risorse AI in azienda, 2021: sfruttare le opportunità attraverso i dati

Registrati per il nostro e-book per scoprire insight sulle opportunità, le sfide e le lezioni apprese dall'integrazione dell'AI nelle aziende.

Confronto tra AI, machine learning, deep learning e reti neurali: qual è la differenza?

Questi termini sono spesso usati in modo intercambiabile, ma quali differenze rendono ciascuna una tecnologia unica?

Reti neurali da zero

Ottieni una comprensione approfondita delle reti neurali, delle loro funzioni di base e dei fondamenti per costruirne una.

Fai il passo successivo

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 una minima quantità di dati.

Esplora watsonx.ai Prenota una demo live