SigmoidCrossEntropyWithLogits

clase pública SigmoidCrossEntropyWithLogits

Constructores Públicos

Métodos públicos

estático <T extiende TNumber > Operando <T>
sigmoidCrossEntropyWithLogits (alcance del alcance , etiquetas del operando <T>, logits del operando <T>)
Calcula la entropía cruzada sigmoidea dados logits .

Métodos heredados

Constructores Públicos

público SigmoidCrossEntropyWithLogits ()

Métodos públicos

Operando estático público <T> sigmoidCrossEntropyWithLogits (alcance del alcance , etiquetas del operando <T>, logits del operando <T>)

Calcula la entropía cruzada sigmoidea dados logits .

Mide el error de probabilidad en tareas de clasificación discretas en las que cada clase es independiente y no mutuamente excluyente. Por ejemplo, se podría realizar una clasificación de etiquetas múltiples en la que una imagen pueda contener un elefante y un perro al mismo tiempo.

Para abreviar, sea x = logits , z = labels . La pérdida logística en pseudocódigo es

 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))
 

Para x < 0 , para evitar el desbordamiento en exp(-x) , reformulamos el

 x - x * z + log(1 + exp(-x))
  = log(exp(x)) - x * z + log(1 + exp(-x))
  = - x * z + log(1 + exp(x))
 
anterior

Por lo tanto, para garantizar la estabilidad y evitar el desbordamiento, la implementación utiliza esta formulación equivalente

   max(x, 0) - x * z + log(1 + exp(-abs(x)))
 

los logits y labels deben tener el mismo tipo y forma.

Parámetros
alcance El alcance de TensorFlow
etiquetas las etiquetas
logits los logits de tipo float32 o float64
Devoluciones
  • las pérdidas logísticas por componentes.
Lanza
Argumento de excepción ilegal si los logits y las etiquetas no tienen la misma forma