Funzione Obiettivo (loss): differenze tra le versioni
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 1: | Riga 1: | ||
Chiamata anche funzione di costo o funzione di perdita, dall'inglese '''loss function''', è una funzione che misura la discrepanza tra la stima di un algoritmo di Machine Learning e l'output supervisionato e rappresenta il costo dell'errore. Durante il processo di apprendimento di una rete neurale, con l'algoritmo di [[backpropagation]], ad ogni iterazione i pesi della rete vengono aggiornati per ridurre la perdita. | Chiamata anche funzione di costo o funzione di perdita, dall'inglese '''loss function''', è una funzione che misura la discrepanza tra la stima di un algoritmo di Machine Learning e l'output supervisionato e rappresenta il costo dell'errore. Durante il processo di apprendimento di una rete neurale, con l'algoritmo di [[backpropagation]], ad ogni iterazione i pesi della rete vengono aggiornati per ridurre la perdita. | ||
= Principali Funzioni Obiettivo = | |||
== Mean Squared Error (MSE Loss) per la Regressione == | |||
E' una delle funzioni più utilizzate per i problemi di regressione. Intuitivamente, rappresenta la distanza del valore predetto dal valore attuale, in fase di addestramento supervisionato | E' una delle funzioni più utilizzate per i problemi di regressione. Intuitivamente, rappresenta la distanza del valore predetto dal valore attuale, in fase di addestramento supervisionato | ||
Riga 20: | Riga 20: | ||
</source> | </source> | ||
=== Binary Cross Entropy (BCE Loss) === | == L'Entropia Incrociata (o Cross-Entropy Loss, o Log Loss) == | ||
L'Entropia Incrociata è utilizzata come funzione obiettivo nei contesti di '''classificazione''', sia binaria che multi-label, in cui si predice più di un'etichetta per ogni esempio di training. | |||
Si ricorda che il logaritmo della probabilità di un evento, log(P(x)), va da meno infinito per P(x) == 0 a zero per P(x) == 1. | |||
La formula dell'entropia incrociata rappresenta la differenza fra due distribuzioni di probabilità P e Q. | |||
H(P, Q) = – sum x in X P(x) * log(Q(x)) | |||
Si possono immaginare i due casi estremi: | |||
* P(x) = 1 e Q(x) = 0, dove la classe predetta era vera ma è stata completamente sbagliata. H(P,Q) è + infinito | |||
* P(x) = 0 e Q(x) = 1: il prodotto interno dà zero | |||
In caso di classificazione perfetta, la Log Loss è uguale a zero, altrimenti tende all'infinito più è alta la divergenza . | |||
== Binary Cross Entropy (BCE Loss) == | |||
Viene utlizzata nelle situazioni di classificazione binaria, in cui solo una di M classi è vera nello stesso momento | |||
<source lang="python"> | |||
import torch | |||
import torch.nn as nn | |||
loss = nn.BCELoss() | |||
estimate = torch.tensor([0.7,0.2,0.1]) # estimate value | |||
real = torch.tensor([1.0, 0, 0]) # true value or target value | |||
print(loss(estimate , real)) | |||
⇒ tensor(0.2284) | |||
</source> |
Versione delle 07:57, 5 mar 2024
Chiamata anche funzione di costo o funzione di perdita, dall'inglese loss function, è una funzione che misura la discrepanza tra la stima di un algoritmo di Machine Learning e l'output supervisionato e rappresenta il costo dell'errore. Durante il processo di apprendimento di una rete neurale, con l'algoritmo di backpropagation, ad ogni iterazione i pesi della rete vengono aggiornati per ridurre la perdita.
Principali Funzioni Obiettivo
Mean Squared Error (MSE Loss) per la Regressione
E' una delle funzioni più utilizzate per i problemi di regressione. Intuitivamente, rappresenta la distanza del valore predetto dal valore attuale, in fase di addestramento supervisionato
import torch import torch.nn as nn loss = nn.MSELoss() estimate = torch.tensor([0.7,0.2,0.1]) # estimate value real = torch.tensor([1.0, 0, 0]) # true value or target value print(loss(estimate , real)) ⇒ tensor(0.0467)
L'Entropia Incrociata (o Cross-Entropy Loss, o Log Loss)
L'Entropia Incrociata è utilizzata come funzione obiettivo nei contesti di classificazione, sia binaria che multi-label, in cui si predice più di un'etichetta per ogni esempio di training.
Si ricorda che il logaritmo della probabilità di un evento, log(P(x)), va da meno infinito per P(x) == 0 a zero per P(x) == 1.
La formula dell'entropia incrociata rappresenta la differenza fra due distribuzioni di probabilità P e Q.
H(P, Q) = – sum x in X P(x) * log(Q(x))
Si possono immaginare i due casi estremi:
- P(x) = 1 e Q(x) = 0, dove la classe predetta era vera ma è stata completamente sbagliata. H(P,Q) è + infinito
- P(x) = 0 e Q(x) = 1: il prodotto interno dà zero
In caso di classificazione perfetta, la Log Loss è uguale a zero, altrimenti tende all'infinito più è alta la divergenza .
Binary Cross Entropy (BCE Loss)
Viene utlizzata nelle situazioni di classificazione binaria, in cui solo una di M classi è vera nello stesso momento
import torch import torch.nn as nn loss = nn.BCELoss() estimate = torch.tensor([0.7,0.2,0.1]) # estimate value real = torch.tensor([1.0, 0, 0]) # true value or target value print(loss(estimate , real)) ⇒ tensor(0.2284)