ฉันกำลังทดลองตัวเข้ารหัสอัตโนมัติเล็กน้อยและด้วย tenorflow ฉันได้สร้างแบบจำลองที่พยายามสร้างชุดข้อมูล MNIST ขึ้นมาใหม่
เครือข่ายของฉันง่ายมาก: X, e1, e2, d1, Y โดยที่ e1 และ e2 กำลังเข้ารหัสเลเยอร์, d2 และ Y เป็นชั้นถอดรหัส (และ Y เป็นเอาต์พุตที่สร้างขึ้นใหม่)
X มี 784 หน่วย, e1 มี 100, e2 มี 50, d1 มี 100 อีกครั้งและ Y 784 อีกครั้ง
ฉันใช้ sigmoids เป็นฟังก์ชั่นการเปิดใช้งานสำหรับเลเยอร์ e1, e2, d1 และ Y อินพุตอยู่ใน [0,1] และควรเป็นเอาต์พุต
ฉันลองใช้ cross entropy เป็นฟังก์ชั่นการสูญเสีย แต่ผลลัพธ์นั้นเป็นหยดเสมอและฉันสังเกตว่าน้ำหนักจาก X ถึง e1 จะรวมกันเป็นเมทริกซ์ที่มีค่าเป็นศูนย์เสมอ
ในทางกลับกันการใช้ข้อผิดพลาดกำลังสองเฉลี่ยเป็นฟังก์ชั่นการสูญเสียจะให้ผลลัพธ์ที่ดีและตอนนี้ฉันสามารถสร้างอินพุตได้ใหม่
เหตุผลที่เป็นเช่นนั้น? ฉันคิดว่าฉันสามารถตีความค่าเป็นความน่าจะเป็นและดังนั้นใช้ข้ามเอนโทรปี แต่เห็นได้ชัดว่าฉันกำลังทำอะไรผิด