ฉันต้องการใช้การเรียนรู้ลึกในการฝึกอบรมการตรวจจับใบหน้าไบนารี / ไม่ใช่ใบหน้าสิ่งที่สูญเสียฉันควรใช้ผมคิดว่ามันเป็นSigmoidCrossEntropyLossหรือบานพับการสูญเสีย
ใช่แล้ว แต่ฉันสงสัยด้วยว่าฉันควรใช้ softmax แต่มีเพียงสองคลาสเท่านั้น?
ฉันต้องการใช้การเรียนรู้ลึกในการฝึกอบรมการตรวจจับใบหน้าไบนารี / ไม่ใช่ใบหน้าสิ่งที่สูญเสียฉันควรใช้ผมคิดว่ามันเป็นSigmoidCrossEntropyLossหรือบานพับการสูญเสีย
ใช่แล้ว แต่ฉันสงสัยด้วยว่าฉันควรใช้ softmax แต่มีเพียงสองคลาสเท่านั้น?
คำตอบ:
การสูญเสียบานพับและเอนโทรปีข้ามมักพบว่ามีผลลัพธ์ที่คล้ายกัน นี่คือโพสต์อื่นเปรียบเทียบฟังก์ชั่นการสูญเสียที่แตกต่างกันอะไรคือผลกระทบของการเลือกฟังก์ชั่นการสูญเสียที่แตกต่างกันในการจำแนกประมาณ 0-1 สูญเสีย
ใช่แล้ว แต่ฉันสงสัยด้วยว่าฉันควรใช้ softmax แต่มีเพียงสองคลาสเท่านั้น?
Softmax ไม่ได้สูญเสีย SigmoidCrossEntropyLoss
แต่ฟังก์ชั่นการฟื้นฟูก็มักจะถูกนำมาใช้ร่วมกับการสูญเสียเอนโทรปีข้ามซึ่งเป็นหลักเทียบเท่ากับ ดูเพิ่มเติมCross-Entropy หรือ Log Likelihood ในเลเยอร์เอาต์พุต
ในกรณีของคุณคุณมีงานการจำแนกเลขฐานสองดังนั้นเลเยอร์เอาต์พุตของคุณอาจเป็น 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- ฟังก์ชั่นการใช้งานสำหรับเครื่องการเรียนรู้
คุณสามารถใช้ softmax กับ "Face" และ "Not Face" เพียง 2 คลาสเท่านั้นและแปลผล softmax เป็นคะแนนความเชื่อมั่นซึ่งเป็นคุณสมบัติที่ดีที่จะได้รับสัญชาตญาณเกี่ยวกับตาข่ายลึกของคุณ
ลองทั้ง softmax 2 ระดับและการสูญเสียบานพับแบบไบนารี มีกระดาษการเรียนรู้เชิงลึกเมื่อเร็ว ๆ นี้โดยใช้ Linear Support Vector Machinesโดยใช้ SVM แทนตัวจําแนกซอฟต์แม็กซ์ที่ด้านบนของตาข่ายแบบเจาะลึกและมีผลลัพธ์ที่แน่นอน
โดยปกติแล้วการสูญเสียลอการิทึมจะเป็นตัวเลือกที่ต้องการใช้ร่วมกับหน่วยเอาต์พุตเดียวเท่านั้น การสูญเสียลอการิทึมเรียกอีกอย่างว่าการข้ามเอนโทรปีของไบนารีเพราะเป็นกรณีพิเศษของการข้ามเอนโทรปีที่ทำงานในสองชั้นเท่านั้น
ในทางทฤษฎี softmax ที่มี 2 คลาสสามารถเขียนใหม่เป็น sigmoid ได้ดังนั้นจึงไม่ควรมีความแตกต่างของผลลัพธ์ระหว่างทั้งสอง จวนตามที่ @dontloo กล่าวถึงจำนวนพารามิเตอร์ในเลเยอร์เอาท์พุทจะเป็นสองเท่า (ไม่แน่ใจว่าสิ่งนี้จะนำไปสู่ปัญหา overfitting ใด ๆ ) และแน่นอนว่าคุณจะมี 2 คะแนนสำหรับทั้งสองคลาส (ใบหน้าและ Non_Face)
sigmoid
(เป็นการเปิดใช้งานเลเยอร์สุดท้าย) ขอบคุณ