La loss function (in italiano: funzione di perdita o costo) è il modo in cui dici al modello "ecco quanto stai sbagliando". Tutto il gradient descent esiste per minimizzarla. Senza loss, niente training.
Loss tipiche per problema:
- Cross-entropy: standard per classificazione e per addestrare gli LLM. Penalizza sicurezze su risposte sbagliate.
- Mean Squared Error (MSE): per regressione, dove l'output è un numero. Semplice, ma sensibile agli outlier.
- Mean Absolute Error (MAE): come MSE ma con errore assoluto. Più robusta agli outlier.
- Hinge loss: classico delle SVM, ancora usato per certi compiti.
- Contrastive loss / Triplet loss: per imparare embedding, distinguere coppie simili da coppie diverse.
- KL divergence: misura distanza tra distribuzioni di probabilità. Usata in VAE e nel training RL degli LLM (vedi RLHF).
Nei modelli reali si combinano più loss. Esempio: nei VAE c'è una reconstruction loss + KL divergence. Nei modelli di rilevamento oggetti c'è classification loss + bounding box loss.
Punto cruciale: la loss che minimizzi NON è sempre quello che ti interessa davvero. Esempio: addestri un classificatore minimizzando cross-entropy, ma tu vuoi alta precision. Spesso bisogna scegliere loss che approssimano il vero obiettivo o usare metriche diverse per la valutazione (vedi precision e recall).
Quando la loss esplode o non scende, il problema sta nella loss, nel learning rate, o nei dati. In questo ordine.