Introduzione al Corso, Obiettivi e Testi di Riferimento
Martedì 12-13iguoftb2BASIC_NEURAL++.
- Deitel, C++ How To Program - Buono se non conoscete C++ e vi serve un testo passo-passo.
- Stroustrup, Programming: Principles and Practice - (3^ Ed. 2024, C++20). Il manuale didattico introduttivo ufficiale del creatore del C++. Perfetto per iniziare.




- Tariq Rashid, Make Your Own Neural Network - Il libro su cui si baserà il nostro progetto finale. - Non usa librerie esterne, spiega la matematica alla base del Deep Learning passo dopo passo. - Ottimo per capire davvero come funziona una rete neurale prima di scriverla in C++.
g++).auto) e gli Smart Pointers..png o .jpg: le useremo in formato CSV, una riga per immagine — la prima colonna è la cifra, le altre 784 sono i pixel da 0 a 255.BASIC_NEURAL++BASIC_NEURAL++.Automobile che può essere guidata, o della Porta che può essere aperta…Matrice non è solo una griglia di numeri: è un oggetto che “sa” moltiplicarsi per un’altra matrice.Layer non è un array di pesi: espone forward() per propagare il segnale e backward() per calcolare il gradiente.Siete pronti a costruire la vostra IA?
Due domande da portarsi a casa. La prima ha una risposta numerica, la seconda no: le slide restano sul sito, ragionateci con calma.
1. Quanto costa riconoscere una cifra? La rete che costruiremo ha 784 ingressi, 200 neuroni nascosti e 10 uscite. Quante moltiplicazioni servono per classificare una immagine? E per una sola epoca, cioè un passaggio su tutte le 60.000 immagini di addestramento?
2. (aperta) Quanto pesa un numero scritto in chiaro? Un pixel di MNIST è un byte: un intero fra 0 e 255. Nel file CSV lo stesso pixel è scritto in cifre decimali, seguito da una virgola. Quanti caratteri costa? Stimate di quanto il file è più grosso dell’informazione che contiene, e chiedetevi chi paga il conto quando il programma lo legge.
1. I pesi sono \(784 \times 200 + 200 \times 10 = 158.800\), dunque circa \(1{,}6 \cdot 10^5\) moltiplicazioni per immagine. Un’epoca su 60.000 immagini ne chiede \(\approx 10^{10}\); dieci epoche, tenendo conto che il passaggio all’indietro costa all’incirca il doppio di quello in avanti, arrivano a \(\approx 3 \cdot 10^{11}\).
Trecento miliardi di moltiplicazioni per il “Hello World” del machine learning. È il motivo per cui tre slide di questa lezione parlano di linguaggi compilati: non è una questione di gusto. In laboratorio misurerete il tempo vero del vostro codice — tenete da parte questo numero e confrontatelo.
2. Traccia: 0, sono due caratteri, 255, sono quattro, per un solo byte di informazione. E ogni carattere va letto, riconosciuto come cifra e ricomposto in un numero: 60.000 righe per 785 valori fanno 47 milioni di numeri da ricostruire, a ogni lettura del dataset. È esattamente il lavoro del Laboratorio 12, dove scoprirete che “leggere un file” non è mai una banalità.