SigmoidCrossEntropyWithLogits

SigmoidCrossEntropyWithLogits clase pública

Constructores públicos

Métodos públicos

estática <T se extiende TNumber > Operando <T>
sigmoidCrossEntropyWithLogits ( Alcance alcance, operando <T> etiquetas, operando <T> logits)
Calcula sigmoide cruz entropía dadas logits .

Métodos heredados

Constructores públicos

SigmoidCrossEntropyWithLogits públicos ()

Métodos públicos

public static Operando <T> sigmoidCrossEntropyWithLogits ( Alcance alcance, operando <T> etiquetas, operando <T> logits)

Calcula sigmoide cruz entropía dadas logits .

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

Por razones de brevedad, dejar que x = logits , z = labels . La pérdida logístico en pseudo-có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 desbordamiento en exp(-x) , reformulamos lo anterior

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

Por lo tanto, para asegurar la estabilidad y el desbordamiento EVITAR, la aplicación utiliza esta formulación equivalente

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

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 logits 'y etiquetas' no tienen la misma forma