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 un metodo per misurare l'efficacia del modello. Questo viene realizzato tramite una funzione di perdita, che quantifica la differenza tra le uscite previste e i valori target reali. L'obiettivo dell'addestramento è minimizzare questa perdita, rendendo le previsioni il più possibile vicine ai valori effettivi.

Una delle funzioni di perdita più comunemente utilizzate per la classificazione binaria è la perdita di entropia incrociata, particolarmente efficace con modelli che restituiscono probabilità.

Derivazione della perdita di entropia incrociata

Per comprendere la perdita di entropia incrociata, si parte dal principio di massima verosimiglianza. In un problema di classificazione binaria, l'obiettivo è addestrare un modello che stimi la probabilità y^\hat{y} che un determinato input appartenga alla classe 1. L'etichetta reale yy può essere 0 oppure 1.

Un buon modello dovrebbe massimizzare la probabilità di prevedere correttamente tutti gli esempi di addestramento. Questo significa che si desidera massimizzare la funzione di verosimiglianza, che rappresenta la probabilità di osservare i dati dati i valori previsti dal modello.

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

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

Questa espressione significa semplicemente:

  • Se y=1y = 1, allora P(yx)=y^P(y|x) = \hat{y}, ovvero si desidera massimizzare y^\hat{y} (la probabilità assegnata alla classe 1);
  • Se y=0y = 0, allora P(yx)=1y^P(y|x) = 1 - \hat{y}, ovvero si desidera massimizzare 1y^1 - \hat{y} (la probabilità assegnata alla classe 0).
Note
Nota

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

Per semplificare l'ottimizzazione, si utilizza la log-verosimiglianza invece della verosimiglianza stessa (poiché i logaritmi trasformano i prodotti in somme, facilitando la differenziazione):

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

Poiché l'obiettivo è la massimizzazione, si definisce la funzione di perdita come la negativa log-verosimiglianza, che si desidera minimizzare:

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

Questa è la funzione di perdita binaria di cross-entropy, comunemente utilizzata per problemi di classificazione.

Dato che la variabile output rappresenta y^\hat{y} per un particolare esempio di addestramento, e la variabile target rappresenta yy per questo esempio, 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 cross-entropy 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 vengono pesantemente penalizzate, incoraggiando il modello a effettuare previsioni corrette e sicure.

Se più esempi vengono passati 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 affermazioni descrive meglio lo scopo della funzione di perdita di cross-entropy 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?

Why do we use the negative log-likelihood instead of just the likelihood?

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 un metodo per misurare l'efficacia del modello. Questo viene realizzato tramite una funzione di perdita, che quantifica la differenza tra le uscite previste e i valori target reali. L'obiettivo dell'addestramento è minimizzare questa perdita, rendendo le previsioni il più possibile vicine ai valori effettivi.

Una delle funzioni di perdita più comunemente utilizzate per la classificazione binaria è la perdita di entropia incrociata, particolarmente efficace con modelli che restituiscono probabilità.

Derivazione della perdita di entropia incrociata

Per comprendere la perdita di entropia incrociata, si parte dal principio di massima verosimiglianza. In un problema di classificazione binaria, l'obiettivo è addestrare un modello che stimi la probabilità y^\hat{y} che un determinato input appartenga alla classe 1. L'etichetta reale yy può essere 0 oppure 1.

Un buon modello dovrebbe massimizzare la probabilità di prevedere correttamente tutti gli esempi di addestramento. Questo significa che si desidera massimizzare la funzione di verosimiglianza, che rappresenta la probabilità di osservare i dati dati i valori previsti dal modello.

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

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

Questa espressione significa semplicemente:

  • Se y=1y = 1, allora P(yx)=y^P(y|x) = \hat{y}, ovvero si desidera massimizzare y^\hat{y} (la probabilità assegnata alla classe 1);
  • Se y=0y = 0, allora P(yx)=1y^P(y|x) = 1 - \hat{y}, ovvero si desidera massimizzare 1y^1 - \hat{y} (la probabilità assegnata alla classe 0).
Note
Nota

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

Per semplificare l'ottimizzazione, si utilizza la log-verosimiglianza invece della verosimiglianza stessa (poiché i logaritmi trasformano i prodotti in somme, facilitando la differenziazione):

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

Poiché l'obiettivo è la massimizzazione, si definisce la funzione di perdita come la negativa log-verosimiglianza, che si desidera minimizzare:

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

Questa è la funzione di perdita binaria di cross-entropy, comunemente utilizzata per problemi di classificazione.

Dato che la variabile output rappresenta y^\hat{y} per un particolare esempio di addestramento, e la variabile target rappresenta yy per questo esempio, 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 cross-entropy 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 vengono pesantemente penalizzate, incoraggiando il modello a effettuare previsioni corrette e sicure.

Se più esempi vengono passati 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 affermazioni descrive meglio lo scopo della funzione di perdita di cross-entropy nella classificazione binaria?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 6
some-alt