SigmoidCrossEntropyWithLogits

kelas publik SigmoidCrossEntropyWithLogits

Konstruktor Publik

Metode Publik

statis <T memperluas TNomber > Operan <T>
sigmoidCrossEntropyWithLogits ( Lingkup cakupan, label Operan <T>, logit Operan <T>)
Menghitung entropi silang sigmoid berdasarkan logits .

Metode Warisan

Konstruktor Publik

SigmoidCrossEntropyWithLogits publik ()

Metode Publik

Operan statis publik <T> sigmoidCrossEntropyWithLogits ( Lingkup cakupan, label Operan <T>, logit Operan <T>)

Menghitung entropi silang sigmoid berdasarkan logits .

Mengukur kesalahan probabilitas dalam tugas klasifikasi diskrit di mana setiap kelas bersifat independen dan tidak saling eksklusif. Misalnya, seseorang dapat melakukan klasifikasi multilabel di mana sebuah gambar dapat memuat gajah dan anjing secara bersamaan.

Untuk singkatnya, misalkan x = logits , z = labels . Kerugian logistik dalam kode semu adalah

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

Untuk x < 0 , untuk menghindari overflow di exp(-x) , kami memformulasi ulang

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

Oleh karena itu, untuk memastikan stabilitas dan menghindari luapan, implementasinya menggunakan formulasi setara

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

logit dan labels harus mempunyai jenis dan bentuk yang sama.

Parameter
cakupan Cakupan TensorFlow
label labelnya
logit logit tipe float32 atau float64
Kembali
  • kerugian logistik berdasarkan komponen.
Melempar
Pengecualian Argumen Ilegal jika logit' dan label' tidak mempunyai bentuk yang sama