SigmoidCrossEntropyWithLogits

SigmoidCrossEntropyWithLogits classe pública

Construtores Públicos

Métodos Públicos

estática <T estende TNumber > Operando <T>
sigmoidCrossEntropyWithLogits ( Scope escopo, Operando <T> etiquetas, Operando <T> logits)
Calcula sigmóide transversal entropia dadas logits .

Métodos herdados

Construtores Públicos

SigmoidCrossEntropyWithLogits públicos ()

Métodos Públicos

public static Operando <T> sigmoidCrossEntropyWithLogits ( Scope escopo, Operando <T> etiquetas, Operando <T> logits)

Calcula sigmóide transversal entropia dadas logits .

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

Para abreviar, vamos x = logits , z = labels . A perda de logística em pseudo-có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 no exp(-x) , que reformular 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 assegurar a estabilidade e evitar transbordamento, 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 forma.

Parâmetros
alcance O escopo do TensorFlow
rótulos os rótulos
logits os logits do tipo float32 ou float64
Devoluções
  • as perdas logísticas de componentes.
Lança
Exceção de argumento ilegal se logits 'e rótulos' não tiverem a mesma forma