Backpropagation เป็นอัลกอริทึมการฝึกโครงข่ายระบบประสาทเทียมที่พบบ่อยที่สุด ซึ่งทำให้สามารถใช้การลดเชิงลาดได้กับเครือข่ายประสาทหลายชั้น ไลบรารีโค้ดแมชชีนเลิร์นนิงจํานวนมาก (เช่น Keras) จะจัดการ Backpropagation โดยอัตโนมัติ คุณจึงไม่ต้องทําการคํานวณพื้นฐานด้วยตนเอง ดูภาพรวมแนวคิดเกี่ยวกับวิธีการทํางานของ Backpropagation ได้จากวิดีโอต่อไปนี้
แนวทางปฏิบัติแนะนำสำหรับการฝึกโครงข่ายระบบประสาทเทียม
ส่วนนี้จะอธิบายกรณีความล้มเหลวในการแพร่หลาย (Backpropagation) และวิธีที่ใช้กันมากที่สุดในการทำให้โครงข่ายประสาทเป็นปกติ
การไล่ระดับสีที่เลือนหายไป
Gradient สำหรับชั้นเครือข่ายประสาทที่ต่ำลง (ชั้นที่อยู่ใกล้กับชั้นอินพุต) อาจมีค่าน้อยมาก ในเครือข่ายเชิงลึก (เครือข่ายที่มีเลเยอร์ที่ซ่อนอยู่มากกว่า 1 เลเยอร์) การหาอนุพันธ์เหล่านี้อาจเกี่ยวข้องกับการนำผลคูณของเทอมเล็กๆ จำนวนมากมาหาผล
เมื่อค่าไล่ระดับของเลเยอร์ด้านล่างเข้าใกล้ 0 ระบบจะถือว่าไล่ระดับ "หายไป" เลเยอร์ที่มีไล่ระดับสีที่หายไปจะฝึกได้ช้ามากหรือไม่ฝึกเลย
ฟังก์ชันการเปิดใช้งาน ReLU ช่วยป้องกันไม่ให้ความชันหายไปได้
การไล่ระดับสีแบบระเบิด
หากน้ำหนักในเครือข่ายมีขนาดใหญ่มาก การไล่ระดับสีสำหรับเลเยอร์ระดับล่างจะเกี่ยวข้องกับผลิตภัณฑ์ของคำที่มีขนาดใหญ่หลายคำ ในกรณีนี้ คุณอาจมีดีเทลที่เป็นไล่ระดับสีที่ระเบิดออกมา ซึ่งก็คือไล่ระดับสีที่ขยายตัวจนรวมกันไม่ได้
การปรับมาตรฐานกลุ่มช่วยป้องกันไม่ให้การลาดชันเพิ่มขึ้นอย่างรวดเร็วได้ เช่นเดียวกับการลดอัตราการเรียนรู้
หน่วย ReLU ที่ตาย
เมื่อผลรวมถ่วงน้ำหนักของหน่วย ReLU ลดลงต่ำกว่า 0 หน่วย ReLU อาจติดขัด ซึ่งเอาต์พุตจะเป็น 0 ทำให้ไม่มีผลลัพธ์ใดๆ ต่อเอาต์พุตของเครือข่าย และการไล่ระดับสีจะไม่ไหลผ่านอีกต่อไปในระหว่างการทำ Backpropagation หากแหล่งที่มาของการไล่ระดับสีตัดออก อินพุตไปยัง ReLU อาจไม่มีการเปลี่ยนแปลงเพียงพอที่จะทำให้ผลรวมถ่วงน้ำหนักกลับมาอยู่เหนือ 0 ได้
การลดอัตราการเรียนรู้จะช่วยให้หน่วย ReLU ไม่ตายได้
การถดถอยแบบ Dropout
การกำหนดมาตรฐานอีกรูปแบบหนึ่งที่เรียกว่าการจัดเรียงมาตรฐานแบบโทรออกมีประโยชน์สำหรับโครงข่ายระบบประสาทเทียม โดย "ยกเลิก" การเปิดใช้งานหน่วยในเครือข่ายแบบสุ่มสําหรับขั้นตอนเดียวของลําดับชั้น ยิ่งคุณออกกลางคันมากเท่าใด การทำให้ถูกต้องก็ยิ่งมีมากเท่านั้น
- 0.0 = ไม่มีการปรับสมดุลการหยุดทำงาน
- 1.0 = ยกเลิกโหนดทั้งหมด โมเดลไม่เรียนรู้อะไรเลย
- ค่าระหว่าง 0.0 ถึง 1.0 = มีประโยชน์มากขึ้น