Neural Network (NN)
Una rete neurale (NN) è composta da livelli di neuroni artificiali collegati, i cui pesi vengono appresi dai dati. Panoramica dei calcoli dei neuroni, dell'addestramento e dei principali tipi.
Una rete neurale (NN), chiamata anche rete neurale artificiale (ANN), è un modello di apprendimento automatico (ML) composto da layer di semplici unità connesse chiamate neuroni. Ogni neurone moltiplica i propri input per i pesi, aggiunge un bias e passa la somma attraverso una funzione di attivazione non lineare. La rete apprende regolando pesi e bias finché i suoi output non corrispondono agli esempi nei dati di addestramento, quindi il suo comportamento viene appreso dai dati. Il progetto si ispira in modo generico ai neuroni biologici, ma le reti moderne si comprendono meglio come grandi funzioni matematiche addestrabili. Le reti con molti layer sono oggetto dell'apprendimento profondo (DL) e alimentano la visione artificiale, il riconoscimento vocale e i modelli linguistici di grandi dimensioni (LLM).
Come calcola una rete neurale#
I neuroni sono organizzati in layer. Il layer di input riceve i dati, come valori dei pixel o letture dei sensori; uno o più layer nascosti li trasformano e il layer di output produce la previsione, ad esempio punteggi di classe o un valore previsto. In un layer completamente connesso, ogni neurone riceve tutti gli output del layer precedente, quindi l'intero layer corrisponde a una moltiplicazione di matrici seguita da un'attivazione elemento per elemento. Il passaggio dei dati in sequenza attraverso tutti i layer è il passaggio in avanti. L'attivazione rende utile la profondità: senza di essa, i layer sovrapposti si riducono a un'unica funzione lineare. Con essa, una rete con un solo layer nascosto sufficientemente ampio può approssimare qualsiasi funzione continua con precisione arbitraria, secondo il teorema di approssimazione universale.
Il frammento di codice in PyTorch qui sotto calcola manualmente un neurone e poi un intero strato di quattro neuroni in una sola volta:
import torch
from torch import nn
torch.manual_seed(1)
x = torch.tensor([0.5, -1.0, 2.0]) # one example with three input features
# A layer of four neurons: each has three weights and one bias
layer = nn.Linear(in_features=3, out_features=4)
# Neuron 0 by hand: weighted sum of inputs plus bias, then a ReLU activation
z = (layer.weight[0] * x).sum() + layer.bias[0]
print(f"Neuron 0 by hand: {torch.relu(z).item():.4f}")
# The layer computes all four neurons at once as one matrix multiplication
outputs = torch.relu(layer(x))
print(f"All four neurons: {[round(v, 4) for v in outputs.tolist()]}")Stampa Neuron 0 by hand: 0.3906 e All four neurons: [0.3906, 1.1465, 0.0, 0.0]. Il calcolo manuale coincide con quello del primo neurone del layer e l'attivazione ReLU azzera i due neuroni con somme pesate negative. Il layer memorizza 16 valori addestrabili, 12 pesi e 4 bias; le reti reali sovrappongono layer di questo tipo fino a raggiungere milioni o miliardi di parametri.
Come apprendono le reti neurali#
L'addestramento parte da pesi casuali e ripete un semplice ciclo. Un batch di esempi etichettati attraversa la rete in avanti, una funzione di perdita misura quanto le previsioni si discostano dalle etichette, la retropropagazione applica la regola della catena per calcolare il contributo di ogni peso all'errore e un ottimizzatore come la discesa stocastica del gradiente (SGD) o Adam sposta leggermente ogni peso nella direzione che riduce la perdita. Un passaggio completo sul set di addestramento è un'epoca e di solito l'addestramento si interrompe quando la perdita sui dati di validazione tenuti da parte smette di migliorare, perché una rete che continua ad adattarsi al set di addestramento oltre quel punto inizia a fare overfitting.
L'addestramento da zero richiede di solito grandi dataset etichettati, mentre il transfer learning riduce questo requisito partendo da pesi preaddestrati su un dataset di grandi dimensioni. Inoltre, i milioni di pesi appresi sono difficili da interpretare, il che stimola la ricerca sull'IA spiegabile (XAI).
Principali tipi di reti neurali#
Il modo in cui i neuroni sono connessi, chiamato architettura, determina quali dati una rete gestisce meglio:
- Reti feedforward: strati completamente connessi che trasmettono i dati in una sola direzione, detti anche percettroni multistrato (MLP). Sono adatti ai dati tabulari e fungono da componenti di modelli più grandi.
- Reti neurali convoluzionali (CNNs): fanno scorrere piccoli filtri condivisi su un'immagine tramite la convoluzione, l'architettura standard per la visione artificiale. Le connessioni residue consentono di arrivare a centinaia di strati.
- Reti neurali ricorrenti (RNNs): elaborano le sequenze passo dopo passo mantenendo uno stato nascosto, con versioni dotate di gate come LSTM e GRU per una memoria più lunga.
- Transformer: usano la self-attention per mettere in relazione ogni elemento di una sequenza con tutti gli altri in parallelo. Sono alla base degli LLM e dei transformer per la visione.
- Reti neurali spiking (SNNs): comunicano tramite spike discreti nel tempo, in modo più simile ai neuroni biologici, e funzionano in modo efficiente sui chip neuromorfici.
La maggior parte dei modelli attuali combina queste architetture. YOLO26 è una rete convoluzionale con blocchi di self-attention sulle mappe di caratteristiche a risoluzione più bassa, e il suo modello nano di rilevamento usa circa 2,4 milioni di parametri per individuare e classificare gli oggetti in un'immagine da 640×640 con un singolo passaggio in avanti.
Reti neurali e termini correlati#
- Deep learning: una rete neurale con uno o due strati nascosti è poco profonda; il deep learning consiste nell'addestrare reti con molti strati, che apprendono una propria gerarchia di caratteristiche dai dati grezzi. Ogni modello di deep learning è una rete neurale.
- Machine learning: le reti neurali sono una famiglia di modelli di machine learning, insieme ad alberi decisionali, macchine a vettori di supporto e alberi con boosting del gradiente, che restano altamente competitivi sui dati tabulari.
- Reti neurali biologiche: i neuroni reali comunicano tramite spike elettrici temporizzati e si adattano attraverso processi chimici che i neuroni artificiali non modellano. Le reti neurali spiking riproducono più fedelmente questo comportamento rispetto alle reti standard.
Una breve storia#
Nel 1943 Warren McCulloch e Walter Pitts descrissero un modello matematico del neurone, un'unità che si attiva quando la somma dei suoi input binari supera una soglia. Il percettrone di Frank Rosenblatt del 1958 imparava dai dati di esempio i pesi di unità di questo tipo, ma nel 1969 Marvin Minsky e Seymour Papert dimostrarono che un percettrone a singolo strato non può calcolare nemmeno la funzione XOR, e l'interesse scemò. Le reti multistrato risolvono XOR e, nel 1986, David Rumelhart, Geoffrey Hinton e Ronald Williams mostrarono che la backpropagation addestra i loro strati nascosti ad apprendere rappresentazioni interne utili. Nel 2012 le reti profonde conquistarono la visione artificiale: AlexNet, addestrata su due GPU, vinse la sfida ImageNet con un errore top-5 del 15,3%, contro il 26,2% del concorrente successivo.










