• Home
  • Chi sono
  • Risorse
  • Contatti
  • Approfondimenti
  • Cerca nel sito

Lorenzo Govoni

Business e Tecnologia

  • Big Data
  • Business
  • Excel
  • Intelligenza Artificiale

Funzione di perdita: come calcolare l’errore di un modello

funzione di perdita

La misurazione delle prestazioni del modello è il punto cruciale di qualsiasi algoritmo di apprendimento automatico e ciò viene fatto mediante l’uso di funzioni di perdita o funzioni di costo.

La scelta di queste funzioni può aiutare il modello ad apprendere meglio; al contrario, la scelta di quella sbagliata potrebbe portare il modello a non apprendere nulla di significativo.

In questo articolo, presenterò alcune delle funzioni di perdita più comunemente utilizzate.

Vediamo prima però la differenza tra funzione di perdita e funzione di costo.

 

Funzioni di perdita vs funzioni di costo

Le funzioni di perdita vengono utilizzate per determinare l’errore (noto anche come “la perdita”) tra l’output dei nostri algoritmi e il valore target specificato. In parole povere, la funzione di perdita esprime quanto lontano dalla previsione è il nostro output calcolato.

Sebbene la funzione di costo e la funzione di perdita siano sinonimi e usati in modo intercambiabile sono diversi.

La funzione di perdita viene utilizzata principalmente su un singolo set di addestramento, mentre la funzione di costo si occupa di calcolare una penalità per un numero maggiore di set di addestramento.

Possiamo dire che la funzione di perdita è una parte della funzione di costo e quest’ultima può essere calcolata come media delle funzioni di perdita.

Quindi, per un singolo ciclo di allenamento la perdita viene calcolata numerose volte, ma la funzione di costo viene calcolata solo una volta.

 

Funzione di perdita per problemi di regressione

Nei problemi di regressione tra le funzioni di perdita più diffuse abbiamo:

  • MSE o errore quadratico medio;
  • MAE o errore medio assoluto;
  • Huber Loss o perdita di Huber.

Vediamoli uno per uno brevemente.

 

Errore quadratico medio

Definita anche Mean Squared Error (MSE), rappresenta la funzione di perdita di regressione più comunemente utilizzata. L’errore quadratico medio è la somma delle distanze al quadrato tra la nostra variabile target e i valori previsti.

L’equazione di MSE viene così espressa:

Con

N numero di dati utilizzati per l’addestramento.

i – esimo record di addestramento in un set di dati.

Yi – valore target per l’i-esimo record.

Yip – valore previsto per l’i-esimo record.

 

MSE è sensibile ai valori anomali e, dati diversi esempi con gli stessi valori delle caratteristiche di input, la previsione ottimale sarà il loro valore target medio. Questo può essere confrontato con l’errore medio assoluto, dove la previsione ottimale è la mediana.

MSE è quindi utile se ritieni che i dati target, condizionati dall’input, siano normalmente distribuiti intorno a un valore medio e quando è importante penalizzare ulteriormente i valori anomali.

 

Errore Medio Assoluto

L’errore medio assoluto (MAE in inglese da Mean Absolute Error) è un’altra funzione di perdita utilizzata per i modelli di regressione che esprime la somma delle differenze assolute tra il nostro obiettivo e le variabili previste. Quindi misura l’entità media degli errori in una serie di previsioni, senza considerare le loro direzioni.

L’intervallo del risultato varia da 0 a ∞, ma valori inferiori sono di solito considerati migliori.

La formula del MAE può essere così sintetizzata:

Poiché stiamo prendendo il valore assoluto, tutti gli errori verranno pesati sulla stessa scala lineare. Pertanto, a differenza dell’MSE, non daremo troppo peso ai valori anomali e la funzione di perdita fornisce una misura generica e uniforme delle prestazioni del modello.

Al contrario, se in effetti ci preoccupiamo delle previsioni anomale del modello, il MAE non sarà altrettanto efficace. Gli errori grandi provenienti dai valori anomali finiscono per essere pesati esattamente come gli errori inferiori.

Ciò potrebbe comportare che il modello sia ottimo per la maggior parte del tempo, ma che ogni tanto faccia alcune previsioni molto scadenti.

 

Huber Loss

La funzione di Huber Loss è un’altra funzione di perdita che utilizza entrambe le metodologie sopra accennate.

Considera per semplicità un esempio in cui abbiamo un set di dati di 100 valori che vorremmo che il modello utilizzasse, durante l’addestramento, per eseguire previsioni. Di tutti questi dati, il 25% dei valori attesi è 5 mentre l’altro 75% è 10.

Una perdita di MSE non sarebbe sufficiente, dal momento che non abbiamo realmente “valori anomali”; Il 25% non è affatto una piccola frazione.

D’altra parte non vogliamo necessariamente pesare quel 25% troppo basso con un MAE. Quei valori di 5 non sono vicini alla mediana (pari a 10, poiché il 75% dei risultati ha un valore di 10), ma non sono nemmeno dei valori anomali.

In questo caso, la Huber Loss offre il meglio di entrambi i mondi bilanciando insieme MSE e MAE. Possiamo definirla utilizzando la seguente funzione a tratti:

Ciò che questa equazione dice essenzialmente è: per valori di perdita inferiori al delta, utilizza l’MSE; per valori di perdita maggiori del delta utilizza il MAE, in modo da combinare efficacemente il meglio di entrambe le due funzioni di perdita.

L’utilizzo del MAE per valori di perdita maggiori attenua il peso che attribuiamo ai valori anomali in modo da ottenere comunque un modello a tutto tondo. Allo stesso tempo usiamo il MSE per i valori di perdita più piccoli per mantenere una funzione quadratica vicino al centro.

Ciò ha l’effetto di ingrandire i valori di perdita fintanto che sono maggiori di 1. Una volta che la perdita per quei punti dati scende al di sotto di 1, la funzione quadratica li riduce per concentrare l’addestramento sui punti dati con errore più alto.

Funzione di perdita per problemi di classificazione

Nei problemi di classificazione tra le funzioni di perdita più utilizzate abbiamo:

  • Hinge Loss;
  • Cross Entropy Loss o Perdita dell’entropia incrociata;

Vediamoli uno per uno brevemente.

 

Hinge Loss

La Hinge Loss è una funzione di perdita che viene utilizzata insieme all’algoritmo Support Vector Machine (SVM) per problemi binari di classificazione.

Nell’ipotesi più semplice che l’SVM utilizzi un iperpiano lineare che possa separare direttamente i dati in due classi, si ha:

wx + w0 = 0

Con w vettore pesi, x vettore delle caratteristiche e w0 bias. Quando tale equazione è uguale a 0, il dato ricade sulla linea di separazione, altrimenti da una parte della linea (se minore di 0) o dall’altra (se maggiore di 0).

Utilizzando il segno della funzione z, capiamo la posizione del data point:

Nella funzione appena vista vediamo che la funzione assegnerà valori positivi se si trova da una parte, piuttosto che negativi se si troverà dall’altra parte della linea. Questo valore di segno, z, rappresenta la distanza (con segno positivo o negativo) dalla linea.

Si può usare questo valore per creare una perdita ingrandita dalla distanza dall’iperpiano lineare. Moltiplicando a z il valore y, che rappresenta la corretta etichetta del dato, otteniamo un numero positivo se ricade nell’area corretta della linea, o negativo se è errata.

La funzione di perdita, utilizzando un margine per definire la linea di decisione pari a 1, è così definita:

1 – yz

Volendo minimizzare le classificazioni errate, si ha che daremo un minimo di penalità quando il dato ricade nel margine e una penalità più elevata quando la classificazione è errata.

Filtrando per i valori negativi otteniamo finalmente la Hinge Loss, così definita:

LHinge = max (0; 1 – yz)

Quindi la penalità di ottenere un valore di z quando y è l’etichetta corretta è il massimo valore fra 0 e 1 – yz. In altre parole quando la classificazione è corretta otteniamo 0 in quanto la perdita è nulla; in caso contrario abbiamo 1 – yz come perdita, in quanto la classificazione è errata.

Graficamente la Hinge Loss si può così rappresentare:

 

Cross Entropy Loss

L’entropia incrociata è una misura della differenza tra due distribuzioni di probabilità per una determinata variabile casuale o insieme di eventi.

Per una maggiore comprensione, considera un classificatore che predice se un dato animale è cane, gatto o cavallo con una probabilità associata a ciascuno.

Supponiamo che l’immagine originale sia del cane e che il modello preveda i valori 0,7; 0,2; 0,1 come probabilità per le tre classi (con distribuzione di probabilità chiamata Q) in cui la vera probabilità assomiglia a [1,0,0] (con distribuzione di probabilità P). Ciò che idealmente vogliamo è che le nostre probabilità previste [0,7; 0,2; 0,1] siano vicine a questa originale distribuzione di probabilità [1,0,0].

Quindi l’entropia incrociata assicura di ridurre al minimo la differenza tra le due probabilità, definite Q e P. Essa può essere formalmente dichiarata come:

H (P, Q)

Dove H () è la funzione di entropia incrociata, P può essere la distribuzione attuale e Q è l’approssimazione della distribuzione target.

L’entropia incrociata può essere calcolata utilizzando le probabilità degli eventi da P e Q, come segue:

Dove P (x) è la probabilità dell’evento x in P, Q (x) è la probabilità dell’evento x in Q e loge è il logaritmo naturale (ln).

Questo calcolo è utilizzato per distribuzioni di probabilità discrete, sebbene un calcolo simile possa essere utilizzato per distribuzioni di probabilità continue utilizzando l’integrale tra gli eventi invece della somma.

Nell’esempio abbiamo che:

È poi possibile calcolare la media dell’entropia incrociata suddivisa dagli X campioni del dataset di training:

 

Conclusione

In questo articolo abbiamo visto 5 funzioni di perdita diffuse nel machine learning: 3 usate per problemi di regressione e 2 per problemi di classificazione.

A seconda della tipologia di problema da minimizzare, tutte le funzioni di perdita qui mostrate cercano di ridurre il gap tra valore previsto e valore effettivo.

Non esiste in via assoluta una funzione migliore rispetto alle altre: per ogni problematica vale la pena approfondire la metodologia che risulti essere più efficace ed adatta ad addestrare efficacemente il modello.

Procedendo in questo modo è possibile addestrare un modello correttamente ai dati per poter prevedere nuovi valori, quantomeno più prossimi a quelli target.

  • Introduzione alla Linear Discriminant Analysis (LDA)
    Introduzione alla Linear Discriminant Analysis (LDA)
  • Regressione lineare multipla: modello ed esempio di applicazione
    Regressione lineare multipla: modello ed esempio di…
  • Algoritmo k-means: cos’è e come funziona?
    Algoritmo k-means: cos’è e come funziona?
  • XGBoost in python per problemi di regressione
    XGBoost in python per problemi di regressione
Share
Pin1
Share
Tweet

Intelligenza Artificiale Machine Learning

  • Home
  • Archivio
  • Risorse
  • Newsletter
  • Cerca nel sito

Copyright © 2021 · Lorenzo Govoni - Privacy Policy