จะไม่เริ่มต้นน้ำหนักเป็น 0 เป็นความคิดที่ดีกว่าหรือ? ด้วยวิธีนี้น้ำหนักจะสามารถหาค่า (ไม่ว่าจะเป็นบวกหรือลบ) ได้เร็วขึ้น?
การทำลายสมมาตรทำให้เรียนรู้เร็วขึ้นได้อย่างไร
หากคุณเริ่มต้นน้ำหนักทั้งหมดที่จะเป็นศูนย์แล้วทั้งหมดเซลล์ประสาทของทุกชั้นดำเนินการคำนวณเดียวกันให้ผลผลิตเดียวกันและมีโดยการทำให้ทั้งลึกสุทธิที่ไร้ประโยชน์ หากน้ำหนักเป็นศูนย์ความซับซ้อนของตาข่ายลึกทั้งหมดจะเหมือนกับเซลล์ประสาทเดี่ยวและการคาดการณ์จะไม่มีอะไรดีไปกว่าการสุ่ม
โหนดที่อยู่เคียงข้างกันในเลเยอร์ที่ซ่อนอยู่ซึ่งเชื่อมต่อกับอินพุตเดียวกันต้องมีน้ำหนักต่างกันเพื่อให้อัลกอริทึมการเรียนรู้อัปเดตน้ำหนัก
การทำให้น้ำหนักไม่เป็นศูนย์ (แต่ใกล้ 0 เช่น 0.1 เป็นต้น) อัลกอริทึมจะเรียนรู้น้ำหนักในการทำซ้ำครั้งต่อไปและจะไม่ติด ด้วยวิธีนี้การทำลายสมมาตรจึงเกิดขึ้น
- มีปรัชญาพื้นฐานอื่น ๆ ที่อยู่เบื้องหลังการสุ่มน้ำหนักนอกเหนือจากการหวังว่าค่าเหล่านี้จะอยู่ใกล้ค่าที่เหมาะสมที่สุดเมื่อเริ่มต้นหรือไม่?
อัลกอริทึมการปรับให้เหมาะสมแบบสุ่มเช่นการสืบเชื้อสายไล่ระดับสุ่มใช้การสุ่มในการเลือกจุดเริ่มต้นสำหรับการค้นหาและในความก้าวหน้าของการค้นหา
ความก้าวหน้าของการค้นหาหรือการเรียนรู้ของเครือข่ายประสาทเรียกว่าคอนเวอร์เจนซ์ การค้นพบโซลูชันที่ไม่เหมาะสมหรือผลลัพธ์ที่เหมาะสมในท้องถิ่นไปสู่การบรรจบกันก่อนกำหนด
แทนที่จะใช้ optima ในเครื่องเดียวหากคุณเรียกใช้อัลกอริทึมของคุณหลายครั้งด้วยน้ำหนักแบบสุ่มที่แตกต่างกันมีความเป็นไปได้ที่ดีที่สุดในการค้นหา global optima โดยไม่ติดขัดที่ optima ในพื้นที่
โพสต์ 2015 เนื่องจากความก้าวหน้าในการวิจัยการเรียนรู้ของเครื่องHe-et-al Initializatio n จึงถูกนำมาใช้เพื่อแทนที่การเริ่มต้นแบบสุ่ม
w=np.random.randn(layer_size[l],layer_size[l-1])*np.sqrt(2/layer_size[l-1])
น้ำหนักยังคงเป็นแบบสุ่ม แต่จะแตกต่างกันไปตามขนาดของเซลล์ประสาทชั้นก่อนหน้า
โดยสรุปแล้วน้ำหนักสุ่มที่ไม่ใช่ศูนย์ช่วยเราได้
- ออกมาจาก optima ในพื้นที่
- ทำลายสมมาตร
- เข้าถึง Optima ทั่วโลกในการทำซ้ำเพิ่มเติม