Costruttori pubblici
Metodi pubblici
statico <T estende TNumero > Operando <T> | sigmoidCrossEntropyWithLogits ( ambito ambito , etichette operando <T>, logit operando <T>) Calcola l'entropia incrociata del sigmoide dati logits . |
Metodi ereditati
Costruttori pubblici
pubblico SigmoidCrossEntropyWithLogits ()
Metodi pubblici
operando statico pubblico <T> sigmoidCrossEntropyWithLogits ( ambito ambito , etichette operando <T>, logit operando <T>)
Calcola l'entropia incrociata del sigmoide dati logits
.
Misura l'errore di probabilità nei compiti di classificazione discreta in cui ciascuna classe è indipendente e non si esclude a vicenda. Ad esempio, è possibile eseguire una classificazione multietichetta in cui un'immagine può contenere contemporaneamente sia un elefante che un cane.
Per brevità, sia x = logits
, z = labels
. La perdita logistica nello pseudo-codice lo è
z * -log(sigmoid(x)) + (1 - z) * -log(1 - sigmoid(x)) = z * -log(1 / (1 + exp(-x))) + (1 - z) * -log(exp(-x) / (1 + exp(-x))) = z * log(1 + exp(-x)) + (1 - z) * (-log(exp(-x)) + log(1 + exp(-x))) = z * log(1 + exp(-x)) + (1 - z) * (x + log(1 + exp(-x)) = (1 - z) * x + log(1 + exp(-x)) = x - x * z + log(1 + exp(-x))
Per x < 0
, per evitare overflow in exp(-x)
, riformuliamo quanto sopra
x - x * z + log(1 + exp(-x)) = log(exp(x)) - x * z + log(1 + exp(-x)) = - x * z + log(1 + exp(x))
Pertanto, per garantire stabilità ed evitare overflow, l'implementazione utilizza questa formulazione equivalente
max(x, 0) - x * z + log(1 + exp(-abs(x)))
logit ed labels
devono avere lo stesso tipo e forma.
Parametri
ambito | L'ambito TensorFlow |
---|---|
etichette | le etichette |
logits | i logit di tipo float32 o float64 |
Ritorni
- le perdite logistiche in termini di componenti.
Lancia
IllegalArgumentException | se logits ed etichette non hanno la stessa forma |
---|