Summaries
University notes in Markdown format from Obsidian.
Introduzione alle Reti Neurali (NN)
download Download MDDefinizione
Nella definizione più generale, le Reti Neurali (NN), spesso chiamate semplicemente reti neurali artificiali, sono modelli matematici e computazionali ispirati al funzionamento dei neuroni nel cervello umano.
Nella definizione specifica, le NN sono un insieme di unità interconnesse, chiamate neuroni artificiali o nodi, organizzate in strati o livelli.
- Questi neuroni elaborano informazioni attraverso operazioni matematiche su dati di input.
- Trasmettono l'output ai neuroni successivi attraverso pesi sinaptici.
- Gli strati intermedi, noti come strati nascosti, consentono alla rete di apprendere rappresentazioni complesse.
Le reti neurali apprendono dai dati mediante l'addestramento, regolando i pesi delle connessioni sinaptiche per minimizzare l'errore tra l'output previsto e quello desiderato.
Modelli Storici
Modello neurale di McCulloch & Pitt (1943)
È una rappresentazione semplificata di un neurone biologico che descrive un neurone artificiale composto da:
- Input: Segnali in ingresso (attivazioni 1 o 0).
- Pesi sinaptici: Importanza del collegamento.
- Funzione di somma: Somma ponderata dei segnali di input.
- Funzione di attivazione: Determina se il neurone deve attivarsi (tutto-o-nulla).
Perceptron di Frank Rosenblatt
Un algoritmo di apprendimento automatico basato sulla struttura del neurone. L'obiettivo è classificare gli input in due categorie (Classe A e Classe B). L'addestramento avviene aggiornando i pesi in base agli errori commessi.
Componenti Fondamentali
Funzioni di Attivazione
Introducono la non linearità nella rete, permettendo di apprendere modelli complessi.
- Sigmoid: Curva a "S", mappa l'input tra 0 e 1. Usata per classificazione binaria.
- ReLU (Rectified Linear Unit): $f(x) = \max(0, x)$. Restituisce l'input se positivo, 0 altrimenti. Molto usata nel Deep Learning per la sua semplicità e gestione del gradiente.
- Tanh (Tangente iperbolica): Mappa l'input tra -1 e 1.
Struttura della Rete (Feedforward)
Nelle reti Feedforward, l'informazione fluisce in una sola direzione (input $\to$ hidden $\to$ output) senza cicli. Ogni neurone in uno strato $k$ è connesso ai neuroni dello strato successivo.
Funzione di Perdita (Loss Function)
Misura l'errore tra l'output prodotto dalla rete e quello desiderato. L'obiettivo dell'addestramento è minimizzare questa funzione.
Per la Regressione:
- MAE (Mean Absolute Error): Media degli errori assoluti.
- MSE (Mean Squared Error): Media degli errori al quadrato (penalizza i grandi errori, differenziabile).
- SAE (Smooth Absolute Error): Ibrido tra MAE e MSE.
Per la Classificazione:
- Binary Cross Entropy (BCE): Per output binari (0 o 1).
- Categorical Cross Entropy (CCE): Per $K$ classi.
Ottimizzatore: Gradient Descent
Per minimizzare la funzione di perdita, si utilizza il Gradient Descent. L'algoritmo aggiorna i pesi muovendosi nella direzione opposta al gradiente della funzione di perdita. La formula di aggiornamento è:
Inizializzazione dei Pesi
L'inizializzazione è cruciale. Se i pesi partono tutti da zero, i neuroni apprenderanno le stesse caratteristiche (simmetria).
- Inizializzazione Semplice (Casuale): Rompe la simmetria, ma può causare la scomparsa/esplosione del gradiente.
- Inizializzazione di He: Ottimizzata per reti con attivazione ReLU. Imposta la varianza per mantenere il flusso del segnale stabile.
- Inizializzazione di Xavier (Glorot): Ottimizzata per Sigmoid/Tanh, bilancia la varianza di input e output.