ฟังก์ชั่นการสูญเสียสำหรับระบบเข้ารหัสอัตโนมัติ


21

ฉันกำลังทดลองตัวเข้ารหัสอัตโนมัติเล็กน้อยและด้วย 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 จะรวมกันเป็นเมทริกซ์ที่มีค่าเป็นศูนย์เสมอ

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

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


1
คุณพูดถึงการใช้ sigmoid สำหรับฟังก์ชั่นการเปิดใช้งานในชั้นแรก ผู้จัดแสดง "อิ่มตัว" ตามที่ได้อธิบายมากขึ้นอย่างเต็มที่ในCS231n หมายเหตุ คุณลองฟังก์ชั่นการเปิดใช้งานอื่นเช่น ReLUs หรือไม่
Jerry

ฉันจำไม่ได้ตอนนี้ถ้าฉันลองอื่น แต่ขอบคุณสำหรับการแบ่งปัน!
AkiRoss

คำตอบ:


18

ฉันคิดว่าคำตอบที่ดีที่สุดสำหรับเรื่องนี้ก็คือฟังก์ชั่นการสูญเสียข้ามเอนโทรปีไม่เหมาะกับงานนี้โดยเฉพาะ

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

-[(เป้า)เข้าสู่ระบบ(คาดการณ์)+(1-เป้า)เข้าสู่ระบบ(1-คาดการณ์)]

การข้ามเอนโทรปีกับการสูญเสีย mse

เราจะเห็นได้ว่าการสูญเสียข้ามเอนโทรปีนั้นไม่สมมาตร ทำไมเราต้องการสิ่งนี้ มันเลวร้ายยิ่งกว่าการทำนาย 0.9 สำหรับพิกเซล 0.8 นี้มากกว่าที่จะคาดการณ์ 0.7 หรือไม่? ฉันจะบอกว่ามันอาจจะดีกว่าถ้ามีอะไร

เราอาจจะเข้าไปดูรายละเอียดเพิ่มเติมและหาสาเหตุที่สิ่งนี้นำไปสู่การ blobs เฉพาะที่คุณเห็น ฉันสงสัยว่ามันเป็นเพราะความเข้มของพิกเซลสูงกว่าค่าเฉลี่ย 0.5 ในภูมิภาคที่คุณเห็นหยด แต่โดยทั่วไปนี่เป็นกรณีของการสร้างแบบจำลองโดยนัยที่คุณทำไว้ไม่เหมาะสมสำหรับข้อมูล

หวังว่าจะช่วย!


3
ฟังก์ชั่นการสูญเสียใดที่เหมาะสมถ้าอินพุตลอยระหว่าง 0 ถึง 1
Jemshit Iskenderov

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