ทำไมน้ำหนักเริ่มต้นในเครือข่ายประสาทเทียมจึงถูกสุ่ม?


10

นี่อาจฟังดูไร้สาระสำหรับคนที่มีประสบการณ์มากมายกับเครือข่ายประสาท แต่มันรบกวนจิตใจฉัน ...

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

ทำไมน้ำหนักเริ่มต้นสำหรับเซลล์ประสาทจึงถูกสุ่มมากกว่า 0.5 สำหรับพวกเขาทั้งหมด?


ปัญหาในการแก้ไขของฉันคืออะไร คุณคิดว่าคุณไม่สามารถปรับปรุงได้หรือไม่?
nbro

@nbro เพิ่มหลายคำถามซึ่งจะทำให้มันกว้างเกินไป ...
Matas Vaitkevicius

ฉันเพิ่มคำถามใดที่ไม่ปรากฏในโพสต์ของคุณ ฉันเพิ่งตั้งคำถามใหม่ว่าคุณตั้งสมมติฐานอย่างไร
nbro

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

@nbro สวัสดีดูสิฉันไม่ได้ทำบุญคุณและแน่นอนไม่ต้องการทำให้คุณขุ่นเคือง ฉันไม่ดีที่ถามคำถามด้วยถ้อยคำและทุกอย่าง ดังนั้นฉันขอโทษถ้าฉันทำให้คุณขุ่นเคือง
Matas Vaitkevicius

คำตอบ:


6

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

การอ้างอิง: ทำไมการ backpropagation จึงไม่ทำงานเมื่อคุณเริ่มต้นน้ำหนักที่มีค่าเท่ากัน?


ในความเป็นจริงพวกเขาพังถ้าน้ำหนักทั้งหมดเหมือนกัน
Quonux

9

คุณไม่ควรกำหนดให้ทั้งหมด 0.5 เพราะคุณมีปัญหา "การแบ่งสมมาตร"

http://www.deeplearningbook.org/contents/optimization.html

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


2

นั่นเป็นคำถามที่ลึกซึ้งมาก มีชุดของเอกสารเมื่อเร็ว ๆ นี้มีหลักฐานของการบรรจบกันของโคตรลาดสำหรับเครือข่ายลึก overparameterized (ตัวอย่างเช่นการไล่โทนสีโคตรพบทั่วโลก Minima ลึกโครงข่ายประสาท , ลู่ทฤษฎีการเรียนรู้ลึกผ่าน Over-parameterizationหรือStochastic ไล่โทนสีโคตรเพิ่มประสิทธิภาพกว่าแปรลึก เครือข่าย ReLU ) ทั้งหมดของพวกเขาพิสูจน์เงื่อนไขในการกระจายน้ำหนักแบบเกาส์สุ่ม มันเป็นสิ่งสำคัญสำหรับการพิสูจน์ขึ้นอยู่กับปัจจัยสองประการ:

  1. น้ำหนักแบบสุ่มทำให้การแมปแบบบีบอัดสถิติของ ReLU (สูงถึงการแปลงเชิงเส้น)

  2. น้ำหนักแบบสุ่มรักษาการแยกอินพุตสำหรับการกระจายอินพุตใด ๆ - นั่นคือถ้าตัวอย่างอินพุตมีการกระจายเครือข่ายที่แตกต่างจะไม่ทำให้แยกไม่ออก

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.