โครงข่ายระบบประสาทเทียม: การฝึกโดยใช้การสร้างระบบย้อนกลับ

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 = มีประโยชน์มากขึ้น