Vai al contenuto principale

Funzioni di perdita nel machine learning: spiegate

Scopri le funzioni di perdita nel machine learning, la differenza tra loss e cost function, i tipi come MSE e MAE e le loro applicazioni nei compiti di ML.
Aggiornato 3 giu 2026  · 12 min leggi

Il machine learning e gli algoritmi e le tecniche correlate consistono fondamentalmente nel progettare, implementare e addestrare algoritmi per riconoscere schemi nei dati a cui sono esposti ed eseguire previsioni o classificazioni.

Gli algoritmi di machine learning apprendono con metodi diversi, ma un componente fondamentale del processo di apprendimento dei modelli e degli algoritmi di machine learning è la loss function. La loss function è un procedimento matematico che quantifica il margine di errore tra la previsione di un modello e il valore reale di destinazione. Più avanti in questo articolo, approfondiremo la loss function nel dettaglio.

TL;DR

  • Una loss function misura il divario tra le previsioni di un modello e i valori reali di destinazione, guidando l'algoritmo ad aggiustare i pesi e migliorare l'accuratezza.
  • Per la regressione, usa MSE quando vuoi penalizzare fortemente gli errori grandi, MAE quando gli outlier vanno trattati in modo uniforme, oppure la Huber Loss per un equilibrio tra le due.
  • Per la classificazione, la Binary Cross-Entropy funziona per problemi a due classi, la Categorical Cross-Entropy gestisce il multiclasse e la Hinge Loss per classificatori a margine come le SVM.
  • Librerie come scikit-learn, TensorFlow e PyTorch includono le loss function più comuni.

Le loss function in breve

La loss function è un modo misurabile per valutare le prestazioni e l'accuratezza di un modello di machine learning. In questo caso, la loss function funge da guida per il processo di apprendimento all'interno di un modello o di un algoritmo di machine learning.

Il ruolo della loss function è cruciale nell'addestramento dei modelli di machine learning e include quanto segue:

  • Misurazione delle prestazioni: le loss function offrono una metrica chiara per valutare le prestazioni di un modello quantificando la differenza tra previsioni e risultati reali.
  • Direzione per il miglioramento: le loss function guidano il miglioramento del modello indirizzando l'algoritmo ad aggiustare iterativamente i parametri (pesi) per ridurre la perdita e migliorare le previsioni.
  • Bilanciamento di bias e varianza: loss function efficaci aiutano a bilanciare il bias del modello (semplificazione eccessiva) e la varianza (overfitting), essenziali per la capacità del modello di generalizzare su nuovi dati.
  • Influenza sul comportamento del modello: alcune loss function possono influenzare il comportamento del modello, ad esempio rendendolo più robusto contro gli outlier nei dati o privilegiando specifici tipi di errori.

Esploriamo i ruoli di particolari loss function nelle sezioni successive e costruiamo un'intuizione e una comprensione dettagliate della loss function.

Che cos'è una loss function?

La loss function, detta anche funzione di errore, è un componente cruciale nel machine learning che quantifica la differenza tra gli output previsti da un algoritmo di machine learning e i valori reali di destinazione.

Per esempio, in un problema di regressione per prevedere i prezzi delle auto in base a dati storici, una loss function valuta la previsione di una rete neurale su un campione di addestramento. La loss function quantifica il divario, ovvero il margine di errore, tra il prezzo previsto dalla rete e il prezzo reale.

Il valore risultante, la perdita, riflette l'accuratezza delle previsioni del modello. Durante l'addestramento, un algoritmo di apprendimento come il backpropagation usa il gradiente della loss function rispetto ai parametri del modello per regolarli e minimizzare la perdita, migliorando di fatto le prestazioni del modello sul dataset.

diagramma della loss function

Spesso i termini loss function e cost function sono usati in modo intercambiabile; nonostante ciò, hanno definizioni distinte:

Come accennato, la loss function, detta anche funzione di errore, quantifica quanto sia buona una singola previsione dell'algoritmo rispetto al valore reale. Il punto chiave è che una loss function si applica a un singolo esempio di addestramento ed è parte del processo di apprendimento complessivo del modello che fornisce il segnale con cui l'algoritmo di apprendimento aggiorna pesi e parametri.

La cost function, talvolta chiamata funzione obiettivo, è una media della loss function sull'intero set di addestramento contenente molti esempi. La cost function quantifica le prestazioni del modello su tutto il dataset di training.

Approfondiamo come funzionano le loss function.

Come funzionano le loss function

Sebbene esistano diversi tipi di loss function, in sostanza operano tutte quantificando la differenza tra le previsioni di un modello e il valore reale nel dataset. Il termine ufficiale per questa quantificazione numerica è l'errore di previsione. L'algoritmo di apprendimento e i meccanismi in un modello di machine learning sono ottimizzati per minimizzare l'errore di previsione; ciò significa che, dopo il calcolo del valore della loss function, determinato dall'errore di previsione, l'algoritmo usa queste informazioni per aggiornare pesi e parametri e, al passaggio successivo di training, ottenere un errore di previsione inferiore.

Quando si esplorano loss function, algoritmi di machine learning e il processo di apprendimento nelle reti neurali, emerge il tema della Empirical Risk Minimization (ERM). ERM è un approccio per selezionare i parametri ottimali di un algoritmo di machine learning che minimizzano il rischio empirico. In questo caso, il rischio empirico è il dataset di addestramento.

La componente di minimizzazione del rischio in ERM è il processo con cui l'algoritmo interno riduce l'errore di previsione dell'algoritmo su un dataset noto, così che il modello abbia prestazioni e accuratezza attese quando si trova davanti a un dataset o campione non visto, con distribuzione statistica simile a quella dei dati su cui è stato inizialmente addestrato.

Tipi di loss function

Le loss function nel machine learning possono essere categorizzate in base ai compiti di ML a cui sono applicabili. La maggior parte si applica a problemi di regressione e classificazione. Nei compiti di regressione, dal modello ci si aspetta la previsione di valori di output continui. Nei compiti di classificazione, invece, il modello deve fornire etichette discrete corrispondenti a una classe del dataset.

Di seguito sono riportate loss function standard e la loro classificazione in base ai problemi di machine learning a cui si prestano bene. La maggior parte di queste loss function è trattata in dettaglio più avanti nell'articolo.

Loss Function

Applicabilità alla classificazione

Applicabilità alla regressione

Mean Square Error (MSE) / L2 Loss

✖️

✔️

Mean Absolute Error (MAE) / L1 Loss

✖️

✔️

Binary Cross-Entropy Loss / Log Loss

✔️

✖️

Categorical Cross-Entropy Loss

✔️

✖️

Hinge Loss

✔️

✖️

Huber Loss / Smooth Mean Absolute Error

✖️

✔️

Log Loss

✔️

✖️

Loss function per la regressione

Mean Square Error (MSE) / L2 Loss

La Mean Square Error (MSE) o L2 loss è una loss function che quantifica l'entità dell'errore tra la previsione di un algoritmo di machine learning e l'output reale facendo la media delle differenze al quadrato tra previsioni e valori di destinazione. Elevare al quadrato la differenza tra previsioni e valori reali comporta una penalizzazione maggiore per gli scostamenti più significativi dal valore obiettivo. La media degli errori normalizza il totale rispetto al numero di campioni nel dataset o nelle osservazioni.

L'equazione matematica per la Mean Square Error (MSE) o L2 Loss è:

MSE = (1/n) * Σ(yᵢ - ȳ)²

Dove:

  • n è il numero di campioni nel dataset
  • yᵢ è il valore previsto per il campione i-esimo
  • ȳ è il valore di destinazione per il campione i-esimo

Quando usare MSE

Capire quando usare MSE è fondamentale nello sviluppo dei modelli di machine learning. MSE è una loss function standard impiegata nella maggior parte dei compiti di regressione poiché indirizza il modello a ottimizzare per minimizzare le differenze al quadrato tra valori previsti e di destinazione.

MSE è consigliata in scenari di ML in cui è utile, per il processo di apprendimento, penalizzare in modo marcato la presenza di outlier. Tuttavia, queste caratteristiche non sono sempre adatte a casi d'uso in cui gli outlier sono dovuti a rumore nei dati piuttosto che a segnali utili.

Un esempio in cui si sfrutta MSE è la previsione dei prezzi immobiliari o, più in generale, il modelling predittivo. Prevedere i prezzi delle case implica usare caratteristiche come numero di stanze, posizione, metratura, distanza dai servizi e altre feature numeriche. I prezzi delle case in un'area localizzata sono normalmente distribuiti, quindi l'obiettivo di penalizzare gli outlier è essenziale per la capacità del modello di prevedere prezzi accurati.

Una piccola percentuale di errore nel real estate può equivalere a una somma rilevante. Per esempio, un errore del 5% su una casa da $200.000 è $10.000, che è consistente. Perciò, elevare gli errori al quadrato (come fa MSE) aiuta a dare maggior peso agli errori più grandi, spingendo il modello a essere più preciso con gli immobili di valore più alto.

Mean Absolute Error (MAE) / L1 Loss

La Mean Absolute Error (MAE), nota anche come L1 Loss, è una loss function usata nei compiti di regressione che calcola la media delle differenze assolute tra i valori previsti da un modello di machine learning e i valori reali di destinazione. A differenza della Mean Squared Error (MSE), MAE non eleva al quadrato le differenze, trattando tutti gli errori con lo stesso peso indipendentemente dalla loro entità.

L'equazione matematica per la Mean Absolute Error (MAE) o L1 Loss è:

MAE = (1/n) * Σ|yᵢ - ȳ|

Dove:

  • n è il numero di campioni nel dataset
  • yᵢ è il valore previsto per il campione i-esimo
  • ȳ è il valore di destinazione per il campione i-esimo

Quando usare MAE

MAE misura la differenza assoluta media tra valori previsti e reali. A differenza di MSE, MAE non eleva al quadrato le differenze, risultando meno sensibile agli outlier. Rispetto alla Mean Squared Error (MSE), la Mean Absolute Error (MAE) è intrinsecamente meno sensibile agli outlier perché assegna lo stesso peso a tutti gli errori, a prescindere dalla loro entità.

Questo significa che, mentre un outlier può distorcere notevolmente MSE contribuendo un errore sproporzionatamente grande quando elevato al quadrato, il suo impatto su MAE è molto più contenuto. L'influenza di un outlier sulla metrica di errore complessiva è minima quando si usa MAE come loss function. Al contrario, MSE amplifica l'effetto degli outlier a causa dell'elevamento al quadrato, influenzando maggiormente la stima dell'errore del modello.

mae vs mse

Uno scenario in cui MAE è una loss function applicabile è quando non vogliamo penalizzare molto, o per nulla, gli outlier, ad esempio nella previsione dei tempi di consegna per un'azienda di food delivery.

Un'azienda di consegne come UberEats, Deliveroo o DoorDash potrebbe costruire un modello di stima dei tempi di consegna per aumentare la soddisfazione dei clienti. Il tempo necessario per consegnare il cibo è influenzato da diversi fattori come meteo, incidenti stradali, lavori, ecc.

Gestire questi fattori è cruciale per stimare i tempi di consegna. Un approccio è classificare questi eventi come outlier ma scegliere di non farli incidere sul modello in addestramento. MAE è una loss function adatta in questo scenario perché tratterà con minore severità i punti dati anomali dovuti a lavori stradali o eventi rari, riducendo l'effetto degli outlier sulla metrica di errore e sul processo di apprendimento del modello.

MAE applica in modo evidente un peso d'errore uniforme a tutti i punti dati; nello scenario descritto, penalizzare gli outlier potrebbe portare a una sovrastima o sottostima dei tempi di consegna.

Huber Loss / Smooth Mean Absolute Error

La Huber Loss, o Smooth Mean Absolute Error, è una loss function che combina in un'unica funzione le caratteristiche vantaggiose di Mean Absolute Error e Mean Squared Error. La natura ibrida della Huber Loss la rende meno sensibile agli outlier, come MAE, ma penalizza anche gli errori piccoli nel campione, in modo simile a MSE. La Huber Loss è impiegata anche nei compiti di regressione.

L'equazione matematica della Huber Loss è la seguente:

L(δ, y, f(x)) = (1/2) * (f(x) - y)^2   if |f(x) - y| <= δ
               = δ * |f(x) - y| - (1/2) * δ^2   if |f(x) - y| > δ

Dove:

  • L rappresenta la Huber Loss
  • δ è il parametro delta, che determina la soglia per passare tra la componente quadratica e quella lineare della loss function
  • y è il valore reale o di destinazione
  • f(x) è il valore previsto

Quando usare Huber Loss / Smooth Mean Absolute Error

La Huber Loss combina efficacemente due componenti per gestire gli errori in modo diverso, con il punto di transizione determinato dalla soglia δ:

  • Componente quadratica per errori piccoli: per errori minori di δ, usa la componente quadratica (1/2) * (f(x) - y)^2
  • Componente lineare per errori grandi: per errori maggiori di δ, applica la componente lineare δ * |f(x) - y| - (1/2) * δ^2

La Huber Loss opera in due modalità commutate in base all'entità della differenza calcolata tra il valore reale e la previsione dell'algoritmo. Il termine chiave è delta (δ). Delta è una soglia che determina il confine numerico a cui la Huber Loss utilizza l'applicazione quadratica della perdita o il calcolo lineare.

La componente quadratica della Huber Loss riprende i vantaggi di MSE nel penalizzare gli outlier; nella Huber Loss questo si applica agli errori più piccoli di delta, garantendo una previsione più accurata del modello.

Se l'errore calcolato, cioè la differenza tra valori reali e previsti, è maggiore di delta, la Huber Loss utilizza il calcolo lineare della perdita, simile a MAE, con minore sensibilità alla dimensione dell'errore per evitare che il modello penalizzi eccessivamente gli errori grandi, soprattutto se il dataset contiene outlier o campioni poco probabili.

Loss function per la classificazione

Binary Cross-Entropy Loss / Log Loss

La Binary Cross-Entropy Loss (BCE) è una misura di prestazione per modelli di classificazione che producono una previsione come valore di probabilità tipicamente tra 0 e 1; questo valore corrisponde alla probabilità che un campione appartenga a una classe o categoria. Nel caso della Binary Cross-Entropy Loss, le classi sono due distinte. Notoriamente, una variante della cross-entropy, la Categorical Cross-Entropy, si applica a scenari di classificazione multiclasse.

Per capire la Binary Cross-Entropy Loss, talvolta chiamata Log Loss, è utile analizzare i termini che la compongono.

  • Loss: quantificazione matematica del margine/differenza tra la previsione di un algoritmo di machine learning e il valore reale di destinazione.
  • Entropia: una definizione semplice di entropia è la misura del grado di casualità o disordine in un sistema.
  • Cross Entropy: termine usato in teoria dell'informazione, misura la differenza tra due distribuzioni di probabilità utilizzate per identificare un'osservazione.
  • Binary: rappresentazione numerica con due soli stati, 0 o 1. Questo si estende alla definizione di classificazione binaria, in cui distinguiamo due classi (A e B) usando la rappresentazione binaria, dove alla classe A si assegna 0 e alla classe B 1.

La Binary Cross-Entropy Loss (o Log Loss) quantifica la differenza tra la previsione di un algoritmo di machine learning e il valore reale, calcolata come valore negativo della somma dei logaritmi delle probabilità delle previsioni fatte dall'algoritmo rispetto al numero totale di campioni. BCE è usata in casi d'uso di machine learning come la regressione logistica e nell'addestramento di reti neurali artificiali progettate per prevedere la probabilità che un campione appartenga a una classe e che utilizzano internamente la funzione di attivazione sigmoid.

L'equazione matematica per la Binary Cross-Entropy Loss, nota anche come Log Loss, è:

L(y, f(x)) = -[y * log(f(x)) + (1 - y) * log(1 - f(x))]

Dove:

  • L rappresenta la Binary Cross-Entropy Loss
  • y è l'etichetta binaria reale (0 o 1)
  • f(x) è la probabilità prevista della classe positiva (tra 0 e 1)

Quando usare Binary Cross-Entropy Loss / Log Loss

L'equazione sopra si applica specificamente a uno scenario in cui l'algoritmo deve effettuare una classificazione tra due classi. Questo è un caso di classificazione binaria.

Come si nota dal simbolo negativo: '-' BCE calcola la perdita determinando il negativo di due termini e, per più previsioni o campioni, la media del negativo dei seguenti due termini:

  1. Il logaritmo della probabilità prevista dal modello quando è presente la classe positiva: y * log(f(x))
  2. Il logaritmo di 1 meno la probabilità prevista della classe negativa: (1 - y) * log(1 - f(x))

La BCE penalizza le previsioni inaccurate, cioè quelle con grande scostamento dalla classe positiva o, in altre parole, con alta entropia. Quando BCE è usata come componente degli algoritmi di apprendimento, incoraggia il modello a raffinare le proprie previsioni, ossia le probabilità per la classe corretta durante l'addestramento.

Hinge Loss

La Hinge Loss è una loss function utilizzata nel machine learning per addestrare classificatori che ottimizzano per aumentare il margine tra i punti dati e la decision boundary. È quindi usata principalmente per classificazioni a margine massimo. Per garantire il margine massimo tra punti e confini, la hinge loss penalizza le previsioni del modello che sono classificate erroneamente, cioè che cadono dal lato sbagliato della margin boundary, e anche le previsioni corrette ma troppo vicine alla decision boundary.

Questa caratteristica della Hinge Loss assicura che i modelli siano in grado di assegnare con accuratezza i punti dati al valore di destinazione con una confidenza che supera la soglia del confine decisionale. Questo approccio all'apprendimento dell'algoritmo migliora le capacità di generalizzazione del modello, rendendolo efficace nel classificare correttamente i punti dati con un alto grado di certezza.

L'equazione matematica della Hinge Loss è:

L(y, f(x)) = max(0, 1 - y * f(x))

Dove:

  • L rappresenta la Hinge Loss
  • y è l'etichetta reale o valore di destinazione (-1 o 1)
  • f(x) è il valore previsto o l'output della funzione di decisione

Scegliere la loss function giusta

Selezionare la loss function appropriata da applicare a un algoritmo di machine learning è essenziale, poiché le prestazioni del modello dipendono in gran parte dalla capacità dell'algoritmo di apprendere o adattare i pesi interni per adattarsi a un dataset.

Le prestazioni di un modello o algoritmo di machine learning sono definite dalla loss function utilizzata, principalmente perché questa componente influenza l'algoritmo di apprendimento usato per minimizzare il valore della perdita o della cost function del modello. In sostanza, la loss function incide sulla capacità del modello di apprendere e adattare il valore dei propri pesi interni per cogliere gli schemi all'interno di un dataset.

Quando è selezionata correttamente, la loss function consente all'algoritmo di apprendimento di convergere efficacemente verso una perdita ottimale durante la fase di training e di generalizzare bene a campioni non visti. Una loss function adeguata funge da guida, indirizzando l'algoritmo verso accuratezza e affidabilità, assicurando che catturi gli schemi sottostanti nei dati evitando overfitting o underfitting.

Fattori da considerare nella scelta di una loss function

Comprendere il tipo di problema di machine learning aiuta a determinare la categoria di loss function da utilizzare. Loss function diverse si applicano a problemi di ML differenti.

Classificazione vs Regressione

I compiti di classificazione solitamente implicano l'assegnazione di punti dati a una specifica etichetta di categoria. Con questo tipo di compito, l'output del modello è tipicamente un insieme di probabilità che determinano la probabilità che un punto dati abbia una certa etichetta.

La cross-entropy è comunemente usata per compiti di classificazione. In un compito di regressione, dove l'obiettivo è che un modello produca una previsione sulla base di un set di input, loss function come mean squared error o mean absolute error sono più adatte.

Classificazione binaria vs multiclasse

La classificazione binaria prevede la categorizzazione dei campioni in due categorie distinte, mentre la classificazione multiclasse, come suggerisce il nome, prevede più di due categorie. Per problemi di classificazione con due classi (binaria), è ideale sfruttare la binary cross-entropy. Quando le classi sono più di due, va utilizzata la categorical cross-entropy.

Sensibilità

Un altro fattore da considerare è la sensibilità della loss function agli outlier. In alcuni scenari è desiderabile penalizzare, durante l'addestramento, gli outlier e i campioni che alterano la distribuzione statistica complessiva del dataset; in tali casi, loss function come la mean squared error sono adatte.

Esistono invece scenari in cui è richiesta una minore sensibilità agli outlier, cioè quando gli outlier potrebbero essere "eventi mai" o poco probabili. Con questo obiettivo, penalizzarli potrebbe produrre un modello poco performante. In tali casi è applicabile una loss function come la mean absolute error. Per ottenere il meglio di entrambi i mondi, si può considerare la Huber Loss, che combina componenti che penalizzano gli outlier con errori piccoli e riduce la sensibilità del modello a outlier con errori grandi.

Efficienza computazionale

La risorsa computazionale è una commodity nel machine learning, sia nel mondo commerciale sia nella ricerca. Disporre di grande capacità di calcolo consente di sperimentare con dataset ampi e risolvere problemi più complessi. Alcune loss function sono più onerose di altre, soprattutto quando il numero di dati è grande. Questo rende l'efficienza computazionale una variabile da considerare nella scelta della loss function.

Fattore

Descrizione

Tipo di problema di apprendimento

Classificazione vs Regressione; Classificazione binaria vs multiclasse.

Sensibilità del modello agli outlier

Alcune loss function sono più sensibili agli outlier (ad es., MSE), mentre altre sono più robuste (ad es., MAE).

Comportamento desiderato del modello

Influenza il comportamento del modello; ad es., la hinge loss nelle SVM punta a massimizzare il margine.

Efficienza computazionale

Alcune loss function sono più intensive dal punto di vista computazionale, influenzando la scelta in base alle risorse disponibili.

Proprietà di convergenza

La regolarità e la convessità di una loss function possono influire sulla facilità e velocità di training.

Scala del compito

Per compiti su larga scala, è cruciale una loss function che scali bene e sia ottimizzabile in modo efficiente.

Impatto degli outlier e della distribuzione dei dati

Gli outlier sono campioni che cadono al di fuori della distribuzione statistica complessiva di un dataset; sono talvolta chiamati anomalie o irregolarità. Il modo in cui si gestiscono gli outlier determina le prestazioni e l'accuratezza del modello addestrato.

Come detto, gli outlier nei dataset influenzano i valori d'errore usati nelle loss function, a seconda della funzione impiegata. L'effetto degli outlier sulle loss function si propaga all'esito del processo di apprendimento dell'algoritmo, il che può portare a comportamenti voluti o indesiderati del modello.

Per esempio, la mean squared error penalizza gli outlier contribuendo termini d'errore grandi; ciò significa che durante l'addestramento i pesi del modello vengono regolati per imparare ad accomodare questi outlier. Se questo non è il comportamento desiderato, il modello finale dopo il training avrà una scarsa generalizzazione su dati non visti. Per scenari in cui bisogna mitigare l'impatto degli outlier, funzioni come MAE e Huber Loss sono più applicabili.

Loss Function

Applicabilità alla classificazione

Applicabilità alla regressione

Sensibilità agli outlier

Mean Squared Error (MSE)

✖️

✔️

Alta

Mean Absolute Error (MAE)

✖️

✔️

Bassa

Cross-Entropy

✔️

✖️

Media

Hinge Loss

✔️

✖️

Bassa

Huber Loss

✖️

✔️

Media

Log Loss

✔️

✖️

Media

Implementare le loss function

Esempi di implementazione di loss function comuni

Implementazione di MAE in Python

# Python implementation of Mean Absolute Error (MAE)

def mean_absolute_error(actual:list, predicted:list) -> float:
    """
    Calculate the Mean Absolute Error between actual and predicted values

    :param actual: list, actual values
    :param predicted: list, predicted values
    :return: float, the calculated MAE
    """
    # Ensure the length of the two lists are the same
    if len(actual) != len(predicted):
        raise ValueError("The length of actual values and predicted values must be the same")

    # Calculate the absolute differences
    absolute_diffs = [abs(act - pred) for act, pred in zip(actual, predicted)]
    
    # Calculate the mean of the absolute differences
    mae = sum(absolute_diffs) / len(actual)
    
    return mae

# Example usage:
# actual values
y_true = [3, -0.5, 2, 7]

# predicted values
y_pred = [2.5, 0.0, 2, 8]

# Calculate MAE
mae_value = mean_absolute_error(y_true, y_pred)
print(mae_value)
# 0.5

Implementazione di MSE in Python

# Python implementation of Mean Squared Error (MSE) / L2 Loss

def mean_squared_error(actual:list, predicted:list) -> float:
    """
    Calculate the Mean Squared Error between actual and predicted values

    :param actual: list, actual values
    :param predicted: list ,predicted values
    :return: float, the calculated MSE
    """
    # Ensure the length of the two lists are the same
    if len(actual) != len(predicted):
        raise ValueError("The length of actual values and predicted values must be the same")

    # Calculate the squared differences
		# (yᵢ - ȳ)²
    squared_diffs = [(act - pred) ** 2 for act, pred in zip(actual, predicted)]
    
    # Calculate the mean of the squared differences
    mse = sum(squared_diffs) / len(actual)
    
    return mse

# Example usage:
# actual values
y_true = [1, 2, 3, 4, 5]

# predicted values
y_pred = [1.1, 2.2, 2.9, 4.1, 4.9]

# Calculate MSE
mse_value = mean_squared_error(y_true, y_pred)
print(mse_value)
# 0.015999999999999993

Uso delle librerie per implementare le loss function

Sebbene sia possibile implementare loss function personalizzate, e librerie di deep learning come TensorFlow e PyTorch supportino l'uso di funzioni di perdita su misura nelle reti neurali, librerie come scikit-learn, TensorFlow e PyTorch offrono implementazioni integrate delle loss function più utilizzate.

Queste funzionalità preintegrate ne facilitano l'adozione e astraggono le complessità dell'implementazione, snellendo lo sviluppo dei modelli di machine learning.

L'uso di queste librerie di deep learning offre vantaggi rispetto a implementazioni in puro Python, tra cui:

  • Semplicità d'uso
  • Efficienza e ottimizzazione
  • Supporto GPU e calcolo parallelo
  • Supporto della community di sviluppatori

Mean Absolute Error (MAE) con la libreria scikit-learn

from sklearn.metrics import mean_absolute_error

# actual values
y_true = [3, -0.5, 2, 7]

# predicted values
y_pred = [2.5, 0.0, 2, 8]

# Calculate MAE using scikit-learn
mae_value = mean_absolute_error(y_true, y_pred)
print(mae_value)
#0.5

Mean Squared Error (MSE) con la libreria scikit-learn

from sklearn.metrics import mean_squared_error

# actual values
y_true = [1, 2, 3, 4, 5]

# predicted values
y_pred = [1.1, 2.2, 2.9, 4.1, 4.9]

# Calculate MSE using scikit-learn
mse_value = mean_squared_error(y_true, y_pred)
print(mse_value)
# 0.016

Conclusione

In sintesi, scegliere la loss function giusta è cruciale per un addestramento efficace dei modelli di machine learning. Questo articolo ha evidenziato le principali loss function, il loro ruolo negli algoritmi di ML e la loro adeguatezza a compiti differenti. Dalla Mean Squared Error (MSE) alla Huber Loss, ciascuna ha vantaggi specifici, che si tratti di gestire gli outlier o bilanciare bias e varianza.

La decisione tra funzioni di perdita personalizzate o predefinite offerte da librerie come scikit-learn, TensorFlow e PyTorch dipende dalle esigenze del progetto, dall'efficienza computazionale e dall'esperienza dell'utente. Queste librerie offrono semplicità di implementazione, supporto della community e aggiornamenti regolari.

Nonostante l'evoluzione del machine learning, l'importanza delle loss function resta costante. Le tendenze future potrebbero portare funzioni più specializzate, ma i principi fondamentali con ogni probabilità rimarranno. Per approfondire il machine learning e le sue applicazioni, esplora il percorso Machine Learning Scientist with Python di DataCamp.

FAQ

Posso usare diverse loss function per lo stesso problema di machine learning?

Sì, è possibile sperimentare funzioni di perdita diverse per lo stesso problema per vedere quale produce i risultati migliori. Ad esempio, nei compiti di regressione, potresti provare sia la Mean Squared Error (MSE) sia la Huber Loss per bilanciare sensibilità agli outlier e prestazioni generali. La scelta della loss function dipende dalle caratteristiche specifiche del tuo dataset e del problema.

In che modo le loss function influiscono sulla convergenza del modello durante l'addestramento?

La scelta della loss function influisce sulla regolarità e sulla velocità con cui un modello converge durante l'addestramento. Per esempio, loss function con gradienti non convessi o discontinui possono far ristagnare il training o portare a soluzioni subottimali. Al contrario, funzioni con gradienti regolari e ben comportati, come MSE o Cross-Entropy, possono facilitare l'ottimizzazione con metodi basati sul gradiente.

Che ruolo gioca la scala dei dati di output nella scelta di una loss function?

La scala dei dati di output può influenzare in modo significativo la scelta della loss function. Ad esempio, se i valori obiettivo sono su scale molto grandi o molto piccole, funzioni come MSE, che elevano gli errori al quadrato, possono enfatizzare in modo sproporzionato i valori grandi. In questi casi, normalizzare i dati o usare loss function invarianti alla scala come MAE o Huber Loss può aiutare a garantire un'ottimizzazione equilibrata.


Richmond Alake's photo
Author
Richmond Alake
LinkedIn

Richmond Alake è un Developer Advocate presso MongoDB, dove si concentra sulle tecnologie di AI/ML. Crea contenuti formativi per sviluppatori e utenti MongoDB, aiutandoli a realizzare soluzioni di intelligenza artificiale sfruttando le funzionalità di MongoDB, tra cui la ricerca vettoriale e i large language model (LLM). Richmond ha una solida esperienza in AI, computer vision e sviluppo software. Ha inoltre scritto numerosi articoli tecnici e tiene corsi legati all’AI. Prima di entrare in MongoDB, è stato Machine Learning Architect presso Slalom Build, Program Lead presso Emeritus e Computer Vision Engineer presso Loveshark.

Argomenti

Approfondisci le loss function nel machine learning

Programma

Scienziato specializzato in apprendimento automatico in Python

85 h
Scopri il machine learning con Python e prova a diventare uno scienziato del machine learning. Scopri l'apprendimento supervisionato, non supervisionato e profondo.
Vedi dettagliRight Arrow
Inizia il corso
Mostra altroRight Arrow
Correlato

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

Mostra altroMostra altro