อะไรคือความแตกต่างระหว่าง crossentropy แบบแบ่งประเภทและ crossentropy แบบเบาบางใน keras? เมื่อฟังก์ชั่นการสูญเสียเหล่านี้เหมาะสมหรือไม่? [ซ้ำ]

Jan 18 2021

ฉันพบข้อผิดพลาดบางอย่างขณะใช้ฟังก์ชันการสูญเสียเหล่านี้ ดังนั้นโปรดอธิบายฉันว่าเมื่อใดควรใช้ฟังก์ชันการสูญเสียเหล่านี้และกับหน่วยชั้นเอาต์พุต

คำตอบ

MohammadTalaei Jan 18 2021 at 15:50

ฉันไม่ทราบความแตกต่างที่แน่นอนระหว่างฟังก์ชันการสูญเสียเหล่านี้ ฉันคิดว่าควรตรวจสอบเอกสารและซอร์สโค้ด แต่ฟังก์ชันการสูญเสียทั้งสองนี้เหมาะสำหรับแบบจำลองการจำแนกประเภท คุณควรสังเกตสองสิ่ง:

  1. ผลลัพธ์ของคุณควรถูกแปลงเป็นหมวดหมู่: ขั้นแรกให้ใช้คลาส Sckit-learn LabelEncoder()เพื่อแอบแฝงสตริงเป็นจำนวนเต็มจากนั้นใช้to_categorical()วิธี Keras กับผลลัพธ์ของคุณเพื่อปกปิดจำนวนเต็มของคุณเป็นการเข้ารหัสเพียงครั้งเดียว
  2. คุณต้องใช้เลเยอร์ softmax เป็นชั้นสุดท้ายที่มีขนาดเท่ากันกับหมวดหมู่ของคุณ