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