แนวทางการเลือกเครื่องมือเพิ่มประสิทธิภาพสำหรับการฝึกอบรมโครงข่ายประสาทเทียม


18

ฉันใช้โครงข่ายประสาทเทียมมาระยะหนึ่งแล้ว อย่างไรก็ตามสิ่งหนึ่งที่ฉันต่อสู้อย่างต่อเนื่องคือการเลือกเครื่องมือเพิ่มประสิทธิภาพสำหรับการฝึกอบรมเครือข่าย (โดยใช้ backprop) สิ่งที่ฉันมักจะทำคือเริ่มต้นด้วยหนึ่ง (เช่นมาตรฐาน SGD) จากนั้นลองคนอื่น ๆ แบบสุ่มมากทีเดียว ฉันสงสัยว่ามีวิธีที่ดีกว่า (และสุ่มน้อยกว่า) ในการค้นหาเครื่องมือเพิ่มประสิทธิภาพที่ดีเช่นจากรายการนี้:

  • SGD (มีหรือไม่มีโมเมนตัม)
  • AdaDelta
  • AdaGrad
  • RMSProp
  • อาดัม

โดยเฉพาะอย่างยิ่งฉันสนใจว่ามีเหตุผลทางทฤษฎีบางอย่างสำหรับการเลือกมากกว่าหนึ่งเนื่องจากข้อมูลการฝึกอบรมมีคุณสมบัติบางอย่างเช่นมันเบาบาง ฉันจะจินตนาการว่าเครื่องมือเพิ่มประสิทธิภาพบางอย่างทำงานได้ดีกว่าโดเมนอื่น ๆ เช่นเมื่อฝึกอบรมเครือข่าย convolutional เทียบกับเครือข่าย feed-forward หรือการจัดหมวดหมู่เทียบกับการถดถอย

หากคุณคนใดพัฒนากลยุทธ์และ / หรือสัญชาตญาณว่าคุณจะเลือกเครื่องมือเพิ่มประสิทธิภาพได้อย่างไรฉันจะสนใจเป็นอย่างมาก นอกจากนี้หากมีงานที่ให้เหตุผลทางทฤษฎีในการเลือกงานหนึ่งงานนั่นจะดียิ่งขึ้น

คำตอบ:


3

1) AdaGrad ลงโทษอัตราการเรียนรู้อย่างรุนแรงเกินไปสำหรับพารามิเตอร์ที่มีการปรับปรุงบ่อยครั้งและให้อัตราการเรียนรู้มากขึ้นสำหรับพารามิเตอร์กระจัดกระจายพารามิเตอร์ที่ไม่ได้รับการปรับปรุงบ่อย ในหลายปัญหาบ่อยครั้งที่ข้อมูลที่สำคัญที่สุดมีอยู่ในข้อมูลที่ไม่บ่อย แต่กระจัดกระจาย ดังนั้นหากปัญหาคุณกำลังทำงานกับดีลที่มีข้อมูลกระจัดกระจายเช่น tf-idf เป็นต้น Adagrad มีประโยชน์

2) AdaDelta, RMSProp ทำงานบนบรรทัดที่คล้ายกันโดยมีความแตกต่างเพียงอย่างเดียวใน Adadelta คุณไม่จำเป็นต้องมีค่าคงที่อัตราการเรียนรู้เริ่มต้นเพื่อเริ่มต้น

3) อดัมรวมคุณสมบัติที่ดีของ Adadelta และ RMSprop เข้าด้วยกันและดังนั้นจึงมีแนวโน้มที่จะดีขึ้นสำหรับปัญหาส่วนใหญ่

4) การไล่ระดับสีแบบสุ่ม Stochastic เป็นพื้นฐานมากและไม่ค่อยมีใครใช้ตอนนี้ ปัญหาหนึ่งคืออัตราการเรียนรู้ทั่วโลกเกี่ยวข้องกับสิ่งเดียวกัน ดังนั้นมันจะไม่ทำงานได้ดีเมื่อพารามิเตอร์อยู่ในสเกลที่ต่างกันเนื่องจากอัตราการเรียนรู้ต่ำจะทำให้การเรียนรู้ช้าลงในขณะที่อัตราการเรียนรู้ขนาดใหญ่อาจนำไปสู่ความผันผวน เชื้อสายการไล่ระดับสีแบบสุ่ม Stochastic โดยทั่วไปมีความยากลำบากในการหลบหนีจุดอาน Adagrad, Adadelta, RMSprop และ ADAM โดยทั่วไปจัดการกับจุดอานที่ดีกว่า SGD พร้อมโมเมนตัมทำให้การเพิ่มประสิทธิภาพเร็วขึ้นและยังช่วยให้หลบหนีจากมินิมาในท้องถิ่นได้ดีขึ้น


2

วิธีการส่วนตัวของฉันคือการเลือกเครื่องมือเพิ่มประสิทธิภาพที่ใหม่ที่สุด (เช่นการตีพิมพ์ใหม่ล่าสุดใน -a-peer-reviewed-journal) เพราะพวกเขามักจะรายงานผลเกี่ยวกับชุดข้อมูลมาตรฐานหรือเอาชนะสถานะของศิลปะหรือทั้งสองอย่าง เมื่อฉันใช้ Caffe ฉันจะใช้ Adam เสมอ ( http://arxiv.org/abs/1412.6980 )


0
Nadam(lr=0.002, beta_1=0.9, beta_2=0.999, epsilon=None, schedule_decay=0.004)

เหมือนAdamเป็นหลักRMSpropที่มีโมเมนตัมNadamเป็นอดัมRMSpropกับ Nesterov โมเมนตัม

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