SigmoidCrossEntropyWithLogits

classe pública SigmoidCrossEntropyWithLogits

Construtores Públicos

Métodos Públicos

estático <T estende TNumber > Operando <T>
sigmoidCrossEntropyWithLogits (escopo do escopo , rótulos do operando <T>, logits do operando <T>)
Calcula a entropia cruzada sigmóide dados logits .

Métodos herdados

Construtores Públicos

público SigmoidCrossEntropyWithLogits ()

Métodos Públicos

public static Operand <T> sigmoidCrossEntropyWithLogits (escopo do escopo , rótulos do operando <T>, logits do operando <T>)

Calcula a entropia cruzada sigmóide dados logits .

Mede o erro de probabilidade em tarefas de classificação discreta em que cada classe é independente e não mutuamente exclusiva. Por exemplo, pode-se realizar uma classificação multirrótulo onde uma imagem pode conter um elefante e um cachorro ao mesmo tempo.

Para resumir, seja x = logits , z = labels . A perda logística no pseudocódigo é

 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 estouro em exp(-x) , reformulamos o acima

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

Assim, para garantir a estabilidade e evitar overflow, a implementação utiliza esta formulação equivalente

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

logits e labels devem ter o mesmo tipo e formato.

Parâmetros
escopo O escopo do TensorFlow
rótulos os rótulos
logitos os logits do tipo float32 ou float64
Devoluções
  • as perdas logísticas em termos de componentes.
Lança
IllegalArgumentException se logits' e rótulos' não tiverem o mesmo formato