Nel machine learning (ML), una funzione di perdita serve a misurare le prestazioni di un modello calcolando la deviazione delle previsioni di un modello dalle previsioni corrette (ground truth). L'ottimizzazione di un modello comporta la regolazione dei parametri del modello per minimizzare l'output di una funzione di perdita.
Una funzione di perdita è un tipo di funzione obiettivo, che nel contesto della data science si riferisce a qualsiasi funzione la cui minimizzazione o massimizzazione rappresenta l'obiettivo dell'addestramento del modello. Il termine "funzione di perdita", che di solito è sinonimo di funzione di costo o funzione di errore, si riferisce specificamente a situazioni in cui la minimizzazione è l'obiettivo di addestramento di un modello di machine learning.
In parole povere, una funzione di perdita tiene traccia del grado di errore negli output di un modello di intelligenza artificiale (AI) . Lo fa quantificando la differenza ("perdita") tra un valore previsto, cioè l'output del modello per un dato input, e il valore effettivo o ground truth. Se le previsioni di un modello sono accurate, la perdita è minima. Se le previsioni sono imprecise, la perdita è ingente.
L'obiettivo fondamentale del machine learning è addestrare i modelli per produrre buone previsioni. Le funzioni di perdita ci permettono di definire e perseguire questo obiettivo matematicamente. Durante l'addestramento, i modelli "imparano" a produrre previsioni migliori regolando i parametri in modo da ridurre le perdite. Un modello di machine learning è sufficientemente addestrato quando la perdita è stata ridotta al minimo, al di sotto di una soglia prestabilita.
In una configurazione di addestramento tipica, un modello fa previsioni su un lotto di punti dati campione tratti dal set di dati di addestramento, e una funzione di perdita misura l'errore medio per ogni esempio. Queste informazioni vengono poi utilizzate per ottimizzare i parametri del modello.
Le funzioni di perdita sono specifiche dell'apprendimento supervisionato, i cui le attività di addestramento presuppongono l'esistenza di una risposta corretta: la ground truth. Gli algoritmi di apprendimento non supervisionato convenzionali, come il clustering o l'associazione, non implicano risposte "giuste" o "sbagliate", poiché cercano esclusivamente di scoprire pattern intrinseci in dati non etichettati.
L'apprendimento supervisionato richiede set di dati etichettati, in cui le annotazioni manuali forniscono la ground truth per ogni campione di addestramento. Ad esempio, i modelli di segmentazione delle immagini richiedono campioni di addestramento in cui ogni pixel è annotato in base alla sua classe corretta. Nell'apprendimento auto-supervisionato, che maschera o trasforma parti di campioni di dati non etichettati e incarica i modelli di ricostruirli, mentre il campione originale stesso funge da ground truth.
Le funzioni di perdita non sono semplicemente metriche di valutazione. Il loro scopo esplicito non è solo quello di misurare il successo del modello, ma anche di fungere da input per un algoritmo che ottimizza i parametri del modello per minimizzare la perdita.
Gli algoritmi di ottimizzazione come la discesa del gradiente utilizzano in genere il gradiente della funzione di perdita. Il gradiente è la derivata di una funzione con più variabili. In sostanza, una derivata descrive la velocità e l'entità con cui cambia l'output di una funzione in un dato punto. Pertanto, è importante che le funzioni di perdita siano differenziabili: in altre parole, che abbiano una derivata in tutti i punti.
I modelli di machine learning imparano a fare previsioni accurate modificando determinati parametri del modello. Ad esempio, un semplice algoritmo di regressione lineare modella i dati con la funzione y = wx+b, dove y è l'output del modello, x è l'input, w è un peso e b è un bias. Il modello apprende aggiornando i termini di peso e di bias finché la funzione di perdita non è stata sufficientemente minimizzata.
Utilizzando il gradiente della funzione di perdita, gli algoritmi di ottimizzazione determinano in quale direzione modificare gradualmente i parametri del modello per scendere lungo il gradiente e ridurre così la perdita.
I modelli di apprendimento profondo utilizzano grandi reti neurali artificiali, composte da strati di neuroni interconnessi, ciascuno dotato di una propria funzione di attivazione non lineare, anziché fare affidamento su una singola funzione. Per differenziare l'intera rete è necessario calcolare le derivate parziali di centinaia, migliaia o addirittura milioni di variabili separate e funzioni di attivazione rispetto alle altre.
Per fare ciò, le reti neurali utilizzano la retropropagazione per trovare il gradiente della funzione di perdita dopo un passaggio in avanti che termina con una previsione su un punto dati del set di dati di addestramento. La propagazione all'indietro dell'errore, ovvero la retropropagazione, inizia con l'output della funzione di perdita. Con un passaggio indietro attraverso la rete, dal livello di output a quello di input, la retropropagazione utilizza la regola della catena per calcolare il contributo di ogni singolo peso e bias della rete alla perdita complessiva.
Il gradiente risultante di derivate parziali per l'intera rete può quindi essere utilizzato dagli algoritmi di discesa del gradiente per aggiornare iterativamente i pesi della rete fino a quando la perdita non è stata sufficientemente minimizzata.
Sebbene i modelli siano addestrati e convalidati facendo previsioni su un insieme di dati di addestramento, ottenere buoni risultati sugli esempi di addestramento non è l'obiettivo finale. Il vero obiettivo del machine learning è addestrare modelli che si generalizzino bene a nuovi esempi.
Affidarsi esclusivamente alla minimizzazione di una singola funzione di perdita è chiamato "minimizzazione empirica del rischio". Sebbene il fascino sia evidente e semplice, corre il rischio che un modello esegua un overfitting dei dati di formazione e quindi si generalizzi male. Per ridurre questo rischio, tra gli altri scopi, molti algoritmi e architetture introducono termini di regolarizzazione che modificano la funzione di perdita primaria.
Ad esempio, l'errore assoluto medio (MAE), che in questo contesto è chiamato regolarizzazione L1, può essere utilizzato per imporre la sparsità penalizzando il numero di neuroni attivati in una rete neurale o l'ampiezza della loro attivazione.
Esiste un'ampia varietà di funzioni di perdita, ognuna adatta a diversi obiettivi, tipi di dati e priorità. Al livello più alto, le funzioni di perdita più comunemente utilizzate sono suddivise in funzioni di perdita di regression e funzioni di perdita di classificazione.
Le funzioni di perdita nella regressione misurano gli errori nelle previsioni che coinvolgono valori continui. Sebbene si applichino in modo più intuitivo ai modelli che stimano direttamente concetti quantificabili come prezzo, età, dimensioni o tempo, la perdita nella regressione ha un'ampia gamma di applicazioni. Ad esempio, una funzione di perdita nella regressione può essere utilizzata per ottimizzare un modello di immagine il cui compito consiste nella stima del valore del colore dei singoli pixel.
Le funzioni di perdita di classificazione misurano gli errori nelle stime che coinvolgono valori discreti, ad esempio la categoria a cui appartiene un punto dati o se un'e-mail è spam o meno. I tipi di perdita di classificazione possono essere ulteriormente suddivisi in quelli adatti alla classificazione binaria e quelli adatti alla classificazione a più classi.
La selezione di una qualsiasi funzione di perdita all’interno di queste due ampie categorie dovrebbe dipendere dalla natura del caso d’uso. Alcuni algoritmi di machine learning richiedono una funzione di perdita specifica, adatta alla loro struttura matematica, ma per la maggior parte delle architetture dei modelli esistono, almeno in teoria, più opzioni.
Diverse funzioni di perdita danno priorità a diversi tipi di errore. Ad esempio, alcuni potrebbero penalizzare duramente gli outlier mentre altri controllano la varianza minore. Alcuni garantiscono una maggiore accuratezza, ma a scapito di calcoli più complessi e, di conseguenza, di più tempo e risorse computazionali per effettuare i calcoli.
In definitiva, la scelta di una funzione di perdita dovrebbe riflettere l'attività di apprendimento specifica, la natura dei dati analizzati dal modello, i tipi di imprecisioni che saranno più costose e le risorse computazionali a disposizione.
I problemi di regressione, come la regressione lineare o polinomiale, producono valori continui determinando la relazione tra una o più variabili indipendenti (x) e una variabile dipendente (y): data x, predicono il valore di y. La perdita nella regressione deve quindi essere sensibile non solo al fatto che un risultato sia errato, ma anche al grado in cui diverge dalla verità di base.
La funzione di perdita dell'errore quadratico medio (MSE), nota anche come perdita L2 o perdita quadratica, è generalmente l'impostazione predefinita per la maggior parte degli algoritmi di regressione. Come suggerisce il nome, l'MSE viene calcolato come la media delle differenze quadratiche tra il valore previsto e il valore reale in tutti gli esempi di addestramento. La formula per calcolare l'MSE su n punti dati è scritta come 1n∑i=1n(yi-yi^)2, dove y è il valore vero e ŷ è il valore previsto.
Elevando l'errore al quadrato, il valore risultante è sempre positivo: pertanto, l'MSE valuta solo l'entità dell'errore e non la sua direzione. Elevare al quadrato l'errore conferisce inoltre agli errori di grandi dimensioni un impatto sproporzionatamente pesante sulla perdita complessiva, il che punisce fortemente i valori anomali e incentiva il modello a ridurli. L'MSE è quindi adatto quando si presume che gli output target abbiano una distribuzione normale (gaussiana).
L'MSE è sempre differenziabile, il che lo rende pratico per ottimizzare i modelli di regressione attraverso la discesa del gradiente.
Per i problemi di regressione in cui gli output target hanno un intervallo molto ampio di valori potenziali, come quelli che coinvolgono una crescita esponenziale, una pesante penalizzazione di errori di grandi dimensioni potrebbe essere controproducente. L'errore logaritmico quadratico medio (MSLE) compensa questo problema calcolando la media dei quadrati del logaritmo naturale delle differenze tra i valori previsti e quelli medi. Tuttavia, vale la pena notare che l'MSLE assegna una penalità maggiore alle previsioni troppo basse rispetto alle previsioni troppo alte.
La formula dell'MSLE è scritta come 1n∑i=1n(loge(1+yi)-loge(1+yi^))2
L'errore quadratico medio è la radice quadrata dell'MSE, il che lo rende strettamente correlato alla formula per le deviazioni standard. In particolare, l'RMSE è calcolato come:
.
L'RMSE rispecchia quindi in gran parte le qualità dell'MSE in termini di sensibilità ai valori anomali, ma è più facile da interpretare perché esprime la perdita nelle stesse unità del valore di output stesso. Questo vantaggio è in qualche modo attenuato dal fatto che il calcolo dell'RSME richiede un altro passaggio rispetto al calcolo dell'MSE, il che aumenta i costi computazionali.
L'errore assoluto medio o perdita L1, misura la differenza assoluta media tra il valore previsto e il valore effettivo. Come l'MSE, l'MAE è sempre positivo e non fa distinzione tra stime troppo alte o troppo basse. Viene calcolato come la somma del valore assoluto di tutti gli errori diviso per la dimensione del campione:
Poiché non eleva al quadrato ogni valore di perdita, il MAE è più efficace per gli outlier rispetto all'MSE. Il MAE è quindi ideale quando i dati potrebbero contenere alcuni valori estremi che non dovrebbero avere un impatto eccessivo sul modello. La perdita L1 penalizza maggiormente i piccoli errori rispetto alla perdita L2.
La funzione di perdita MAE non è differenziabile nei casi in cui l'output previsto corrisponde all'output reale. Pertanto, il MAE richiede ulteriori passaggi alternativi durante l'ottimizzazione.
La funzione di Huber, chiamata anche smooth L1 loss, mira a bilanciare i punti di forza sia del MAE che del MSE. Incorpora un iperparametro regolabile, δ, che funge da punto di transizione: per valori di perdita inferiori o uguali a δ, la perdita di Huber è quadratica (come MSE); per valori di perdita maggiori di δ, la perdita di Huber è lineare (come MAE).
La perdita di Huber offre quindi una funzione completamente differenziabile con la robustezza di MAE rispetto ai valori anomali e la facilità di ottimizzazione di MSE attraverso la discesa del gradiente. Il passaggio dal comportamento quadratico a quello lineare a δ comporta anche un'ottimizzazione meno soggetta a problemi quali la scomparsa o l'esplosione dei gradienti rispetto alla perdita di MSE.
Questi vantaggi sono mitigati dalla necessità di definire attentamente δ, aggiungendo complessità allo sviluppo del modello. La funzione di Huber è più appropriata quando né MSE né MAE possono produrre risultati soddisfacenti, ad esempio quando un modello deve essere resistente agli outlier ma deve comunque penalizzare severamente i valori estremi che superano una certa soglia specifica.
I problemi di classificazione e le funzioni di perdita utilizzate per ottimizzare i modelli che li risolvono, sono suddivisi in classificazione binaria, ad esempio, "spam" o "non spam", "approva" o "rifiuta", o classificazione multi-classe.
I problemi di classificazione a più classi possono essere affrontati in due modi. Un primo approccio consiste nel calcolare la probabilità relativa di un punto dati appartenente a ciascuna categoria potenziale, quindi selezionare la categoria a cui è assegnata la probabilità più alta. Questo approccio è tipicamente impiegato dalle reti neurali, utilizzando una funzione di attivazione softmax per i neuroni nel livello di output. L'approccio alternativo consiste nel dividere il problema in una serie di problemi di classificazione binaria.
Nella maggior parte dei casi, la perdita di classificazione è calcolata in termini di entropia. L'entropia è una misura dell'incertezza all'interno di un sistema. Per fare un esempio, paragoniamo il lancio di una moneta al lancio di un dado: il primo ha un'entropia inferiore, poiché ci sono meno potenziali risultati nel lancio di una moneta (2) rispetto al lancio di un dado (6).
Nell'apprendimento supervisionato, le previsioni del modello vengono confrontate con le classificazioni di ground truth fornite dalle etichette dei dati. Quelle etichette di ground truth sono certe e quindi hanno un'entropia bassa o assente. Pertanto, possiamo misurare la perdita in termini di differenza di certezza che avremmo utilizzando le etichette di ground truth rispetto alla certezza delle etichette previste dal modello.
La formula per la perdita di entropia incrociata (CEL) è derivata da quella della divergenza di Kullback-Leibler (divergenza KL), che misura la differenza tra due distribuzioni di probabilità. In definitiva, ridurre al minimo le perdite implica ridurre al minimo la differenza tra la distribuzione di verità di base delle probabilità assegnata a ciascuna potenziale etichetta e le probabilità relative per ciascuna etichetta prevista dal modello.
Per la classificazione binaria viene utilizzata la perdita di entropia incrociata binaria, detta anche perdita logaritmica. Gli algoritmi di classificazione binaria producono solitamente un valore di verosimiglianza compreso tra 0 e 1. Ad esempio, in un modello di rilevamento dello spam tramite e-mail, gli input di e-mail che producono output più vicini a 1 potrebbero essere etichettati come "spam". Gli input che producono output più vicini a 0 verrebbero classificati come "non spam". Un output di 0,5 indicherebbe la massima incertezza o entropia.
Anche se l'algoritmo emette valori compresi tra 0 e 1, i valori ground truth per le previsioni corrette sono esattamente "0" o "1". Riducendo al minimo la perdita di entropia incrociata binaria si penalizzano quindi le previsioni errate e anche le previsioni con bassa certezza. Ciò incentiva il modello ad apprendere parametri che producono previsioni non solo corrette ma anche affidabili. Inoltre, concentrarsi sui logaritmi dei valori di probabilità previsti porta l'algoritmo a penalizzare più pesantemente le previsioni che sono sicuramente sbagliate.
Per mantenere la convenzione comune secondo cui valori di perdita più bassi equivalgono a meno errori, il risultato viene moltiplicato per -1. La perdita logica per un singolo esempio i viene quindi calcolata come -(yi-log(p(yi))+(1-yi)-log(1-p(yi))), dove yi è la verosimiglianza - 0 o 1 - e p(yi) è la verosimiglianza prevista. La perdita media su un intero set di n esempi di addestramento viene quindi calcolata come –1n∑i=1nyi·log(p(yi))+(1-yi)·log(1-p(yi)) .
La perdita di entropia incrociata categoriale (CCEL) applica questo stesso principio alla classificazione multiclasse. Un modello di classificazione multiclasse produce solitamente un valore per ogni classe potenziale, il che rappresenta la probabilità che un input appartenga a ciascuna rispettiva categoria. In altre parole, le previsioni vengono emesse come una distribuzione di probabilità.
Nel deep learning, i classificatori di reti neurali utilizzano tipicamente una funzione di attivazione softmax per i neuroni nello strato di output. Il valore di ciascun neurone di output viene mappato su un numero compreso tra 0 e 1, con la somma complessiva dei valori pari a 1.
Ad esempio, in un punto dati contenente una sola categoria potenziale, i valori di ground truth per ciascuna previsione comprendono quindi "1" per la classe vera e "0" per ogni classe errata. Minimizzare la CCEL comporta aumentare il valore di output per la classe corretta e diminuire i valori di output per le classi errate, avvicinando così la distribuzione di probabilità a quella della ground truth. Per ogni esempio, la perdita logaritmica deve essere calcolata per ogni potenziale classificazione prevista dal modello.
Hinge loss è una funzione di perdita alternativa per problemi di classificazione binaria ed è particolarmente adatta per ottimizzare i modelli SVM (Support Vector Machine). In particolare, è una funzione di perdita efficace per ottimizzare un confine decisionale che separa due classi: i punti possono quindi essere classificati in base al lato del confine decisionale su cui ricadono.
Negli algoritmi che utilizzano la funzione di perdita Hinge, il valore di verità di base per ogni etichetta binaria è mappato su {-1, 1} anziché {0,1}. La funzione di perdita Hinge ℓ è definita come ℓ(𝑦)=max(0,1−𝑡⋅𝑦), in cui t è l'etichetta vera e y è l'output del classificatore. Il risultato di questa equazione è sempre non negativo: se 1−𝑡⋅𝑦 è negativo, cosa possibile solo quando t e y hanno lo stesso segno perché il modello ha previsto la classe corretta, la perdita è invece definita come 0.
Ciò offre diverse possibilità e incentivi:
Quando le previsioni del modello sono corrette e sicure, ovvero quando y è il segno corretto e |y| ≥ 1, il valore di 1–t⋅𝑦 sarà negativo e quindi ℓ = 0.
Quando le previsioni del modello sono corrette, ma non sicure, ovvero quando y è il segno corretto ma |y| < 1, il valore di ℓ sarà positivo, compreso tra 0 e 1. Questo disincentiva le previsioni incerte.
Quando le previsioni del modello sono errate, cioè, quando y ha un segno errato, il valore di ℓ sarà maggiore di 1 e aumenterà linearmente con il valore di |y|. Questo penalizza fortemente le previsioni errate.
Alcune architetture di modelli, in particolare quelle utilizzate nel deep learning, impiegano funzioni di perdita uniche e specializzate. Pur essendo uniche nel contesto e nella logica, tali funzioni obiettive sono spesso, ma non sempre, l'applicazione specializzata di una funzione di perdita comune a un determinato obiettivo di addestramento.
Per esempio:
Gli autoencoder sono modelli non supervisionati che imparano a codificare in modo efficiente una rappresentazione compressa dei dati di input comprimendoli attraverso un "collo di bottiglia", utilizzando poi quella rappresentazione compressa per ricostruire l'input originale. Gli autoencoder apprendono riducendo al minimo la perdita di ricostruzione: la differenza tra l'input originale e quello ricostruito, in genere calcolata tramite errore quadratico medio (MSE). Gli autoencoder variazionali incorporano la divergenza KL come termine di regolarizzazione.
I modelli di rilevamento degli oggetti minimizzano due tipi di perdita: la bounding box regression e la perdita di entropia incrociata. La prima utilizza MSE, MAE o una perdita specializzata come Intersection over Union (IoU) per confrontare le coordinate della bounding box prevista con quelle della ground truth. La seconda misura la classificazione dell'oggetto stesso.
L'apprendimento contrastivo, una forma di apprendimento auto-supervisionato, addestra un modello per produrre incorporamenti vettoriali simili per punti dati simili. Ha lo scopo di ridurre la perdita contrastiva o varianti specializzate come la perdita triplet.
Abbiamo intervistato 2.000 organizzazioni in merito alle loro iniziative di AI per scoprire cosa funziona, cosa non funziona e come giocare d’anticipo.
IBM Granite è la nostra famiglia di modelli AI aperti, efficienti e affidabili, su misura per le aziende e ottimizzati per scalare le applicazioni di AI. Esplora le opzioni di linguaggio, codice, serie temporali e guardrail.
Accedi al nostro catalogo completo di oltre 100 corsi online acquistando oggi stesso un abbonamento individuale o multiutente che ti consentirà di ampliare le tue competenze su una gamma di prodotti a un prezzo contenuto.
Condotto dai migliori leader di pensiero di IBM, il programma di studi è stato progettato per aiutare i dirigenti aziendali ad acquisire le conoscenze necessarie per dare priorità agli investimenti in AI che possono favorire la crescita.
IBM web domains
ibm.com, ibm.org, ibm-zcouncil.com, insights-on-business.com, jazz.net, mobilebusinessinsights.com, promontory.com, proveit.com, ptech.org, s81c.com, securityintelligence.com, skillsbuild.org, softlayer.com, storagecommunity.org, think-exchange.com, thoughtsoncloud.com, alphaevents.webcasts.com, ibm-cloud.github.io, ibmbigdatahub.com, bluemix.net, mybluemix.net, ibm.net, ibmcloud.com, galasa.dev, blueworkslive.com, swiss-quantum.ch, blueworkslive.com, cloudant.com, ibm.ie, ibm.fr, ibm.com.br, ibm.co, ibm.ca, community.watsonanalytics.com, datapower.com, skills.yourlearning.ibm.com, bluewolf.com, carbondesignsystem.com, openliberty.io