ฉันเคยเห็นข้อผิดพลาดของการทดสอบ / การฝึกอบรมเกิดขึ้นในบางครั้งในระหว่างการฝึกอบรมโครงข่ายประสาทเทียมและฉันสงสัยว่าอะไรเป็นสาเหตุของการกระโดดเหล่านี้:
ภาพนี้นำมาจาก Kaiming เขา Github แต่แปลงที่คล้ายกันปรากฏขึ้นในเอกสารจำนวนมาก
ฉันเคยเห็นข้อผิดพลาดของการทดสอบ / การฝึกอบรมเกิดขึ้นในบางครั้งในระหว่างการฝึกอบรมโครงข่ายประสาทเทียมและฉันสงสัยว่าอะไรเป็นสาเหตุของการกระโดดเหล่านี้:
ภาพนี้นำมาจาก Kaiming เขา Github แต่แปลงที่คล้ายกันปรากฏขึ้นในเอกสารจำนวนมาก
คำตอบ:
พวกเขาเปลี่ยนอัตราการเรียนรู้ โปรดทราบว่าการหยดนั้นอยู่ที่ 30 และ 60 ยุคอย่างแน่นอนโดยบางคนตั้งค่าด้วยตนเอง
คิดว่า "แนวการเพิ่มประสิทธิภาพ" ตัวอย่างเช่นหากคุณมีเครือข่ายที่มีน้ำหนักเพียงสองน้ำหนักเท่านั้นคุณสามารถวางแผนการรวมกันของน้ำหนักทั้งสองนี้บนพื้นผิวโดยที่ความสูงในแต่ละจุดแสดงจำนวนข้อผิดพลาดฟังก์ชันต้นทุนของคุณจะส่งคืนถ้าคุณใช้ (x, y ) ประสานงานเป็นสองน้ำหนักของคุณ คุณกำลังพยายามย้ายไปยังจุดต่ำสุดบนพื้นผิวนี้เพื่อรับข้อผิดพลาดระดับต่ำสุด
บางครั้งปัญหาก็คือพื้นผิวอาจบ้าไปแล้วโดยเฉพาะในเครือข่ายที่มีพารามิเตอร์หลายล้านตัวแทนที่จะเป็นแค่สองตัว คุณสามารถติดอยู่ในจุดอานที่ความคืบหน้าจะชะลอตัวลงและจากนั้นก็ถูกยิงสลิงกลับเข้าไปในเนินเขาลง
นี่คือภาพเคลื่อนไหวเพื่อช่วยให้เห็นภาพนี้
ในขณะที่คุณสามารถเห็นอัลกอริธึมการไล่ระดับสีขั้นพื้นฐานเพิ่มเติมติดอยู่ในตำแหน่งเหล่านี้ได้ง่ายขึ้นมาก
อาจมีสาเหตุอื่นสำหรับสิ่งนี้เช่นกัน แต่นี่เป็นสาเหตุที่คุณได้ยินบ่อยที่สุด อาจเป็นไปได้ว่าเครือข่ายอาจมีจำนวนหน่วยที่ได้รับการเปิดใช้งานแบบอิ่มตัว (หรือในกรณีของ relu หน่วยที่เปิดใช้งานโดยอินพุตการฝึกอบรมจำนวนน้อยมากเท่านั้น) และเมื่อหน่วยหนึ่งออกจากความอิ่มตัว กำหนดปฏิกิริยาลูกโซ่ที่เคลื่อนย้ายส่วนที่เหลือออกจากความอิ่มตัวและน้ำหนักก็เพิ่มการไหลของการไล่ระดับสี ฉันไม่ได้มองอะไรแบบนั้น แต่ฉันสนใจถ้าใครมีเหตุผลอื่น ๆ ที่จะเพิ่ม