ทำไม backpropagation ไม่ทำงานเมื่อคุณเริ่มต้นน้ำหนักทั้งหมดด้วยค่าเดียวกัน (พูด 0.5) แต่ทำงานได้ดีเมื่อได้รับตัวเลขสุ่ม
อัลกอริทึมไม่ควรคำนวณข้อผิดพลาดและทำงานจากที่นั่นแม้ว่าความจริงแล้วน้ำหนักจะเหมือนเดิมหรือไม่
ทำไม backpropagation ไม่ทำงานเมื่อคุณเริ่มต้นน้ำหนักทั้งหมดด้วยค่าเดียวกัน (พูด 0.5) แต่ทำงานได้ดีเมื่อได้รับตัวเลขสุ่ม
อัลกอริทึมไม่ควรคำนวณข้อผิดพลาดและทำงานจากที่นั่นแม้ว่าความจริงแล้วน้ำหนักจะเหมือนเดิมหรือไม่
คำตอบ:
การทำลายสมมาตร
หากน้ำหนักทั้งหมดเริ่มต้นด้วยค่าที่เท่ากันและหากโซลูชันต้องการให้มีการพัฒนาน้ำหนักไม่เท่ากันระบบจะไม่สามารถเรียนรู้ได้
นี่เป็นเพราะข้อผิดพลาดแพร่กระจายกลับผ่านน้ำหนักตามสัดส่วนของน้ำหนัก ซึ่งหมายความว่าหน่วยที่ซ่อนอยู่ทั้งหมดที่เชื่อมต่อโดยตรงกับหน่วยส่งออกจะได้รับสัญญาณข้อผิดพลาดเหมือนกันและเนื่องจากการเปลี่ยนแปลงน้ำหนักขึ้นอยู่กับสัญญาณข้อผิดพลาดน้ำหนักจากหน่วยเหล่านั้นไปยังหน่วยส่งออกจะต้องเหมือนกันเสมอ ระบบเริ่มต้นที่จุดสมดุลที่ไม่คงที่ซึ่งทำให้น้ำหนักเท่ากัน แต่สูงกว่าจุดที่อยู่ใกล้เคียงบนพื้นผิวข้อผิดพลาดและเมื่อมันเคลื่อนไปที่หนึ่งในจุดเหล่านี้มันจะไม่กลับมา เราแก้ไขปัญหานี้โดยเริ่มระบบด้วยน้ำหนักสุ่มขนาดเล็ก ภายใต้เงื่อนไขเหล่านี้ปัญหาสมมาตรประเภทนี้จะไม่เกิดขึ้น
สิ่งที่คุณต้องการให้น้อยที่สุดในโลก แต่คุณไม่มีวิธีที่จะรับประกันได้ว่าจะพบมันได้ และถ้าพื้นผิวของคุณมีหลายท้องถิ่นน้อยคุณอาจมีปัญหา
แต่ถ้ามีเพียงไม่กี่กลยุทธ์ของ Thierry ก็ควรใช้งานได้การค้นหาหลายครั้งสำหรับคำสั่งน้อยที่สุดในท้องถิ่นโดยเริ่มจากจุดที่เลือกแบบสุ่มควรเพิ่มโอกาสในการค้นหาระดับต่ำสุดทั่วโลก
และในกรณีที่มีความสุขที่มีเพียงหนึ่งขั้นต่ำ - เวกเตอร์น้ำหนักเริ่มต้นจะนำคุณไปสู่มัน