Architettura delle Reti Neurali
🧠 1. Il Neurone Artificiale e le Funzioni di Attivazione
Il neurone artificiale riceve input (x), li moltiplica per pesi (w), aggiunge un bias (b) e applica una funzione di attivazione:
y = f(∑(xᵢ * wᵢ) + b)
Funzioni di attivazione comuni:
- 🔹 ReLU → f(x) = max(0,x)
- 🔹 Sigmoide → Classificazione binaria
- 🔹 Tanh → Utilizzata in RNN
- 🔹 Softmax → Classificazione multiclasse
🏗️ 2. Architettura a Strati e Tipi di Reti
Ogni rete è composta da uno strato di input, uno o più strati nascosti e uno strato di output.
Tipi principali:
- 🧱 Perceptron – rete semplice, un solo strato
- 🧠 MLP – rete profonda con più strati
- 🖼️ CNN – per immagini (strati convoluzionali)
- 🎵 RNN – per testi, audio e sequenze
- 🌐 Transformer – per NLP e LLM (es. GPT)
⚙️ 3. Pesi, Bias e Grafo Computazionale
- ⚖️ Pesi: numeri appresi dal modello
- ➕ Bias: costanti per i neuroni
- 🔁 Backpropagation: aggiorna i pesi per ridurre l’errore
- 📊 Grafo computazionale: mappa delle operazioni
🧰 4. Introduzione a TensorFlow e PyTorch
Framework | Caratteristiche | Ideale per |
---|---|---|
PyTorch | Grafi dinamici, intuitivo | Ricerca e prototipazione |
TensorFlow | Grafi statici, deployment | Produzione e scalabilità |
🧪 LAB – Costruzione rete per classificazione (Iris Dataset)
Obiettivo: costruire una rete con un input di 4 feature, un hidden layer e 3 classi di output.
- 📚 Dataset: Iris (Setosa, Versicolor, Virginica)
- 📐 Input: 4 neuroni | Hidden: 10 neuroni (ReLU) | Output: 3 neuroni (Softmax)
- ⚙️ Framework: PyTorch o TensorFlow
Esempio in PyTorch:
class IrisNet(nn.Module): def __init__(self): super().__init__() self.fc1 = nn.Linear(4, 10) self.fc2 = nn.Linear(10, 3) def forward(self, x): x = torch.relu(self.fc1(x)) return self.fc2(x)
📚 Letture e risorse consigliate
✅ Conclusione
Hai appreso le basi teoriche e pratiche delle reti neurali.
Ora sei pronto per esplorare l’ottimizzazione dei modelli e il fine-tuning nei prossimi moduli!
Nessun commento:
Posta un commento