คู่มือทางเทคนิค

การเริ่มต้นน้ำหนัก

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

อ่าน 2 นาทีอัปเดตล่าสุด

ภาพรวม

Good initialization is the difference between fast convergence and a model that never learns.

เจาะลึก

ก่อนการฝึก ทุกน้ำหนักต้องมีค่าเริ่มต้น การตั้งค่าทั้งหมดให้เป็นศูนย์นั้นเป็นอันตรายถึงชีวิต: น้ำหนักที่เท่ากันทำให้เกิดการไล่ระดับสีที่เหมือนกัน ดังนั้นเซลล์ประสาทจึงไม่เคยแยกความแตกต่าง นี่คือปัญหาการทำลายความสมมาตร การเริ่มต้นแบบสุ่มจะทำลายความสมมาตร แต่ขนาดมีความสำคัญอย่างมาก ใหญ่เกินไปและการเปิดใช้งานและการไล่ระดับสีจะระเบิด เล็กเกินไปแล้วก็หายไป รูปแบบหลักการจะเลือกความแปรปรวนตามขนาดเลเยอร์เพื่อรักษาความแปรปรวนของสัญญาณให้คงที่โดยประมาณทั่วทั้งเลเยอร์ การเริ่มต้น Xavier (Glorot) จะปรับขนาดความแปรปรวนตามจำนวนหน่วยอินพุตบวกเอาต์พุต และเหมาะสมกับเครือข่าย Tanh และ sigmoid การกำหนดค่าเริ่มต้นของ He (Kaiming) จะปรับขนาดตามจำนวนอินพุตและบัญชีสำหรับ ReLU ทิ้งอินพุตครึ่งหนึ่ง ทำให้เป็นมาตรฐานสำหรับ deep nets และ CNN ที่ใช้ ReLU การเริ่มต้นที่ดีจะทำให้การฝึกอบรมในช่วงเริ่มต้นมีความเสถียรจนกว่าการทำให้เป็นมาตรฐานและเครื่องมือเพิ่มประสิทธิภาพแบบปรับตัวจะเข้ามาแทนที่

ข้อมูลเชิงลึกทางเทคนิค

เป้าหมายคือการรักษาความแปรปรวนของการเปิดใช้งานและการไล่ระดับสีให้คงที่จากเลเยอร์หนึ่งไปอีกเลเยอร์หนึ่ง Xavier ตั้งค่าความแปรปรวนของน้ำหนักเป็น 2 / (fan_in + fan_out) เพื่อปรับสมดุลการส่งบอลไปข้างหน้าและข้างหลังสำหรับการเปิดใช้งานแบบสมมาตร การเริ่มต้นใช้ 2 / fan_in เนื่องจาก ReLU ตั้งค่าอินพุตเป็นศูนย์ประมาณครึ่งหนึ่ง ดังนั้นการเพิ่มความแปรปรวนเป็นสองเท่าจะช่วยชดเชยสัญญาณที่หายไป โดยทั่วไปอคติจะเริ่มต้นเป็นศูนย์เนื่องจากความสมมาตรถูกทำลายด้วยน้ำหนักสุ่มแล้ว

ผลกระทบเชิงกลยุทธ์

ต้นทุนและงบประมาณ

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

การตัดสินใจที่ชัดเจนยิ่งขึ้น

การศึกษาด้านเทคนิคช่วยให้ทีมเลือกกลุ่มที่เหมาะสม ไม่ใช่แค่กลุ่มใหม่ล่าสุด

การควบคุมคุณภาพ

ตัวเลือกทางวิศวกรรมที่ดีกว่าจะช่วยลดเหตุการณ์ด้านความน่าเชื่อถือในการผลิต

อนาคตของการเริ่มต้นตุ้มน้ำหนัก

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

การใช้งานจริงในโลกแห่งความเป็นจริง

CNN ที่ใช้การเปิดใช้งาน ReLU จะเริ่มต้นได้ด้วยการเริ่มต้น He ดังนั้นสแต็กการบิดแบบลึกจึงฝึกโดยไม่มีสัญญาณหายไป

เครือข่ายที่มีการเปิดใช้งาน Tanh ใช้การเริ่มต้น Xavier เพื่อรักษาความแปรปรวนในการเปิดใช้งานให้คงที่ในทุกเลเยอร์

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

ค่าเริ่มต้นของเฟรมเวิร์ก (Kaiming ของ PyTorch, เครื่องแบบ Glorot ของ Keras) จะใช้การเริ่มต้นตามหลักการโดยอัตโนมัติเมื่อสร้างเลเยอร์

ความเสี่ยงและรั้ว

การเพิ่มประสิทธิภาพเกณฑ์มาตรฐานหนึ่งรายการสามารถซ่อนจุดอ่อนของระบบในวงกว้างได้

ต้นทุนโครงสร้างพื้นฐานและการบำรุงรักษามักถูกประเมินต่ำไป

ช่องว่างด้านความปลอดภัยและความสามารถในการสังเกตสามารถเพิ่มขึ้นได้เมื่อระบบมีความซับซ้อนมากขึ้น

แผนงานการดำเนินงาน

1

กำหนดเป้าหมายเวลาแฝง คุณภาพ และต้นทุนก่อนนำไปใช้งาน

2

เกณฑ์มาตรฐานภายใต้สภาวะโหลดและข้อมูลจริง

3

การตรวจสอบเครื่องมือเพื่อหาข้อผิดพลาด การเบี่ยงเบน และผลกระทบต่อผู้ใช้

4

เตรียมเส้นทางการย้อนกลับและการตอบสนองต่อเหตุการณ์ก่อนปรับขนาด

สำรวจต่อไป

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the Weight Initialization quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

เริ่มแบบทดสอบ

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

คำแนะนำต่อไป

ค่าเฉลี่ยน้ำหนักสุ่ม

คำถามที่พบบ่อย

What is Weight Initialization?

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

เหตุใดการเริ่มต้นน้ำหนักทั้งหมดให้เป็นศูนย์จึงเป็นข้อผิดพลาดร้ายแรง

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

การเริ่มต้น He (Kaiming) ได้รับการออกแบบมาโดยเฉพาะสำหรับฟังก์ชันการเปิดใช้งานใด

การเริ่มต้นจะปรับขนาดความแปรปรวน 2 / fan_in เพื่อชดเชย ReLU ที่ทำให้อินพุตประมาณครึ่งหนึ่งเป็นศูนย์

เป้าหมายหลักของแผนการเริ่มต้นน้ำหนักตามหลักการคืออะไร

แผนเช่น Xavier และ He เลือกความแปรปรวนของน้ำหนักจากขนาดเลเยอร์ ดังนั้นสัญญาณจะไม่หายไปหรือระเบิดในขณะที่พวกมันแพร่กระจาย

การเริ่มต้น Xavier (Glorot) เหมาะที่สุดสำหรับเครือข่ายที่ใช้การเปิดใช้งานใด

Xavier ปรับสมดุลความแปรปรวนไปข้างหน้าและข้างหลังสำหรับการเปิดใช้งานที่สมมาตรและอิ่มตัว เช่น Tanh และ sigmoid

เหตุใดการเริ่มต้นเขาจึงใช้ความแปรปรวนของ 2 / fan_in มากกว่า 1 / fan_in

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