นิยามที่แตกต่างกันของฟังก์ชั่นการสูญเสียเอนโทรปี


12

ฉันเริ่มเรียนรู้เกี่ยวกับเครือข่ายประสาทด้วยการสอนเกี่ยวกับโครงข่ายประสาทเทียมและคำแนะนำ dot com โดยเฉพาะอย่างยิ่งในบทที่ 3มีส่วนที่เกี่ยวกับฟังก์ชั่นเอนโทรปีของการข้ามและกำหนดการสูญเสียเอนโทรปีของครอสเป็น:

C=−1n∑x∑j(yjln⁡ajL+(1−yj)ln⁡(1−ajL))

อย่างไรก็ตามการอ่านการแนะนำ Tensorflowการสูญเสียเอนโทรปีถูกกำหนดเป็น:

C=−1n∑x∑j(yjln⁡ajL) (เมื่อใช้สัญลักษณ์เดียวกันกับด้านบน)

จากนั้นค้นหาไปรอบ ๆ เพื่อค้นหาว่าเกิดอะไรขึ้นฉันพบบันทึกอีกชุดหนึ่ง: ( https://cs231n.github.io/linear-classify/#softmax-classifier ) ซึ่งใช้คำจำกัดความที่แตกต่างกันโดยสิ้นเชิงของการสูญเสียเอนโทรปีของการข้าม เวลาสำหรับตัวจําแนก softmax แทนเครือข่ายประสาท

บางคนสามารถอธิบายให้ฉันฟังได้ว่าเกิดอะไรขึ้นที่นี่ ทำไมถึงมีข้อแตกต่าง btw สิ่งที่ผู้คนกำหนดการสูญเสียข้ามเอนโทรปีเป็น? มีเพียงหลักการบางอย่างที่ครอบคลุมอยู่หรือไม่


เกี่ยวข้องอย่างใกล้ชิด: stats.stackexchange.com/questions/260505/…
— Sycorax พูดว่า Reinstate Monica

คำตอบ:


18

คำจำกัดความทั้งสามนี้โดยพื้นฐานแล้วจะเหมือนกัน

1) การแนะนำ Tensorflow ,

C=−1n∑x∑j(yjln⁡aj).

2) สำหรับการจำแนกประเภทไบนารีมันจะกลายเป็น และเนื่องจากข้อ จำกัดและมันสามารถเขียนใหม่เป็น ซึ่งเหมือนกับในบทที่ 3 .j=2

C=−1n∑x(y1ln⁡a1+y2ln⁡a2)
∑jaj=1∑jyj=1
C=−1n∑x(y1ln⁡a1+(1−y1)ln⁡(1−a1))

3) ยิ่งกว่านั้นถ้าเป็นเวกเตอร์แบบหนึ่งที่ร้อนแรง (ซึ่งโดยทั่วไปจะเป็นกรณีสำหรับการจำแนกประเภทฉลาก) โดยที่เป็นองค์ประกอบที่ไม่เป็นศูนย์เท่านั้นดังนั้นการสูญเสียเอนโทรปีของตัวอย่างที่สอดคล้องกันคือ yyk

Cx=−∑j(yjln⁡aj)=−(0+0+...+ykln⁡ak)=−ln⁡ak.

ในบันทึกย่อ cs231การข้ามเอนโทรปีของการสูญเสียของตัวอย่างจะถูกกำหนดพร้อมกับการทำให้เป็นมาตรฐาน softmax เป็น

Cx=−ln⁡(ak)=−ln⁡(efk∑jefj).

0

ในบทที่สามสมการ (63) คือเอนโทรปีของกากบาทที่ใช้กับหลาย sigmoids (ซึ่งอาจไม่รวมถึง 1) ในขณะที่ในTensoflow introการคำนวณข้ามเอนโทรปีจะถูกคำนวณบนชั้นเอาท์พุท softmax

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

ดูคำตอบ dontlooอื่น ๆ นี้เช่นกัน

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