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

Backpropagation คือ อัลกอริทึมการฝึกที่พบบ่อยที่สุดสำหรับโครงข่ายระบบประสาทเทียม ซึ่งทำให้การไล่ระดับสีระดับลงมาจากโครงข่ายประสาทแบบหลายชั้นได้ ไลบรารีโค้ดแมชชีนเลิร์นนิงจำนวนมาก (เช่น Keras) จัดการ Backpropagation โดยอัตโนมัติ คุณจึงไม่ต้องดำเนินการใดๆ การคำนวณที่สำคัญด้วยตัวเอง โปรดดูวิดีโอต่อไปนี้สำหรับ ภาพรวมเชิงแนวคิดเกี่ยวกับวิธีการทำงานของ Backpropagation

แนวทางปฏิบัติแนะนำสำหรับการฝึกโครงข่ายประสาท

ส่วนนี้อธิบายกรณีความล้มเหลวของการเผยแพร่ข้อมูลย้อนกลับและกรณี วิธีทั่วไปในการทำให้โครงข่ายประสาทเป็นมาตรฐาน

การไล่ระดับสีที่จางหาย

การไล่ระดับสีสำหรับประสาทเทียมตอนล่าง เลเยอร์เครือข่าย (ซึ่งอยู่ใกล้เลเยอร์อินพุต) อาจมีขนาดเล็กมาก ในเครือข่ายระดับลึก (เครือข่ายที่มี มากกว่าหนึ่งเลเยอร์ที่ซ่อนอยู่) การประมวลผลการไล่ระดับสีเหล่านี้อาจรวมถึงการใช้ จากคำเล็กๆ มากมาย

เมื่อค่าการไล่ระดับสีเข้าใกล้ 0 สำหรับเลเยอร์ด้านล่าง การไล่ระดับสีจะ ว่า "หายไป" เลเยอร์ที่มีการไล่ระดับสีที่หายไปจะค่อยๆ หายไป เลย

ฟังก์ชันการเปิดใช้งาน ReLU ช่วยป้องกันไม่ให้การไล่ระดับสีหายไปได้

การไล่ระดับสีระเบิด

ถ้าน้ำหนักในเครือข่ายมีขนาดใหญ่มาก การไล่ระดับสีสำหรับเครือข่ายที่ต่ำกว่า เลเยอร์เกี่ยวข้องกับผลิตภัณฑ์ของคำที่มีจำนวนมาก ในกรณีนี้คุณสามารถมี การไล่ระดับสีแบบระเบิด: การไล่ระดับสีที่ใหญ่เกินกว่าที่จะมาบรรจบกัน

การแปลงเป็นรูปแบบมาตรฐานแบบกลุ่มจะช่วยป้องกันการระเบิดของการไล่ระดับสี เช่น การลด อัตราการเรียนรู้

หน่วย ReLU ที่ตาย

เมื่อผลรวมถ่วงน้ำหนักสำหรับหน่วย ReLU ต่ำกว่า 0 หน่วย ReLU จะได้ ค้าง เอาต์พุตเป็น 0 ไม่ได้ให้อะไรกับเอาต์พุตของเครือข่าย และการไล่ระดับสีจะไม่สามารถผ่านการไล่ระดับสี ในระหว่างการประมวลผลแบบย้อนกลับได้อีกต่อไป พร้อม แหล่งที่มาของการไล่ระดับสีถูกตัดออก อินพุตไปยัง ReLU อาจไม่มีการเปลี่ยนแปลงมากพอ เพื่อแก้ผลรวมถ่วงน้ำหนักให้มากกว่า 0

การลดอัตราการเรียนรู้จะช่วยให้หน่วย ReLU ไม่ตายได้

การกำหนดกฎเกณฑ์การยกเลิก

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

  • 0.0 = ไม่มีการกำหนดกฎการออกกลางคัน
  • 1.0 = ยกเลิกโหนดทั้งหมด โมเดลจะไม่เรียนรู้อะไรเลย
  • ค่าระหว่าง 0.0 ถึง 1.0 = มีประโยชน์มากกว่า