SigmoidCrossEntropyWithLogits

SigmoidCrossEntropyWithLogits คลาสสาธารณะ

คอนสตรัคชั่นสาธารณะ

วิธีการสาธารณะ

คงที่ <T ขยาย TNumber > ตัวถูกดำเนินการ <T>
sigmoidCrossEntropyWithLogits (ขอบเขต ขอบเขต , ป้ายกำกับ Operand <T>, การบันทึก Operand <T>)
คำนวณเอนโทรปีข้าม sigmoid ที่กำหนด logits

วิธีการสืบทอด

คอนสตรัคชั่นสาธารณะ

SigmoidCrossEntropyWithLogits สาธารณะ ()

วิธีการสาธารณะ

ตัวดำเนินการ คงที่สาธารณะ <T> sigmoidCrossEntropyWithLogits (ขอบเขต ขอบเขต ป้ายกำกับตัว ดำเนินการ <T> ตัว ดำเนินการ <T> บันทึก)

คำนวณเอนโทรปีข้าม sigmoid ที่กำหนด 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
การส่งคืน
  • การสูญเสียลอจิสติกส์เชิงองค์ประกอบ
ขว้าง
ข้อยกเว้นอาร์กิวเมนต์ที่ผิดกฎหมาย ถ้า logits' และ label' ไม่มีรูปร่างเหมือนกัน