Il cuore dell'AI moderna, spiegato con analogie semplici: neuroni, strati, e la tua prima rete neurale con Keras.
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.
from tensorflow import keras modello = keras.Sequential([ keras.layers.Dense(16, activation="relu", input_shape=(4,)), keras.layers.Dense(1, activation="sigmoid") ]) modello.summary()
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.
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.
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).
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.
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).
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()
Esempio per il punto 2
modello.compile(
optimizer="adam",
loss="binary_crossentropy",
metrics=["accuracy"]
)
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)
Esempio per il punto 4
previsioni = modello.predict(X[:5]) print(previsioni)
Tocca ogni termine per vederne la definizione.
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.
Addestra due reti sullo stesso dataset: una con 8 neuroni nello strato nascosto, una con 32. Confronta l'accuratezza finale e commenta la differenza.
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.
Completa tutti i 5 passaggi della checklist per sbloccare il tuo attestato in PDF.