La loss function (o funzione di costo) rappresenta quanto il nostro modello si sbaglia nelle sue previsioni rispetto ai dati di addestramento. Lβobiettivo durante lβaddestramento Γ¨ minimizzare questa funzione di costo, tramite gli Algoritmi di ottimizzazione cercando di rendere le previsioni del modello il piΓΉ accurate possibile.
Errore quadratico medio
Lβerrore quadratico medio (MSE, Mean Squared Error) Γ¨ una misura comune di quanto un modello di machine learning si discosti dalla veritΓ nei suoi output predetti. Viene utilizzato per valutare la precisione di un modello rispetto ai dati di addestramento o di test. LβMSE calcola la media dei quadrati delle differenze tra i valori predetti dal modello e i valori effettivi nei dati.
Dove:
- Γ¨ il numero totale di campioni nei dati.
- rappresenta il valore effettivo del campione .
- rappresenta il valore predetto dal modello per il campione .
Nel machine learning, lβMSE Γ¨ ampiamente utilizzato come funzione di costo per la regressione, dove l'obiettivo Γ¨ predire un valore continuo, come ad esempio prevedere il prezzo di una casa basandosi su diverse caratteristiche. Lβobiettivo dellβaddestramento di un modello di regressione Γ¨ quello di minimizzare lβMSE, ovvero ridurre lβerrore quadratico medio tra le previsioni del modello e i dati effettivi.
Ecco un esempio di utilizzo di Keras per addestrare un modello di regressione utilizzando lβerrore quadratico medio come funzione di costo:
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import Adam
import numpy as np
# Genera dati di esempio
X = np.random.rand(100, 1)
y = 2 * X + 1 + 0.1 * np.random.randn(100, 1)
# Crea un modello sequenziale
model = Sequential()
model.add(Dense(1, input_dim=1))
# Compila il modello utilizzando l'MSE come funzione di costo
model.compile(loss='mean_squared_error', optimizer=Adam(learning_rate=0.01))
# Addestra il modello
model.fit(X, y, epochs=100, verbose=0)
# Effettua previsioni
predictions = model.predict(X)
# Valuta l'errore quadratico medio
mse = np.mean((predictions - y) ** 2)
print("Mean Squared Error:", mse)
MSE standardizzato
LβMSE standardizzato, noto come coefficiente di determinazione ), misura la frazione della varianza nei dati che Γ¨ spiegata dal modello. Un valore piΓΉ alto di indica che il modello si adatta meglio ai dati. La formula per Γ¨ la seguente in formato LaTeX:
Di seguito un esempio di calcolo di in Python:
from sklearn.metrics import r2_score
# Calcola l'R^2
r2 = r2_score(y, predictions)
print("R-squared (R^2):", r2)
Un valore di vicino a 1 indica che il modello spiega una grande parte della varianza nei dati, mentre un valore vicino a 0 indica che il modello non spiega la varianza nei dati ed Γ¨ conseguentemente inutile.
lβErrore quadratico medio (MSE)
Altre
- Errore assoluto medio (Mean Absolute Error - MAE): MAE calcola la media delle differenze assolute tra le previsioni del modello e i valori reali. Anchβessa Γ¨ utilizzata in problemi di regressione.
- Entropia incrociata (Cross-Entropy o Log Loss): Questa funzione di costo Γ¨ comune nei problemi di classificazione. Misura la discrepanza tra le previsioni del modello e le etichette reali assegnando penalitΓ piΓΉ alte per le previsioni errate.
- Hinge Loss (o Support Vector Machine Loss): Utilizzata spesso in problemi di classificazione binaria, Γ¨ associata ai support vector machines e misura la classificazione errata dei campioni.
- Huber Loss: Una combinazione di MSE e MAE, che Γ¨ meno sensibile agli outlier rispetto allβerrore quadratico medio.
- Log-Cosh Loss: Simile allβerrore quadratico medio, ma con una penalitΓ piΓΉ morbida per i valori di errore elevati.