Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Funzione di Perdita | Rete Neurale da Zero
Introduzione alle Reti Neurali

bookFunzione di Perdita

Durante l'addestramento di una rete neurale, è necessario misurare quanto accuratamente il modello predice i risultati corretti. Questo viene fatto utilizzando una funzione di perdita, che calcola la differenza tra le previsioni del modello e i valori target reali. L'obiettivo dell'addestramento è minimizzare questa perdita, rendendo le previsioni il più possibile vicine agli output reali.

Per i compiti di classificazione binaria, una delle funzioni di perdita più utilizzate è la cross-entropy loss, particolarmente efficace per i modelli che restituiscono probabilità.

Derivazione della Cross-Entropy Loss

Per comprendere la cross-entropy loss, si consideri il principio di massima verosimiglianza. In un problema di classificazione binaria, l'obiettivo è addestrare un modello che stimi la probabilità y^\hat{y} che un dato input appartenga alla classe 1. L'etichetta reale yy può assumere uno di due valori: 0 oppure 1.

Un modello efficace dovrebbe assegnare alte probabilità alle previsioni corrette. Questa idea è formalizzata tramite la funzione di verosimiglianza, che rappresenta la probabilità di osservare i dati reali date le previsioni del modello.

Per un singolo esempio di addestramento, assumendo indipendenza, la verosimiglianza può essere espressa come:

P(yx)=y^y(1y^)1yP(y|x) = \hat{y}^y(1 - \hat{y})^{1 - y}

Questa espressione significa quanto segue:

  • Se y=1y = 1, allora P(yx)=y^P(y|x) = \hat{y} — il modello dovrebbe assegnare una probabilità alta alla classe 1;
  • Se y=0y = 0, allora P(yx)=1y^P(y|x) = 1 - \hat{y} — il modello dovrebbe assegnare una probabilità alta alla classe 0.

In entrambi i casi, l'obiettivo è massimizzare la probabilità che il modello assegna alla classe corretta.

Note
Nota

P(yx)P(y|x) indica la probabilità di osservare l'etichetta di classe effettiva yy dati gli input xx.

Per semplificare l'ottimizzazione, si utilizza la log-verosimiglianza invece della funzione di verosimiglianza, poiché applicare il logaritmo trasforma i prodotti in somme, rendendo la differenziazione più semplice:

logP(yx)=ylog(y^)+(1y)log(1y^)\log P(y|x) = y \log(\hat{y}) + (1 - y) \log(1 - \hat{y})

Poiché l'addestramento mira a massimizzare la log-verosimiglianza, la funzione di perdita viene definita come il suo valore negativo in modo che il processo di ottimizzazione diventi un problema di minimizzazione:

L=(ylog(y^)+(1y)log(1y^))L = -\big(y \log(\hat{y}) + (1 - y) \log(1 - \hat{y})\big)

Questa è la funzione di perdita di entropia incrociata binaria, comunemente utilizzata per problemi di classificazione.

Dato che la variabile output rappresenta y^\hat{y} per un determinato esempio di addestramento, e la variabile target rappresenta yy per questo esempio di addestramento, questa funzione di perdita può essere implementata come segue:

import numpy as np

loss = -(target * np.log(output) + (1 - target) * np.log(1 - output))

Perché questa formula?

La perdita di entropia incrociata ha una interpretazione intuitiva chiara:

  • Se y=1y = 1, la perdita si semplifica in log(y^)-\log(\hat{y}), il che significa che la perdita è bassa quando y^\hat{y} è vicino a 1 e molto alta quando y^\hat{y} è vicino a 0;
  • Se y=0y = 0, la perdita si semplifica in log(1y^)-\log(1 - \hat{y}), il che significa che la perdita è bassa quando y^\hat{y} è vicino a 0 e molto alta quando è vicino a 1.

Poiché i logaritmi crescono negativamente all'avvicinarsi dello zero del loro argomento, le previsioni errate sono fortemente penalizzate, incoraggiando il modello a fare previsioni corrette e sicure.

Se vengono forniti più esempi durante la propagazione in avanti, la perdita totale viene calcolata come media delle perdite su tutti gli esempi:

L=1Ni=1N(yilog(y^i)+(1yi)log(1y^i))L = -\frac1N \sum_{i=1}^N (y_i\log(\hat{y}_i) + (1-y_i)\log(1-\hat{y}_i))

dove NN è il numero di campioni di addestramento.

question mark

Quale delle seguenti opzioni descrive meglio lo scopo della funzione di perdita di entropia incrociata nella classificazione binaria?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 6

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Suggested prompts:

Can you explain how cross-entropy loss differs from mean squared error?

What happens if the model predicts exactly 0 or 1 for the output?

Can you show how this loss function is used during neural network training?

Awesome!

Completion rate improved to 4

bookFunzione di Perdita

Scorri per mostrare il menu

Durante l'addestramento di una rete neurale, è necessario misurare quanto accuratamente il modello predice i risultati corretti. Questo viene fatto utilizzando una funzione di perdita, che calcola la differenza tra le previsioni del modello e i valori target reali. L'obiettivo dell'addestramento è minimizzare questa perdita, rendendo le previsioni il più possibile vicine agli output reali.

Per i compiti di classificazione binaria, una delle funzioni di perdita più utilizzate è la cross-entropy loss, particolarmente efficace per i modelli che restituiscono probabilità.

Derivazione della Cross-Entropy Loss

Per comprendere la cross-entropy loss, si consideri il principio di massima verosimiglianza. In un problema di classificazione binaria, l'obiettivo è addestrare un modello che stimi la probabilità y^\hat{y} che un dato input appartenga alla classe 1. L'etichetta reale yy può assumere uno di due valori: 0 oppure 1.

Un modello efficace dovrebbe assegnare alte probabilità alle previsioni corrette. Questa idea è formalizzata tramite la funzione di verosimiglianza, che rappresenta la probabilità di osservare i dati reali date le previsioni del modello.

Per un singolo esempio di addestramento, assumendo indipendenza, la verosimiglianza può essere espressa come:

P(yx)=y^y(1y^)1yP(y|x) = \hat{y}^y(1 - \hat{y})^{1 - y}

Questa espressione significa quanto segue:

  • Se y=1y = 1, allora P(yx)=y^P(y|x) = \hat{y} — il modello dovrebbe assegnare una probabilità alta alla classe 1;
  • Se y=0y = 0, allora P(yx)=1y^P(y|x) = 1 - \hat{y} — il modello dovrebbe assegnare una probabilità alta alla classe 0.

In entrambi i casi, l'obiettivo è massimizzare la probabilità che il modello assegna alla classe corretta.

Note
Nota

P(yx)P(y|x) indica la probabilità di osservare l'etichetta di classe effettiva yy dati gli input xx.

Per semplificare l'ottimizzazione, si utilizza la log-verosimiglianza invece della funzione di verosimiglianza, poiché applicare il logaritmo trasforma i prodotti in somme, rendendo la differenziazione più semplice:

logP(yx)=ylog(y^)+(1y)log(1y^)\log P(y|x) = y \log(\hat{y}) + (1 - y) \log(1 - \hat{y})

Poiché l'addestramento mira a massimizzare la log-verosimiglianza, la funzione di perdita viene definita come il suo valore negativo in modo che il processo di ottimizzazione diventi un problema di minimizzazione:

L=(ylog(y^)+(1y)log(1y^))L = -\big(y \log(\hat{y}) + (1 - y) \log(1 - \hat{y})\big)

Questa è la funzione di perdita di entropia incrociata binaria, comunemente utilizzata per problemi di classificazione.

Dato che la variabile output rappresenta y^\hat{y} per un determinato esempio di addestramento, e la variabile target rappresenta yy per questo esempio di addestramento, questa funzione di perdita può essere implementata come segue:

import numpy as np

loss = -(target * np.log(output) + (1 - target) * np.log(1 - output))

Perché questa formula?

La perdita di entropia incrociata ha una interpretazione intuitiva chiara:

  • Se y=1y = 1, la perdita si semplifica in log(y^)-\log(\hat{y}), il che significa che la perdita è bassa quando y^\hat{y} è vicino a 1 e molto alta quando y^\hat{y} è vicino a 0;
  • Se y=0y = 0, la perdita si semplifica in log(1y^)-\log(1 - \hat{y}), il che significa che la perdita è bassa quando y^\hat{y} è vicino a 0 e molto alta quando è vicino a 1.

Poiché i logaritmi crescono negativamente all'avvicinarsi dello zero del loro argomento, le previsioni errate sono fortemente penalizzate, incoraggiando il modello a fare previsioni corrette e sicure.

Se vengono forniti più esempi durante la propagazione in avanti, la perdita totale viene calcolata come media delle perdite su tutti gli esempi:

L=1Ni=1N(yilog(y^i)+(1yi)log(1y^i))L = -\frac1N \sum_{i=1}^N (y_i\log(\hat{y}_i) + (1-y_i)\log(1-\hat{y}_i))

dove NN è il numero di campioni di addestramento.

question mark

Quale delle seguenti opzioni descrive meglio lo scopo della funzione di perdita di entropia incrociata nella classificazione binaria?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 6
some-alt