SigmoidCrossEntropyWithLogits

открытый класс SigmoidCrossEntropyWithLogits

Публичные конструкторы

Публичные методы

статический <T расширяет TNumber > Операнд <T>
sigmoidCrossEntropyWithLogits (область действия , метки операндов <T>, логиты операндов <T>)
Вычисляет сигмовидную перекрестную энтропию по заданным logits .

Унаследованные методы

Публичные конструкторы

общественный SigmoidCrossEntropyWithLogits ()

Публичные методы

public static Operand <T> sigmoidCrossEntropyWithLogits ( область области действия, метки операнда <T>, логиты операнда <T>)

Вычисляет сигмовидную перекрестную энтропию по заданным logits .

Измеряет вероятностную ошибку в задачах дискретной классификации, в которых каждый класс независим и не является взаимоисключающим. Например, можно выполнить классификацию по нескольким меткам, при которой изображение может одновременно содержать и слона, и собаку.

Для краткости пусть x = logits , z = labels . Логистические потери в псевдокоде

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

Для x < 0 , чтобы избежать переполнения в exp(-x) , мы переформулируем приведенное выше

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

Следовательно, чтобы обеспечить стабильность и избежать переполнения, реализация использует эту эквивалентную формулировку.

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

логиты и labels должны иметь одинаковый тип и форму.

Параметры
объем Область видимости TensorFlow
этикетки этикетки
логиты логиты типа float32 или float64
Возврат
  • покомпонентные логистические потери.
Броски
IllegalArgumentException если логиты и метки не имеют одинаковой формы