Capitolo 5 di 1533%
Capitolo 5

Reti Neurali: L'Architettura dell'AI Moderna

Come funzionano i neuroni artificiali

🧠Struttura di una Rete Neurale

Una è composta da : input (riceve i dati), hidden (trasformano i segnali) e output (produce la previsione finale). Ogni connessione tra neuroni ha un peso che regola quanto una informazione influenza il risultato. Aumentare i può migliorare la capacità di rappresentare pattern complessi, ma aumenta anche costo e rischio di . Nota pratica: parti con un'architettura piccola e aggiungi complessità solo se i dati lo richiedono. Nel flusso di una contano anche principi di , , e .
Takeaway: una è efficace quando bilancia capacità, costo e generalizzazione.

📌Il Processo di Backpropagation

La è il meccanismo con cui la rete si corregge: confronta previsione e valore reale, calcola l'errore e aggiorna i pesi in direzione che riduce la perdita. In pratica è un ciclo continuo di tentativo, feedback e aggiustamento. Segnale utile: se la loss di training scende ma quella di validation peggiora, stai probabilmente overfittando. Nota pratica: monitora sempre training e validation insieme, non un solo numero.
Takeaway: il training efficace è guidato da feedback misurabile, non da tentativi casuali.

🚀Startup Lens

Le reti neurali hanno senso quando i pattern sono davvero complessi (immagini, linguaggio, segnali). Se il problema è lineare o il dataset è piccolo, un modello più semplice può dare risultati simili con costi minori, tempi più rapidi e maggiore spiegabilità.

⚠️Errore comune + Check rapido

Errore comune: aumentare senza una strategia di validazione.

Check rapido (2 min): guarda il tuo scenario e rispondi: stai scegliendo profondità perché serve davvero ai dati o solo perché sembra più potente?

🎙️ Podcast

In arrivo

Un episodio riflessivo sulle decisioni architetturali nelle reti neurali. Partendo dall'errore più comune — aggiungere layer perché 'sembra più potente' — il podcast guida lo studente attraverso 3 domande concrete: i dati supportano questa complessità? Il costo computazionale è giustificato? L'interpretabilità conta nel tuo contesto? Collega il concetto di profondità con la Startup Lens (quando un modello semplice batte uno complesso), con il rischio di overfitting visto in CH4, e con la scelta strategica del modello affrontata nel Capitolo 9. Takeaway operativo: la profondità non è un obiettivo — è una conseguenza dei dati.

media/ch05-neural-networks/sec-04/podcast.mp3

Mini Lab — La Tua Prima Rete Neurale

📋 Setup

Cosa imparerai in questo lab:

  • Caricare e visualizzare il dataset MNIST (immagini da 28x28 pixel)
  • Pre-processare i dati (Scaling) per accelerare l'apprendimento
  • Costruire un Multi-Layer Perceptron (MLP)
  • Valutare le predizioni visualizzando i numeri scritti a mano

🛠️ Perché Scikit-Learn e non PyTorch?

Nell'industria moderna si usano framework giganti come PyTorch o TensorFlow. Tuttavia in questo lab useremo Scikit-Learn. Perché?

  • Nessuna GPU richiesta: non devi installare 1GB+ di roba. Gira sul tuo PC in 5 secondi.
  • Focus sulla teoria: con PyTorch dovresti scrivere tu i cicli per i gradienti. Qui chiami .fit() e ti concentri sui livelli della rete, non sull'ingegneria del calcolo.

Prerequisiti:

  • ✅ Python 3.7+
  • ✅ pip installato

Comandi di avvio:

# 1. Estrai lo ZIP Lab 2 e accedi

$ cd ml-lab-02-neural-networks/

# 2. Installa le dipendenze

$ pip install -r requirements.txt

# 3. Esegui il lab (scaricherà MNIST la prima volta)

$ python main.py

Step 1

Scarica i Dati (MNIST)

Carica un subset di MNIST: 10.000 immagini di numeri scritti a mano — ogni immagine è una griglia 28×28 pixel = 784 feature per immagine.

Scarica i Dati (MNIST) — Codice

python

Loading...

🎯 Prova: Prova: stampa X.shape — cosa rappresentano quei 784 valori? (suggerimento: 28×28 pixel)

Step 2

Preprocessing (Scaling)

Le reti neurali lavorano male con pixel da 0 a 255. Lo StandardScaler porta media a 0 e deviazione standard a 1 — la discesa del gradiente converge molto più velocemente.

Preprocessing (Scaling) — Codice

python

Loading...

🎯 Prova: Rifletti: se non scalassi i dati, la discesa del gradiente farebbe balzi enormi — prova a commentare lo StandardScaler e confronta i risultati.

Step 3

Definisci e Allena l'Architettura

Crea un Multi-Layer Perceptron: hidden_layer_sizes=(50,) = 1 layer nascosto con 50 neuroni. Il solver SGD aggiorna i pesi con la backpropagation — vedrai la loss scendere ad ogni epoca.

Definisci e Allena l'Architettura — Codice

python

Loading...

🎯 Prova: Sperimenta: cambia hidden_layer_sizes=(50,) in (100, 50) — aggiungi un layer. L'accuracy migliora?

Step 4

Visualizza le Predizioni

Il modello prevede il numero dai pixel. La griglia 2×5 mostra i risultati: verde = corretto, rosso = sbagliato — gli errori di solito sono numeri ambigui come 4 vs 9 o 3 vs 8.

Visualizza le Predizioni — Codice

python

Loading...

🎯 Prova: Guarda l'immagine: gli errori sono su numeri scritti male? Per vedere numeri diversi, apri main.py e cambia random_state=42 nello Step 2 (es. random_state=7 o random_state=99) — ogni valore mostra un set completamente diverso.

🎯 Punti Chiave

  • Neuroni artificiali imitano il cervello
  • Peso dei neuroni = importanza della connessione
  • Backprop aggiusta i pesi per ridurre errori
  • Più layer = più capacità di astrazione
  • Learning outcome: descrivere come i pesi vengono aggiornati durante il training

💬 Discussione in Aula

  • Perché una rete neurale con 100 layer sarebbe diversa da una con 2 layer?
  • Come è simile Backpropagation al processo di imparare dai propri errori?
  • Cosa succederebbe se i pesi iniziali non fossero random ma zero?

Media del Capitolo

2/3 pronti

Gli slot con media reale non sono più placeholder; gli altri restano placeholder finché non carichiamo i file.

🎙️ Podcast

In arrivo

Versione audio del Capitolo 5: architettura delle reti neurali, backpropagation e decisioni operative. Quando usare reti neurali vs modelli più semplici, come leggere i segnali di overfitting durante il training, e perché la profondità non è sempre la risposta giusta. Orientato a chi deve scegliere, costruire e validare modelli in un contesto startup.

Durata target: 10-15 min

Path previsto: media/ch05-neural-networks/podcast.mp3

🧠 Quiz del Capitolo

Domanda 1 / 100/10 risposte

1. Un MLP con hidden_layer_sizes=(50, 50) ha due layer nascosti da 50 neuroni ciascuno. Cosa succede rispetto a (50,) con lo stesso dataset?

Seleziona una risposta per continuare