Mattoni matematici e computazionali
Destinatari: studenti universitari, autodidatti in AI, data scientist junior, insegnanti STEM
Prerequisiti: conoscenze base di algebra lineare, derivate, Python
🎯 Obiettivi del modulo
- Comprendere le basi matematiche e computazionali che sottendono il funzionamento di una rete neurale.
- Familiarizzare con vettori, matrici e tensori come strutture fondamentali nella rappresentazione dei dati e dei modelli.
- Introdurre i concetti di calcolo differenziale automatico (autodiff) e computational graph.
- Acquisire i primi strumenti pratici per lavorare con librerie come NumPy e PyTorch.
- Costruire da zero una rete neurale semplice con forward pass e backpropagation.
🧱 Contenuti
1. 📐 Vettori, matrici e tensori: come ragiona il modello
- Le reti neurali trattano input numerici come vettori (1D), matrici (2D) o tensori (nD).
- Ogni livello di una rete effettua operazioni matriciali: moltiplicazioni, somme, funzioni di attivazione.
- Il tensore è l’unità fondamentale: ad esempio, un batch di immagini RGB è un tensore 4D (batch, altezza, larghezza, canali).
📌 Esempio pratico:
- Un input , un layer , output
✅ Competenze attese: interpretare il significato geometrico e computazionale di una rete come sequenza di trasformazioni lineari + non linearità.
2. 🔁 Differenziazione automatica e backpropagation
- La funzione obiettivo (loss function) misura quanto il modello sbaglia: ad esempio MSE, cross-entropy.
- Il calcolo del gradiente serve a capire come modificare i pesi per ridurre la loss.
- Backpropagation sfrutta la regola della catena per aggiornare ogni peso in funzione del gradiente della loss rispetto a quel peso.
🔬 Differenziazione automatica:
- Metodo che permette di calcolare derivate esatte senza scriverle manualmente.
- Le librerie moderne (es. PyTorch) costruiscono un computational graph e poi lo attraversano all’indietro per calcolare i gradienti (reverse-mode autodiff).
📌 Concetto chiave: l’ottimizzazione nei modelli neurali è possibile solo grazie alla propagazione del gradiente lungo il grafo computazionale.
3. 🧠 Struttura dei dati nei modelli neurali
- I dati (immagini, testo, suono) devono essere numerizzati e organizzati in tensori.
- Input → hidden layers → output: ogni livello produce una trasformazione.
- I pesi sono rappresentati come matrici/tensori e memorizzati come parametri addestrabili.
- Le architetture più complesse (CNN, RNN, Transformer) si costruiscono su questi elementi base.
📌 Focus: ciò che cambia è l’organizzazione e la connettività, ma le operazioni sono sempre su tensori.
4. ⚙️ Introduzione a NumPy e PyTorch
✅ NumPy:
- Libreria fondamentale per calcolo scientifico in Python.
- Operazioni su array, broadcasting, algebra lineare.
✅ PyTorch:
- Costruito su tensori simili a NumPy ma con autodiff e GPU support.
- Ogni
Tensor
tiene traccia della sua storia computazionale serequires_grad=True
. torch.autograd
permette di eseguire backprop automaticamente.
📌 Esempio:
import torch
x = torch.tensor([1.0, 2.0], requires_grad=True)
y = x ** 2 + 3 * x
z = y.sum()
z.backward()
print(x.grad) # output: gradiente di z rispetto a x
🧠 Computational Graph
- Ogni operazione crea un nodo nel grafo.
- PyTorch costruisce il grafo in tempo reale ("define-by-run").
🧪 LAB: Implementare una rete neurale semplice da zero
Obiettivo: costruire un modello con:
- 1 layer input
- 1 layer hidden (ReLU)
- 1 output (softmax o lineare)
Attività step-by-step:
- Inizializzazione pesi e bias con NumPy
- Forward pass: calcolo output
- Loss function: MSE o Cross-Entropy
- Backpropagation manuale: calcolo derivata, aggiornamento parametri
- Addestramento su un dataset semplice (es. XOR, AND, o dataset sintetico)
- Plot della loss nel tempo
📌 Sfida bonus: reimplementare la stessa rete usando PyTorch e confrontare risultati, performance e semplicità del codice.
📎 Materiali forniti
- Slide PDF con tutti i concetti e formule
- Foglio guida per il LAB (istruzioni + codice base)
- Notebook Colab con versione PyTorch + visualizzazione computational graph
- Dataset di test (XOR, MNIST semplificato)
🧩 Conclusione
I tensori sono i mattoni del ragionamento computazionale, le derivate sono la spinta dell’apprendimento, e librerie come PyTorch sono i mezzi con cui possiamo esplorare e costruire reti neurali. In questo modulo lo studente passa da concetti astratti a realizzazione pratica, unendo teoria matematica, logica computazionale e coding efficace.
🧾 Vuoi che converta il modulo in:
- Codice HTML per Blogger
- Scheda didattica PDF/Word
- Notebook Jupyter (Colab ready)
Fammi sapere, posso fornirti tutto il materiale pronto all’uso.
Nessun commento:
Posta un commento