ค่าใช้จ่ายข้ามเอนโทรปีทำให้รู้สึกในบริบทของการถดถอยหรือไม่?


14

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

ฉันอ่านเกี่ยวกับ cross-entropy ในNeural Networks และ Deep Learningโดย Michael Nielsen และดูเหมือนว่าบางสิ่งบางอย่างที่สามารถใช้สำหรับการถดถอยและการจำแนกตามธรรมชาติ แต่ฉันไม่เข้าใจว่าคุณจะนำมันไปใช้อย่างมีประสิทธิภาพใน TensorFlow ตั้งแต่ ฟังก์ชั่นการสูญเสียทำบันทึก (ซึ่งฉันก็ไม่เข้าใจเหมือนกัน) และพวกมันอยู่ในหมวดหมู่ที่นี่


2
ฉันพบที่นี่เกี่ยวกับโควต้าที่ระบุว่าแตกต่างจากสิ่งที่ยอมรับว่าเป็นคำตอบสำหรับคำถามนี้
Siddharth Shakya

หากคุณอ่านการตอบสนองทั้งหมดคุณจะเห็นว่าเขาให้ "cross-entropy" รุ่นต่อเนื่องซึ่งค่อนข้างเท่ห์ แต่กลับกลายเป็นแค่ Mean Squared Error (MSE)
JacKeown

คำตอบ:


11

ไม่ไม่เหมาะสมที่จะใช้ฟังก์ชัน TensorFlow เช่นtf.nn.sigmoid_cross_entropy_with_logitsสำหรับงานการถดถอย ใน TensorFlow“ cross-entropy” เป็นชวเลข (หรือศัพท์แสง) สำหรับ“ entropy cross ที่เป็นหมวดหมู่” ข้ามเอนโทรปีอย่างแท้จริงคือการดำเนินการกับความน่าจะเป็น ปัญหาการถดถอยพยายามทำนายผลลัพธ์อย่างต่อเนื่องมากกว่าการจัดประเภท

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

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


6
แม้ว่ามันควรจะกล่าวว่าการใช้ binary crossentropy เป็นฟังก์ชั่นการสูญเสียในงานการถดถอยซึ่งค่าเอาต์พุตเป็นค่าจริงในช่วง [0,1] เป็นสิ่งที่สมเหตุสมผลและสมเหตุสมผล
วันนี้

@ วันนี้ฉันคิดว่านี่เป็นวิธีปฏิบัติที่บางคนนำมาใช้เพื่อเหตุผลในทางปฏิบัติ (เช่นเครือข่ายประสาทมาบรรจบกันได้เร็วขึ้น) แต่ฉันไม่แน่ใจว่าแบบจำลองนี้มีความสัมพันธ์กับการเปรียบเทียบการแจกแจงความน่าจะเป็นสองแบบ บางทีคุณอาจแสดงให้เห็นว่ามีความสัมพันธ์ระหว่างเป้าหมายที่มีค่าอย่างต่อเนื่องในและไบนารีข้ามเอนโทรปี [0,1]
Sycorax พูดว่า Reinstate Monica

6

คำตอบที่ได้รับจาก @Sycorax ถูกต้อง อย่างไรก็ตามมันเป็นสิ่งที่ควรค่าแก่การกล่าวถึงว่าการใช้ (binary) cross-entropy ในงานการถดถอยซึ่งค่าเอาต์พุตอยู่ในช่วง [0,1] เป็นสิ่งที่ถูกต้องและสมเหตุสมผล ที่จริงแล้วมันถูกใช้ในตัวสร้างภาพอัตโนมัติ (เช่นที่นี่และบทความนี้ ) คุณอาจสนใจที่จะดูหลักฐานทางคณิตศาสตร์อย่างง่ายว่าทำไมมันถึงใช้ได้ผลในกรณีนี้ในคำตอบนี้


ฟังก์ชั่นการสูญเสียสามารถถูกมองว่าเป็นโอกาส / ผู้โพสต์หรือการเปลี่ยนแปลงแบบโมโนโทนิกของพวกเขา ดังนั้นในขณะที่มันเป็นความจริงว่าในรูปแบบการถดถอยบางสูญเสียคล้ายกับข้ามเอนโทรปีอาจทำให้รู้สึกก็ไม่อาจจะเป็นวิธีการที่เหมาะสมในการจัดการกับการถดถอยใดที่ผลผลิตอยู่ในช่วง [0,1]
InfProbSciX

@InfProbSciX "อาจไม่ใช่วิธีการที่เหมาะสมในการจัดการกับการถดถอยใด ๆ ที่เอาต์พุตอยู่ในช่วง [0,1]" ดังนั้น "สมเหตุสมผล" ในสิ่งที่เหมาะสม? หรือคุณกำหนดความสมเหตุสมผลของฟังก์ชันการสูญเสียสำหรับงานเฉพาะได้อย่างไร ฉันสงสัยว่าคำสั่งนั้นอาจเป็นจริงสำหรับฟังก์ชั่นการสูญเสียใด ๆ มีฟังก์ชั่นการสูญเสียใด ๆ ที่จะมีเหตุผลที่จะใช้สำหรับงานถดถอยทุกประเภทแน่นอนหลังจากกำหนด "สมเหตุสมผล" หรือไม่?
วันนี้

วิธีที่ฉันจะนิยามเหตุผลก็คือการสร้างกฎหมายต้นแบบ ยกตัวอย่างเช่นในกรอบการถดถอยเช่นโดยที่เป็นข้อผิดพลาดของ iid - บอกว่ากระจายตามปกติความน่าจะเป็นเชิงลบคือการสูญเสียกำลังสอง ในการตั้งค่าที่มีลักษณะรูปแบบเช่นกฎหมาย , ลบบันทึกน่าจะเป็นว่าเอนโทรปีข้ามไบนารี ในกรณีที่กฎหมายมีความถดถอยเชิงเส้นตรงกับค่าปกติก่อนโควส์การสูญเสียจะสอดคล้องกับการลงโทษ L2 และอื่น ๆ ที่เป็นไปได้ผมอยากสร้างกฎหมายและจากนั้นได้รับมาสูญเสีย ϵ Y B e r n o u l l ฉัน( p θ )Y=fθ(X)+ϵϵYBernoulli(pθ)
InfProbSciX

@InfProbSciX ขอบคุณสำหรับการตอบกลับของคุณ ดังนั้นตามที่คุณกล่าวถึงขึ้นอยู่กับงานการถดถอย (และข้อสมมติฐานเกี่ยวกับการกระจายข้อมูลข้อผิดพลาด ฯลฯ ) ฟังก์ชั่นการสูญเสียอาจไม่เหมาะสมที่จะใช้ และอย่างที่ฉันได้กล่าวมานี่เป็นความจริงสำหรับฟังก์ชั่นการสูญเสียทั้งหมดรวมถึง crossentropy แน่นอนฉันเห็นประเด็นของคุณว่าเพียงเพราะค่าเอาต์พุตอยู่ในช่วง [0,1] ไม่รับประกันว่า crossentropy เป็นฟังก์ชั่นการสูญเสียทางเลือกที่ดีที่สุดและฉันไม่ได้พยายามที่จะถ่ายทอดอย่างอื่นในคำตอบของฉัน
วันนี้

5

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

สำหรับแบบเกาส์เซียนที่มีค่าเฉลี่ยแปรผัน แต่ความแปรปรวนในแนวทแยงคงที่มันจะเทียบเท่ากับ MSE สำหรับความแปรปรวนทั่วไปข้ามเอนโทรปีจะตรงกับกำลังสองของระยะ Mahalanobis สำหรับการแจกแจงแบบเอ็กซ์โพเนนเชียลการสูญเสียข้ามเอนโทรปีจะดูเหมือน ที่ต่อเนื่อง แต่ไม่ใช่ลบ ดังนั้นใช่ข้ามเอนโทรปีสามารถใช้สำหรับการถดถอย

fθ(x)ylogfθ(x),
y


2

น่าเสียดายที่ @Sycorax คำตอบที่ได้รับการยอมรับในขณะนี้มีรายละเอียดไม่ถูกต้อง

ที่จริงแล้วเป็นตัวอย่างที่สำคัญของการถดถอยผ่านเด็ดขาดข้ามเอนโทรปี - Wavenet - ได้รับการดำเนินการใน TensorFlow

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

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

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

อย่างไรก็ตามวิธีการนี้ไม่ได้ปรับขนาดให้ดีขึ้นกับเอาท์พุทที่มีมิติมากกว่าเพราะขนาดของเลเยอร์เอาท์พุทจะเพิ่มขึ้นแบบทวีคูณ


1
ฉันเห็นสิ่งที่คุณกำลังพูด แต่ฉันไม่คิดว่าจะแยกพื้นที่ออกของคุณเป็นการแสดง "การถดถอย" มากพอ ๆ กับที่มันใกล้เคียงกับปัญหาการถดถอยโดยใช้การจัดหมวดหมู่ ... แต่ฉันคิดว่ามันเป็นเรื่องของคำศัพท์ / การประชุม
JacKeown

1
ตกลง พื้นที่ลอยแบบ 32 บิตนั้นไม่ต่อเนื่อง :-)
dedObed

-1

ฉันกลับมาที่คำถามนี้เนื่องจากฉันไม่เห็นด้วยกับคำตอบที่ฉันยอมรับก่อนหน้านี้ การสูญเสียข้ามเอนโทรปีสามารถใช้ในการถดถอย (แม้ว่าจะไม่ใช่เรื่องธรรมดา)

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


1
คำตอบนี้ดูเหมือนจะตอบคำถามในวิธีที่แตกต่างจากที่ถาม ฟังก์ชั่นที่คุณเชื่อมโยงกับคำถามนั้นเกี่ยวกับการสูญเสียข้ามเอนโทรปีชนิดหนึ่งโดยเฉพาะและคำถามของคุณดูเหมือนจะถามว่าฟังก์ชั่นเหล่านั้นสามารถใช้ในการถดถอยได้หรือไม่และคำตอบของฉันเขียนขึ้น คุณเชื่อมโยงไปยัง คำตอบที่นี่ดูเหมือนจะตอบคำถาม "สามารถข้ามเอนโทรปีทั่วไปนอกเหนือจากการจำแนก?" การแก้ไข Q จะทำให้ชัดเจนว่าการโฟกัสนั้นขึ้นอยู่กับวิธีการกำหนดแนวความคิดทางคณิตศาสตร์แทนที่จะมุ่งเน้นไปที่วิธีการใช้ฟังก์ชั่น Tensorflow
Sycorax พูดว่า Reinstate Monica

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