แนวทางในการเลือกพารามิเตอร์ในการเรียนรู้ลึก


38

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


ฉันแนะนำ Ian Deepfellow
Vadim Smolyakov

คำตอบ:


24

โดยทั่วไปมีสี่วิธี:

  1. ค้นหาด้วยตนเอง:การใช้ความรู้ที่คุณมีเกี่ยวกับการคาดเดาค่าพารามิเตอร์และสังเกตผลลัพธ์ ขึ้นอยู่กับผลลัพธ์ที่ปรับแต่งพารามิเตอร์ ทำซ้ำขั้นตอนนี้จนกว่าคุณจะพบพารามิเตอร์ที่ใช้งานได้ดีหรือหมดเวลา
  2. การค้นหากริด:การใช้ความรู้ที่คุณมีเกี่ยวกับปัญหาระบุช่วงสำหรับพารามิเตอร์หลายมิติ จากนั้นเลือกหลายจุดจากช่วงเหล่านั้นโดยทั่วไปจะกระจายแบบสม่ำเสมอ ฝึกอบรมเครือข่ายของคุณโดยใช้การรวมกันของพารามิเตอร์และเลือกชุดค่าผสมที่มีประสิทธิภาพดีที่สุด หรือคุณสามารถค้นหาซ้ำในโดเมนที่แคบกว่าโดยมีศูนย์กลางที่พารามิเตอร์ที่มีประสิทธิภาพดีที่สุด
  3. การค้นหาแบบสุ่ม:เช่นเดียวกับการค้นหากริดคุณใช้ความรู้เกี่ยวกับปัญหาเพื่อระบุช่วงสำหรับพารามิเตอร์ อย่างไรก็ตามแทนที่จะเลือกค่าจากช่วงเหล่านั้นในรูปแบบที่เป็นระเบียบคุณจะเลือกเลือกแบบสุ่มแทน ทำซ้ำขั้นตอนนี้จนกว่าคุณจะพบพารามิเตอร์ที่ทำงานได้ดีหรือใช้สิ่งที่คุณเรียนรู้เพื่อ จำกัด การค้นหาของคุณ ในกระดาษการค้นหาแบบสุ่มสำหรับการเพิ่มประสิทธิภาพพารามิเตอร์มากเกินไปดร. เบงโจวเสนอว่านี่เป็นวิธีการพื้นฐานที่ควรเปรียบเทียบวิธีอื่นทั้งหมดและแสดงว่ามันมีแนวโน้มที่จะทำงานได้ดีกว่าวิธีอื่น ๆ
  4. การปรับให้เหมาะสมแบบเบย์:งานล่าสุดได้มุ่งเน้นไปที่การปรับปรุงตามแนวทางอื่น ๆ เหล่านี้โดยใช้ข้อมูลที่ได้จากการทดสอบใด ๆ เพื่อตัดสินใจว่าจะปรับพารามิเตอร์ไฮเปอร์สำหรับการทดสอบครั้งต่อไปอย่างไร ตัวอย่างของงานนี้จะเป็นประโยชน์สูงสุดของการเรียนรู้กลไกอัลกอริธึแบบเบย์โดย Adams และคณะ

14

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

ในชั้นเรียนของวิธีการโดยตรงสามารถระบุวิธีการได้หลายวิธี:

  • วิธีที่ไม่มีอนุพันธ์เช่น Nelder-Mead simplex หรือ DIRECT
  • วิธีการวิวัฒนาการเช่น CMA-ES และฝูงอนุภาค
  • แนวทางแบบจำลองเช่น EGO และ Kriging ตามลำดับ

คุณอาจต้องการดูOptunityซึ่งเป็นแพคเกจ Python ซึ่งมีตัวแก้ปัญหาที่หลากหลายสำหรับการปรับจูนพารามิเตอร์ (ทุกอย่างที่ฉันพูดถึงยกเว้น EGO และ Kriging สำหรับตอนนี้) MATLAB และ R จะสามารถใช้งาน Optunity ได้ในเร็ว ๆ นี้ คำเตือน: ฉันเป็นผู้พัฒนาหลักของแพคเกจนี้

จากประสบการณ์ส่วนตัวของฉันวิธีการวิวัฒนาการมีประสิทธิภาพมากสำหรับปัญหาประเภทนี้


10

มองไม่เพิ่มเติม! โยชัวเบนจิโอตีพิมพ์หนึ่งในเอกสารที่ใช้ที่ชื่นชอบหนึ่งที่ผมขอแนะนำให้เครื่องใหม่ทั้งหมดวิศวกรการเรียนรู้เมื่อพวกเขาเริ่มการฝึกอบรมประสาท: คำแนะนำการปฏิบัติสำหรับการฝึกอบรมการไล่ระดับสีตามสถาปัตยกรรมลึก ในการรับมุมมองของเขาเกี่ยวกับการเปลี่ยนพารามิเตอร์หลายมิติ: รวมถึงอัตราการเรียนรู้ตารางอัตราการเรียนรู้การหยุดก่อนกำหนดขนาดรถมินิบัสจำนวนเลเยอร์ที่ซ่อนอยู่ ฯลฯ ดูในส่วนที่ 3

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