Funzione Obiettivo (loss): differenze tra le versioni

Da Wiki AI.
(Creata pagina con "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...")
 
Nessun oggetto della modifica
 
(14 versioni intermedie di 5 utenti non mostrate)
Riga 1: Riga 1:
{{Template concetto
|NomeInglese=Loss Function
}}
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 ==
Possiamo immaginarci '''ogni''' architettura di rete neurale, e le "complicazioni" (ad esempio: [[Rete Neurale Ricorrente (RNN)|ricorsività]], [[Attention (Machine Learning)|layer di attention]], [[Embeddings|layer di embeddings]], [[Dropout (Reti Neurali)|dropout]]) che sono state introdotte nel corso degli anni partendo dalla semplice architettura [[Rete Neurale Feed-Forward (FNN)|feed-forward]] (anch'essa già una miglioria rispetto al [[The perceptron: A probabilistic model for information storage and organization in the brain|perceptron di Rosenblatt]]), come una "black-box". Questa black-box rappresenta una funzione matematica complessa, che espone al meccanismo di [[retropropagazione]] l' insieme dei suoi parametri perchè vengano aggiornati: infatti in inglese essi vengono chiamati ''learneable parameters'', ovvero parametri che possono essere "aggiustati". Essi vengono aggiustati, durante il training (auto)supervisionato, per '''diminuire''' '''la perdita''' (o loss), ovvero la differenza fra il valore reale e quello previsto dalla rete per l'etichetta corrente.
 
[[File:Lossfunction.png|nessuno|miniatura|600x600px|Rappresentazione della funzione di perdita e della retropropagazione, nel caso di classificazione con Entropia Incrociata)]]
 
= Principali Funzioni Obiettivo =
 
== Mean Squared Error (MSE Loss) per la Regressione ==
Un modo semplice e comune per eseguire il calcolo della funzione obiettivo è utilizzare l'errore quadratico medio (MSE) che non è altro che la differenza tra il risultato atteso e quello ottenuto, al quadrato:
 
''Perdita = (Y Target - Y)^2''


=== Mean Squared Error (MSE Loss) ===
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


<source lang="python">
import torch
import torch
import torch.nn as nn
import torch.nn as nn
Riga 17: Riga 30:
 ⇒ tensor(0.0467)
 ⇒ tensor(0.0467)


=== Binary Cross Entropy (BCE Loss) ===
</source>
Viene
 
== 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, <math>log(P(i))</math>, va da meno infinito per <math>P(i) = 0</math> a zero per <math>P(i) = 1</math>.
 
La formula dell'entropia incrociata rappresenta la differenza fra due distribuzioni di probabilità P e Q.
 
<math>H(P,Q) = -\sum_{i \in I} P(i) \log(Q(i))</math>
 
Si possono immaginare i due casi estremi:
 
* <math>P(i) = 1</math> e <math>Q(i) = 0</math>, dove la classe predetta era vera ma è stata completamente sbagliata. <math>H(P,Q)</math> è <math>+\infty</math>
* <math>P(i) = 0</math> e <math>Q(i) = 1</math>: il prodotto interno dà zero
 
In caso di classificazione perfetta, la perdita è 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>
 
{{#seo:
            |title=Loss Function
            |title_mode=append
            |keywords=machine learning, apprendimento automatico, reti neurali, deep learning, funzione di costo, funzione di perdita, errore quadratico medio, entropia incrociata, binary cross entropy, regressione, classificazione
            |description=La Loss Function, o funzione di costo, misura la discrepanza tra la stima di un algoritmo di Machine Learning e l'output atteso. Questo articolo spiega i diversi tipi di Loss Function, tra cui Mean Squared Error (MSE), Cross-Entropy e Binary Cross Entropy (BCE), con esempi pratici in Python.
            |image=Uploaded_file.png
            }}

Versione attuale delle 09:46, 2 gen 2025

Funzione Obiettivo (loss)
Nome Inglese Loss Function
Sigla


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.

Possiamo immaginarci ogni architettura di rete neurale, e le "complicazioni" (ad esempio: ricorsività, layer di attention, layer di embeddings, dropout) che sono state introdotte nel corso degli anni partendo dalla semplice architettura feed-forward (anch'essa già una miglioria rispetto al perceptron di Rosenblatt), come una "black-box". Questa black-box rappresenta una funzione matematica complessa, che espone al meccanismo di retropropagazione l' insieme dei suoi parametri perchè vengano aggiornati: infatti in inglese essi vengono chiamati learneable parameters, ovvero parametri che possono essere "aggiustati". Essi vengono aggiustati, durante il training (auto)supervisionato, per diminuire la perdita (o loss), ovvero la differenza fra il valore reale e quello previsto dalla rete per l'etichetta corrente.

Rappresentazione della funzione di perdita e della retropropagazione, nel caso di classificazione con Entropia Incrociata)

Principali Funzioni Obiettivo

Mean Squared Error (MSE Loss) per la Regressione

Un modo semplice e comune per eseguire il calcolo della funzione obiettivo è utilizzare l'errore quadratico medio (MSE) che non è altro che la differenza tra il risultato atteso e quello ottenuto, al quadrato:

Perdita = (Y Target - Y)^2

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, , va da meno infinito per a zero per .

La formula dell'entropia incrociata rappresenta la differenza fra due distribuzioni di probabilità P e Q.

Si possono immaginare i due casi estremi:

  • e , dove la classe predetta era vera ma è stata completamente sbagliata. è
  • e : il prodotto interno dà zero

In caso di classificazione perfetta, la perdita è 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)