HOW TO: การกำหนดน้ำหนักเริ่มต้นของ Deep Neural Network


10

ได้รับเรื่องยากในการเรียนรู้งาน (เช่นมิติสูงซับซ้อนข้อมูลโดยธรรมชาติ) ลึกโครงข่ายประสาทกลายเป็นเรื่องยากที่จะรถไฟ เพื่อบรรเทาปัญหาที่อาจเกิดขึ้น:

  1. ทำข้อมูลคุณภาพ & ให้เป็นแบบดั้งเดิม
  2. เลือกอัลกอริทึมการฝึกอบรมที่แตกต่างกัน(เช่น RMSprop แทน Gradient Descent)
  3. เลือกฟังก์ชันการไล่ระดับสีชัน(เช่น Cross Entropy แทน MSE)
  4. ใช้โครงสร้างเครือข่ายอื่น (เช่น Convolution เลเยอร์แทน Feedforward)

ฉันเคยได้ยินว่ามีวิธีที่ชาญฉลาดในการเริ่มต้นน้ำหนักที่ดีขึ้น ตัวอย่างเช่นคุณสามารถเลือกขนาดได้ดีกว่า: Glorot และ Bengio (2010)

  • สำหรับหน่วย sigmoid: ตัวอย่างUniform (-r, r)ด้วยr=6Nin+Nout
  • หรือไฮเพอร์โบลิกแทนเจนต์: ตัวอย่างชุด (-r, r)ด้วยr=46Nin+Nout

มีวิธีที่สอดคล้องกันในการเริ่มต้นน้ำหนักที่ดีขึ้นหรือไม่

คำตอบ:


7

เท่าที่ฉันรู้ว่าสูตรทั้งสองที่คุณให้นั้นเป็นค่าเริ่มต้นมาตรฐาน ฉันเคยอ่านวรรณกรรมมาระยะหนึ่งแล้วฉันได้คัดลอกไว้ด้านล่างหากสนใจ


[1] ตอบคำถาม:

ก่อนอื่นไม่ควรตั้งค่าตุ้มน้ำหนักให้เป็นศูนย์เพื่อให้สมมาตรแตกหักเมื่อทำการ backprogragating:

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

กลยุทธ์การเริ่มต้นบางอย่าง:

  • [2] และ [3] แนะนำการปรับสเกลโดยการผกผันของสแควร์รูทของ fan-in
  • Glorot และ Bengio (2010) และบทเรียนการเรียนรู้แบบลึกใช้การผสมผสานระหว่าง fan-in และ fan-out:
    • สำหรับหน่วย sigmoid: ตัวอย่าง Uniform (-r, r) ด้วย r=6fan-in+fan-out (fan-in คือจำนวนอินพุตของหน่วย)
    • สำหรับหน่วยไฮเพอร์โบลิกแทนเจนต์: ตัวอย่างชุด (-r, r) ด้วย r=46fan-in+fan-out (fan-in คือจำนวนอินพุตของหน่วย)
  • ในกรณีของ RBMs, Gaussian แบบ zero-Mean ที่มีค่าเบี่ยงเบนมาตรฐานเล็กน้อยประมาณ 0.1 หรือ 0.01 ทำงานได้ดี (Hinton, 2010) เพื่อเริ่มต้นน้ำหนัก
  • การกำหนดค่าเริ่มต้นแบบสุ่มเมทริกซ์แบบมุมฉากเช่นW = np.random.randn(ndim, ndim); u, s, v = np.linalg.svd(W)นั้นใช้uเป็นเมทริกซ์การเริ่มต้นของคุณ

นอกจากนี้การฝึกอบรมล่วงหน้าที่ไม่มีผู้ดูแลอาจช่วยในบางสถานการณ์:

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

ห้องสมุด ANN บางแห่งมีรายการที่น่าสนใจเช่นLasagne :

Constant([val]) Initialize weights with constant value.
Normal([std, mean]) Sample initial weights from the Gaussian distribution.
Uniform([range, std, mean]) Sample initial weights from the uniform distribution.
Glorot(initializer[, gain, c01b])   Glorot weight initialization.
GlorotNormal([gain, c01b])  Glorot with weights sampled from the Normal distribution.
GlorotUniform([gain, c01b]) Glorot with weights sampled from the Uniform distribution.
He(initializer[, gain, c01b])   He weight initialization.
HeNormal([gain, c01b])  He initializer with weights sampled from the Normal distribution.
HeUniform([gain, c01b]) He initializer with weights sampled from the Uniform distribution.
Orthogonal([gain])  Intialize weights as Orthogonal matrix.
Sparse([sparsity, std]) Initialize weights as sparse matrix.

[1] Bengio, Yoshua " คำแนะนำการปฏิบัติสำหรับการฝึกอบรมสถาปัตยกรรมเชิงลึกแบบไล่โทนสี " Neural Networks: Tricks of the Trade Springer Berlin Heidelberg, 2012 437-478

[2] LeCun, Y. , Bottou, L. , Orr, GB และ Muller, K. (1998a) backprop ที่มีประสิทธิภาพ ในโครงข่ายประสาท, เคล็ดลับของการค้า

[3] Glorot, Xavier และ Yoshua Bengio " ทำความเข้าใจกับความยากลำบากในการฝึกอบรมเครือข่ายนิวรัลไปข้างหน้า" การประชุมระหว่างประเทศเกี่ยวกับปัญญาประดิษฐ์และสถิติ 2010


2
สิ่งที่คุณขาดหายไปคือ Batch Normalization อธิบายไว้ที่นี่: arxiv.org/abs/1502.03167 อาจมีประโยชน์
Joonatan Samuel

Kaiming เขา Xiangyu จาง Shaoqing Ren เจียนดวงอาทิตย์มีการเผยแพร่บทความใหม่ซึ่งรวมถึงรูปแบบของการเริ่มต้นน้ำหนักซาเวียร์จาก Glorot และ Bengio A: "Delving ลึกเข้าไปในวงจรเรียงกระแส: เหนือกว่าประสิทธิภาพของมนุษย์ระดับบน ImageNet การจัดหมวดหมู่"
mjul
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.