Guida Didattica · Percorso Python

Deep Learning e Reti Neurali

Il cuore dell'AI moderna, spiegato con analogie semplici: neuroni, strati, e la tua prima rete neurale con Keras.

0 di 5 passaggi completati

01Fondamenti

Cos'è una rete neurale?

Una rete neurale è un modello ispirato (in modo molto semplificato) al funzionamento del cervello: tanti "neuroni" artificiali collegati tra loro, organizzati in strati (layer). Ogni neurone riceve numeri in ingresso, li combina con un peso (proprio come il prodotto scalare visto nella guida sui fondamenti matematici), e passa il risultato al livello successivo.

📥Strato di inputRiceve i dati grezzi (es. i pixel di un'immagine).
🧠Strati nascostiElaborano e combinano le informazioni in modo sempre più astratto.
📤Strato di outputRestituisce il risultato finale (es. una previsione).

La tua prima rete neurale con Keras

from tensorflow import keras

modello = keras.Sequential([
    keras.layers.Dense(16, activation="relu", input_shape=(4,)),
    keras.layers.Dense(1, activation="sigmoid")
])
modello.summary()

02Concetti Chiave

🔗 Strati (layer) e neuroni▶

Uno strato "Dense" (completamente connesso) collega ogni neurone di uno strato a tutti quelli dello strato successivo. Il numero di neuroni e strati determina la "capacità" del modello di rappresentare pattern complessi.

⚡ Funzione di attivazione▶

Dopo aver combinato gli input con i pesi, ogni neurone applica una funzione non lineare (es. ReLU, sigmoid) che gli permette di modellare relazioni complesse, non solo lineari.

"relu" → restituisce 0 se negativo, altrimenti il valore stesso "sigmoid" → schiaccia il valore tra 0 e 1, utile per classificazione binaria
🔄 Backpropagation e training▶

Durante l'addestramento, la rete fa una previsione, misura quanto è sbagliata (loss), e regola i pesi all'indietro (backpropagation) per migliorare gradualmente, ripetendo questo processo su molti esempi (epoche).

📉 Loss function e ottimizzatore▶

La loss function misura l'errore tra previsione e valore reale. L'ottimizzatore (es. Adam) decide come aggiustare i pesi per ridurre quell'errore ad ogni passo di addestramento.

modello.compile(optimizer="adam", loss="binary_crossentropy", metrics=["accuracy"])
🏋️ Addestramento con fit()▶

Come nei modelli scikit-learn, anche Keras usa .fit() per addestrare, ma qui specifichi anche il numero di "epoche" (quante volte la rete rivede l'intero dataset).

modello.fit(X_train, y_train, epochs=20)

03Checklist Pratica

Spunta ogni passaggio man mano che lo completi: sbloccherai l'attestato di questa guida al termine.

Esempio per il punto 1

from tensorflow import keras

modello = keras.Sequential([
    keras.layers.Dense(8, activation="relu", input_shape=(3,)),
    keras.layers.Dense(1, activation="sigmoid")
])
modello.summary()
1. Costruisci una rete neurale sempliceCrea un modello Sequential con 2 strati, come nell'esempio sopra, e stampane il riepilogo.

Esempio per il punto 2

modello.compile(
    optimizer="adam",
    loss="binary_crossentropy",
    metrics=["accuracy"]
)
2. Compila il modelloUsa .compile() con ottimizzatore, loss e metrica, come nell'esempio sopra.

Esempio per il punto 3

import numpy as np

X = np.random.rand(100, 3)
y = np.random.randint(0, 2, 100)
modello.fit(X, y, epochs=10)
3. Addestra il modelloUsa .fit() su dati casuali (o reali) per qualche epoca, come nell'esempio sopra.

Esempio per il punto 4

previsioni = modello.predict(X[:5])
print(previsioni)
4. Fai una previsioneUsa .predict() su alcuni esempi, come nell'esempio sopra.
5. Completa il quiz di verificaScendi in fondo alla guida e rispondi correttamente ad almeno l'80% delle domande.

04Glossario Interattivo

Tocca ogni termine per vederne la definizione.

05Quiz di Verifica

06Esercitazioni Pratiche

Esercizio 1

Classificatore binario semplice

Crea un dataset con 200 esempi casuali (X con 4 feature, y con 0/1). Costruisci, compila e addestra una rete neurale per 15 epoche, poi valuta l'accuratezza finale.

⏱ 30 minuti📦 Script completo + accuratezza stampata🖥️ Individuale
Esercizio 2

Confronto tra due architetture

Addestra due reti sullo stesso dataset: una con 8 neuroni nello strato nascosto, una con 32. Confronta l'accuratezza finale e commenta la differenza.

⏱ 25 minuti📦 2 modelli confrontati + commento scritto🖥️ Individuale
Esercizio 3

Trova l'errore: dimensione input sbagliata

Questo codice genera un errore: il modello è definito con input_shape=(4,) ma i dati X hanno 3 colonne. Spiega perché la forma dei dati in ingresso deve corrispondere esattamente a quella definita nel primo strato.

⏱ 10 minuti📦 Spiegazione scritta🖥️ Individuale o in coppia

🎓 Attestato di completamento

Completa tutti i 5 passaggi della checklist per sbloccare il tuo attestato in PDF.

0 / 5 passaggi completati