Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

Neural Network เรียนรู้โดยใช้ Back Propagation อย่างไร


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

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

Back Propagation มีขั้นตอนดังต่อไปนี้ -

  • เครือข่ายได้รับอินสแตนซ์การฝึกอบรมและคำนวณเอาท์พุตหรือเอาท์พุตโดยใช้น้ำหนักปัจจุบันในเครือข่าย

  • Back propagation คำนวณข้อผิดพลาดโดยการสร้างความแตกต่างระหว่างผลลัพธ์ที่คำนวณกับผลลัพธ์ที่คาดไว้ (ผลลัพธ์จริง)

  • ข้อผิดพลาดจะถูกส่งกลับผ่านเว็บและน้ำหนักจะถูกแก้ไขเพื่อลดข้อผิดพลาด ดังนั้นชื่อกลับแพร่กระจายเนื่องจากข้อผิดพลาดจะถูกส่งกลับผ่านเครือข่าย

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

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

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

นั่นคือน้ำหนักแต่ละอันจะจำได้ว่าได้รับมากขึ้นหรือน้อยลงและโมเมนตัมพยายามที่จะรักษาให้ไปในทิศทางที่เท่ากัน เครือข่ายที่มีโมเมนตัมมากจะตอบสนองอย่างช้าๆ ต่ออินสแตนซ์การฝึกใหม่ซึ่งจำเป็นต้องเปลี่ยนน้ำหนัก หากโมเมนตัมต่ำ น้ำหนักก็จะแกว่งอย่างเปิดเผยมากขึ้น

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