ฟังก์ชั่นการสูญเสียใดที่ฉันควรใช้สำหรับการตรวจจับแบบไบนารีในการตรวจจับใบหน้า / ไม่ใบหน้าใน CNN


11

ฉันต้องการใช้การเรียนรู้ลึกในการฝึกอบรมการตรวจจับใบหน้าไบนารี / ไม่ใช่ใบหน้าสิ่งที่สูญเสียฉันควรใช้ผมคิดว่ามันเป็นSigmoidCrossEntropyLossหรือบานพับการสูญเสีย

ใช่แล้ว แต่ฉันสงสัยด้วยว่าฉันควรใช้ softmax แต่มีเพียงสองคลาสเท่านั้น?

คำตอบ:


9

การสูญเสียบานพับและเอนโทรปีข้ามมักพบว่ามีผลลัพธ์ที่คล้ายกัน นี่คือโพสต์อื่นเปรียบเทียบฟังก์ชั่นการสูญเสียที่แตกต่างกันอะไรคือผลกระทบของการเลือกฟังก์ชั่นการสูญเสียที่แตกต่างกันในการจำแนกประมาณ 0-1 สูญเสีย

ใช่แล้ว แต่ฉันสงสัยด้วยว่าฉันควรใช้ softmax แต่มีเพียงสองคลาสเท่านั้น?

Softmax ไม่ได้สูญเสีย SigmoidCrossEntropyLossแต่ฟังก์ชั่นการฟื้นฟูก็มักจะถูกนำมาใช้ร่วมกับการสูญเสียเอนโทรปีข้ามซึ่งเป็นหลักเทียบเท่ากับ ดูเพิ่มเติมCross-Entropy หรือ Log Likelihood ในเลเยอร์เอาต์พุต


7

0

ในกรณีของคุณคุณมีงานการจำแนกเลขฐานสองดังนั้นเลเยอร์เอาต์พุตของคุณอาจเป็น sigmoid มาตรฐาน (โดยที่เอาต์พุตแสดงถึงความน่าจะเป็นของตัวอย่างทดสอบที่เป็นใบหน้า) การสูญเสียที่คุณจะใช้จะเป็นไบนารีข้ามเอนโทรปี ด้วยการตั้งค่านี้คุณสามารถจินตนาการได้ว่าการถดถอยแบบลอจิสติกที่ชั้นสุดท้ายของโครงข่ายประสาทส่วนลึกของคุณ

นี่คือลิงค์สำหรับคุณ หวังว่าพวกเขาช่วย
https://en.wikipedia.org/wiki/Cross_entropy#Cross-entropy_error_function_and_logistic_regression
http://neuralnetworksanddeeplearning.com/chap3.html
https://www.quora.com/How-do-you-decide-which-loss- ฟังก์ชั่นการใช้งานสำหรับเครื่องการเรียนรู้


คุณช่วยอธิบายเกี่ยวกับการถดถอยโลจิสติกส์ที่เลเยอร์สุดท้ายของ DNN ได้ไหม ฉันได้อ่านโพสต์ แต่ไม่เห็นประโยชน์จริงๆsigmoid(เป็นการเปิดใช้งานเลเยอร์สุดท้าย) ขอบคุณ
bit_scientist

2

คุณสามารถใช้ softmax กับ "Face" และ "Not Face" เพียง 2 คลาสเท่านั้นและแปลผล softmax เป็นคะแนนความเชื่อมั่นซึ่งเป็นคุณสมบัติที่ดีที่จะได้รับสัญชาตญาณเกี่ยวกับตาข่ายลึกของคุณ

ลองทั้ง softmax 2 ระดับและการสูญเสียบานพับแบบไบนารี มีกระดาษการเรียนรู้เชิงลึกเมื่อเร็ว ๆ นี้โดยใช้ Linear Support Vector Machinesโดยใช้ SVM แทนตัวจําแนกซอฟต์แม็กซ์ที่ด้านบนของตาข่ายแบบเจาะลึกและมีผลลัพธ์ที่แน่นอน


2

โดยปกติแล้วการสูญเสียลอการิทึมจะเป็นตัวเลือกที่ต้องการใช้ร่วมกับหน่วยเอาต์พุตเดียวเท่านั้น การสูญเสียลอการิทึมเรียกอีกอย่างว่าการข้ามเอนโทรปีของไบนารีเพราะเป็นกรณีพิเศษของการข้ามเอนโทรปีที่ทำงานในสองชั้นเท่านั้น


คุณควรอัพเดทลิงค์แรกของคุณ
nbro

0

ในทางทฤษฎี softmax ที่มี 2 คลาสสามารถเขียนใหม่เป็น sigmoid ได้ดังนั้นจึงไม่ควรมีความแตกต่างของผลลัพธ์ระหว่างทั้งสอง จวนตามที่ @dontloo กล่าวถึงจำนวนพารามิเตอร์ในเลเยอร์เอาท์พุทจะเป็นสองเท่า (ไม่แน่ใจว่าสิ่งนี้จะนำไปสู่ปัญหา overfitting ใด ๆ ) และแน่นอนว่าคุณจะมี 2 คะแนนสำหรับทั้งสองคลาส (ใบหน้าและ Non_Face)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.