วิธีการทางวิทยาศาสตร์ในการปรับปรุงประสิทธิภาพของโมเดล

เพื่อวัตถุประสงค์ของเอกสารนี้

เป้าหมายสูงสุดของการพัฒนาแมชชีนเลิร์นนิงคือ การเพิ่มประโยชน์ของโมเดลที่ใช้งานให้ได้สูงสุด

โดยปกติแล้ว คุณสามารถใช้ขั้นตอนและหลักการพื้นฐานเดียวกัน ในส่วนนี้กับปัญหา ML ใดก็ได้

ส่วนนี้มีสมมติฐานดังต่อไปนี้

  • คุณมีไปป์ไลน์การฝึกที่ทำงานได้อย่างเต็มที่อยู่แล้ว พร้อมด้วย การกำหนดค่าที่ให้ผลลัพธ์ที่สมเหตุสมผล
  • คุณมีทรัพยากรด้านการประมวลผลเพียงพอที่จะทำการทดสอบการปรับแต่งที่มีความหมาย และเรียกใช้การฝึกอย่างน้อย 2-3 งานแบบขนาน

กลยุทธ์การปรับแบบเพิ่มทีละน้อย

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

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

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

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

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

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

กลยุทธ์การปรับแบบเพิ่มทีละน้อยของเราในระดับสูงเกี่ยวข้องกับการทำซ้ำ ขั้นตอนทั้ง 4 ต่อไปนี้

  1. เลือกเป้าหมายสำหรับการทดสอบรอบถัดไป ตรวจสอบว่าเป้าหมายมีขอบเขตที่เหมาะสม
  2. ออกแบบการทดสอบรอบถัดไป ออกแบบและดำเนินการทดสอบชุดหนึ่งที่มุ่งไปสู่เป้าหมายนี้
  3. เรียนรู้จากผลการทดสอบ ประเมินการทดสอบเทียบกับรายการตรวจสอบ
  4. พิจารณาว่าจะใช้การเปลี่ยนแปลงที่เป็นไปได้หรือไม่

ส่วนที่เหลือของส่วนนี้จะอธิบายกลยุทธ์นี้โดยละเอียด

เลือกเป้าหมายสำหรับการทดสอบรอบถัดไป

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

  • ลองปรับปรุงไปป์ไลน์ (เช่น ตัวปรับค่าใหม่ ตัวเลือกการประมวลผลล่วงหน้า ฯลฯ)
  • ทําความเข้าใจผลกระทบของไฮเปอร์พารามิเตอร์ของโมเดลหนึ่งๆ (เช่น ฟังก์ชันการกระตุ้น)
  • ลดข้อผิดพลาดในการตรวจสอบ

ให้ความสำคัญกับความคืบหน้าในระยะยาวมากกว่าการปรับปรุงข้อผิดพลาดในการตรวจสอบในระยะสั้น

สรุป: โดยส่วนใหญ่แล้ว เป้าหมายหลักของคุณคือการได้รับข้อมูลเชิงลึกเกี่ยวกับ ปัญหาการปรับแต่ง

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

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

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

ออกแบบการทดสอบรอบถัดไป

สรุป: ระบุไฮเปอร์พารามิเตอร์ทางวิทยาศาสตร์ ไฮเปอร์พารามิเตอร์ที่รบกวน และไฮเปอร์พารามิเตอร์คงที่สำหรับเป้าหมายการทดลอง สร้างลำดับการศึกษาเพื่อเปรียบเทียบค่าต่างๆ ของไฮเปอร์พารามิเตอร์ทางวิทยาศาสตร์ ขณะเพิ่มประสิทธิภาพไฮเปอร์พารามิเตอร์ที่รบกวน เลือกพื้นที่ค้นหาของไฮเปอร์พารามิเตอร์ที่สร้างความรำคาญเพื่อปรับสมดุลต้นทุนทรัพยากรกับคุณค่าทางวิทยาศาสตร์

ระบุไฮเปอร์พารามิเตอร์ทางวิทยาศาสตร์ ไฮเปอร์พารามิเตอร์ที่ทำให้เกิดความรำคาญ และไฮเปอร์พารามิเตอร์คงที่

สำหรับเป้าหมายที่กำหนด ไฮเปอร์พารามิเตอร์ทั้งหมดจะอยู่ในหมวดหมู่ใดหมวดหมู่หนึ่งต่อไปนี้

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

ตัวอย่างเช่น สมมติว่าเป้าหมายของคุณคือ

พิจารณาว่าโมเดลที่มีเลเยอร์ที่ซ่อนอยู่มากกว่ามีข้อผิดพลาดในการตรวจสอบที่ต่ำกว่าหรือไม่

ในกรณีนี้

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

ไฮเปอร์พารามิเตอร์หนึ่งๆ อาจเป็นไฮเปอร์พารามิเตอร์ทางวิทยาศาสตร์ ไฮเปอร์พารามิเตอร์ที่สร้างความรำคาญ หรือไฮเปอร์พารามิเตอร์คงที่ โดยการกำหนด ไฮเปอร์พารามิเตอร์จะเปลี่ยนแปลงไปตามเป้าหมายการทดลอง เช่น ฟังก์ชันการเปิดใช้งานอาจเป็นฟังก์ชันใดก็ได้ต่อไปนี้

  • ไฮเปอร์พารามิเตอร์ทางวิทยาศาสตร์: ReLU หรือ tanh เป็นตัวเลือกที่ดีกว่าสำหรับปัญหาของเราไหม
  • ไฮเปอร์พารามิเตอร์ที่รบกวน: โมเดล 5 เลเยอร์ที่ดีที่สุดดีกว่าโมเดล 6 เลเยอร์ที่ดีที่สุดหรือไม่ เมื่อคุณอนุญาตฟังก์ชันกระตุ้นที่อาจเป็นไปได้หลายแบบ
  • ไฮเปอร์พารามิเตอร์คงที่: สำหรับเครือข่าย ReLU การเพิ่มการทําให้เป็นกลุ่มปกติใน ตําแหน่งหนึ่งๆ ช่วยได้ไหม

เมื่อออกแบบการทดสอบรอบใหม่ ให้ทำดังนี้

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

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

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

พารามิเตอร์เครื่องมือเพิ่มประสิทธิภาพบางรายการ

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

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

การเลือกเครื่องมือเพิ่มประสิทธิภาพ

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

  • ไฮเปอร์พารามิเตอร์ทางวิทยาศาสตร์
  • ไฮเปอร์พารามิเตอร์คงที่

เครื่องมือเพิ่มประสิทธิภาพเป็นไฮเปอร์พารามิเตอร์ทางวิทยาศาสตร์หากเป้าหมายการทดสอบของคุณเกี่ยวข้องกับการเปรียบเทียบเครื่องมือเพิ่มประสิทธิภาพที่แตกต่างกันตั้งแต่ 2 รายการขึ้นไปอย่างเป็นธรรม เช่น

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

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

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

ไฮเปอร์พารามิเตอร์การทำให้เป็นปกติ

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

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

ไฮเปอร์พารามิเตอร์ของสถาปัตยกรรม

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

การขึ้นอยู่กับไฮเปอร์พารามิเตอร์ทางวิทยาศาสตร์

ในบางกรณี ชุดไฮเปอร์พารามิเตอร์ที่รบกวนและไฮเปอร์พารามิเตอร์คงที่ขึ้นอยู่กับค่าของไฮเปอร์พารามิเตอร์ทางวิทยาศาสตร์ ตัวอย่างเช่น สมมติว่าคุณพยายามพิจารณาว่าตัวเพิ่มประสิทธิภาพใดใน โมเมนตัมของ Nesterov และ Adam ที่ทำให้เกิดข้อผิดพลาดในการตรวจสอบที่ต่ำที่สุด ในกรณีนี้

  • Hyperparameter ทางวิทยาศาสตร์คือตัวเพิ่มประสิทธิภาพ ซึ่งมีค่าเป็น {"Nesterov_momentum", "Adam"}
  • ค่า optimizer="Nesterov_momentum" จะแนะนํา ไฮเปอร์พารามิเตอร์ {learning_rate, momentum} ซึ่งอาจเป็น ไฮเปอร์พารามิเตอร์ที่คงที่หรือไฮเปอร์พารามิเตอร์ที่รบกวน
  • ค่า optimizer="Adam" จะแนะนําไฮเปอร์พารามิเตอร์ {learning_rate, beta1, beta2, epsilon} ซึ่งอาจเป็นไฮเปอร์พารามิเตอร์ที่คงที่หรือไฮเปอร์พารามิเตอร์ที่รบกวน

ไฮเปอร์พารามิเตอร์ที่มีเฉพาะค่าบางค่าของไฮเปอร์พารามิเตอร์ทางวิทยาศาสตร์เรียกว่าไฮเปอร์พารามิเตอร์แบบมีเงื่อนไข อย่าคิดว่าไฮเปอร์พารามิเตอร์แบบมีเงื่อนไข 2 รายการเหมือนกันเพียงเพราะมีชื่อเดียวกัน ในตัวอย่างก่อนหน้า ไฮเปอร์พารามิเตอร์แบบมีเงื่อนไขที่ชื่อ learning_rate เป็นไฮเปอร์พารามิเตอร์ที่แตกต่างกันสำหรับ optimizer="Nesterov_momentum" และ optimizer="Adam" บทบาทของโมเมนตัมจะคล้ายกัน (แม้จะไม่เหมือนกัน) ในอัลกอริทึมทั้ง 2 แต่ช่วงค่าที่ ทำงานได้ดีในเครื่องมือเพิ่มประสิทธิภาพแต่ละรายการมักจะแตกต่างกันหลายลำดับ ของขนาด

สร้างชุดการศึกษา

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

  • ไฮเปอร์พารามิเตอร์ที่แตกต่างกันไปในการทดลอง
  • ค่าที่ไฮเปอร์พารามิเตอร์เหล่านั้นใช้ได้ (พื้นที่ค้นหา)
  • จำนวนการทดลอง
  • อัลกอริทึมการค้นหาอัตโนมัติเพื่อสุ่มตัวอย่างการทดลองจำนวนมากจากพื้นที่การค้นหา

หรือคุณจะสร้างการศึกษาโดยระบุชุดการกำหนดค่าไฮเปอร์พารามิเตอร์ ด้วยตนเองก็ได้

วัตถุประสงค์ของการศึกษาคือการดำเนินการต่อไปนี้พร้อมกัน

  • เรียกใช้ไปป์ไลน์ด้วยค่าต่างๆ ของไฮเปอร์พารามิเตอร์ทางวิทยาศาสตร์
  • "การเพิ่มประสิทธิภาพ" (หรือ "การเพิ่มประสิทธิภาพเหนือ") ไฮเปอร์พารามิเตอร์ที่สร้างความรำคาญเพื่อให้การเปรียบเทียบระหว่างค่าต่างๆ ของไฮเปอร์พารามิเตอร์ทางวิทยาศาสตร์มีความเป็นธรรมมากที่สุด

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

  • การศึกษาหนึ่งซึ่ง optimizer="Nesterov_momentum" และไฮเปอร์พารามิเตอร์ที่รบกวน คือ {learning_rate, momentum}
  • การศึกษาอีกชิ้นหนึ่งซึ่ง optimizer="Adam" และไฮเปอร์พารามิเตอร์ที่สร้างความรำคาญ {learning_rate, beta1, beta2, epsilon}

คุณจะเปรียบเทียบเครื่องมือเพิ่มประสิทธิภาพ 2 รายการได้โดยเลือกการทดสอบที่มีประสิทธิภาพดีที่สุด จากการศึกษาแต่ละครั้ง

คุณสามารถใช้อัลกอริทึมการเพิ่มประสิทธิภาพแบบไม่มีการไล่ระดับสี ซึ่งรวมถึงวิธีการต่างๆ เช่น การเพิ่มประสิทธิภาพแบบเบย์ หรืออัลกอริทึมเชิงวิวัฒนาการ เพื่อเพิ่มประสิทธิภาพไฮเปอร์พารามิเตอร์ที่ทำให้เกิดความคลาดเคลื่อน อย่างไรก็ตาม เราต้องการใช้การค้นหาแบบกึ่งสุ่ม ในระยะการสำรวจของการปรับแต่งเนื่องจากข้อดีต่างๆ ที่ มีในการตั้งค่านี้ หลังจากสิ้นสุดการสํารวจ เราขอแนะนําให้ใช้ ซอฟต์แวร์การเพิ่มประสิทธิภาพแบบเบย์ที่ทันสมัย (หากมี)

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

  • รวมพารามิเตอร์ทางวิทยาศาสตร์ไว้ในพื้นที่ค้นหาเดียวกันกับ ไฮเปอร์พารามิเตอร์ที่รบกวน
  • ใช้อัลกอริทึมการค้นหาเพื่อสุ่มค่าของทั้งไฮเปอร์พารามิเตอร์ทางวิทยาศาสตร์และไฮเปอร์พารามิเตอร์ที่รบกวนในการศึกษาครั้งเดียว

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

สร้างสมดุลระหว่างการทดสอบที่ให้ข้อมูลและราคาไม่แพง

เมื่อออกแบบการศึกษาหรือลำดับการศึกษา ให้จัดสรรงบประมาณที่จำกัด เพื่อให้บรรลุเป้าหมาย 3 ประการต่อไปนี้อย่างเพียงพอ

  • เปรียบเทียบค่าที่แตกต่างกันมากพอของไฮเปอร์พารามิเตอร์ทางวิทยาศาสตร์
  • การปรับแต่งไฮเปอร์พารามิเตอร์ที่ทำให้เกิดปัญหาในพื้นที่การค้นหาที่ใหญ่พอ
  • การสุ่มตัวอย่างพื้นที่ค้นหาของไฮเปอร์พารามิเตอร์รบกวนให้หนาแน่นเพียงพอ

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

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

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

อย่างไรก็ตาม การปรับปรุงในมิติข้อมูลทั้ง 3 นี้ต้องมีสิ่งต่อไปนี้อย่างใดอย่างหนึ่ง

  • การเพิ่มจำนวนการทดลองใช้จึงทำให้ค่าใช้จ่ายด้านทรัพยากรเพิ่มขึ้น
  • หาวิธีประหยัดทรัพยากรในมิติข้อมูลอื่นๆ

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

เรียนรู้จากผลการทดสอบ

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

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

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

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

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

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

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

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

โดยปกติแล้ว ค่าวัตถุประสงค์ในการตรวจสอบความถูกต้องของการทดลองแต่ละครั้งควรเป็นค่าที่ดีที่สุด ที่ได้รับตลอดระยะเวลาการฝึก

กราฟอัตราข้อผิดพลาดในชุดการตรวจสอบ (แกน Y) เทียบกับ
          อัตราการเรียนรู้สูงสุด (แกน X) ที่แสดงขอบเขตพื้นที่ค้นหาที่ไม่ดี ในกราฟนี้ การทดลองที่ดีที่สุด (อัตราข้อผิดพลาดต่ำสุด) จะอยู่ใกล้ขอบของพื้นที่ค้นหา ซึ่งอัตราการเรียนรู้สูงสุดจะสูงที่สุด กราฟอัตราข้อผิดพลาดในชุดข้อมูลการตรวจสอบ (แกน Y) เทียบกับ
          อัตราการเรียนรู้สูงสุด (แกน X) ซึ่งแสดงให้เห็นขอบเขตของพื้นที่ค้นหาที่ดี
 ในกราฟนี้ การทดลองที่ดีที่สุด (อัตราข้อผิดพลาดต่ำสุด) อยู่ใกล้กับกึ่งกลางของพื้นที่ค้นหา ซึ่งอัตราการเรียนรู้สูงสุดคือ 0.001 ไม่ใช่เมื่ออัตราการเรียนรู้สูงสุดคือ 0.00001 หรือ 0.1

รูปที่ 1: ตัวอย่างขอบเขตพื้นที่ค้นหาที่ไม่ดีและขอบเขตพื้นที่ค้นหาที่ยอมรับได้

พล็อตในรูปที่ 1 แสดงอัตราข้อผิดพลาด (ยิ่งต่ำยิ่งดี) เทียบกับ อัตราการเรียนรู้เริ่มต้น หากกลุ่มจุดที่ดีที่สุดอยู่ใกล้ขอบของพื้นที่ค้นหา (ในมิติข้อมูลบางอย่าง) คุณอาจต้องขยายขอบเขตพื้นที่ค้นหาจนกว่าจุดสังเกตที่ดีที่สุดจะไม่อยู่ใกล้ขอบเขตอีกต่อไป

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

ไม่ได้สุ่มตัวอย่างจุดในพื้นที่ค้นหามากพอ

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

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

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

ตรวจสอบเส้นโค้งการฝึก

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

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

เมื่อตรวจสอบเส้นโค้งการสูญเสีย ให้มุ่งเน้นที่คำถามต่อไปนี้

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

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

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

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

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

    • ความสามารถในการเปรียบเทียบค่าต่างๆ ของไฮเปอร์พารามิเตอร์ทางวิทยาศาสตร์ เนื่องจากแต่ละการทดลองจะสิ้นสุดแบบสุ่มในขั้นตอนที่ "โชคดี" หรือ "โชคร้าย"
    • ความสามารถในการสร้างผลลัพธ์ของการทดลองที่ดีที่สุดในเวอร์ชันที่ใช้งานจริง เนื่องจากโมเดลการผลิตอาจไม่ได้สิ้นสุดที่ขั้นตอน "โชคดี" เดียวกันกับในงานวิจัย

    สาเหตุที่พบบ่อยที่สุดของความแตกต่างทีละขั้นตอน ได้แก่

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

    การแก้ไขที่เป็นไปได้มีดังนี้

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

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

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

การตรวจหาว่าการเปลี่ยนแปลงมีประโยชน์หรือไม่ด้วยพล็อตการแยก

แผนภาพการแยกที่ตรวจสอบค่าที่ดีที่สุดของการลดน้ำหนัก
          สำหรับ ResNet-50 ที่ฝึกใน ImageNet ในกรณีนี้
          อัตราข้อผิดพลาดในการตรวจสอบต่ำสุดจะเกิดขึ้นเมื่อการลดน้ำหนัก
          อยู่ที่ประมาณ 0.00005

รูปที่ 2: พล็อตการแยกที่ตรวจสอบค่าที่ดีที่สุดของ Weight Decay สำหรับ ResNet-50 ที่ฝึกใน ImageNet

 

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

พล็อตการแยกช่วยให้การเปรียบเทียบแบบเทียบเท่า ระหว่างค่าต่างๆ ของไฮเปอร์พารามิเตอร์ทางวิทยาศาสตร์เป็นเรื่องง่าย ตัวอย่างเช่น พล็อตการแยกในรูปที่ 2 แสดงให้เห็นค่าของ Weight Decay ที่ให้ประสิทธิภาพการตรวจสอบที่ดีที่สุดสําหรับการกําหนดค่า เฉพาะของ ResNet-50 ที่ฝึกใน ImageNet

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

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

สร้างพล็อตที่มีประโยชน์โดยทั่วไปโดยอัตโนมัติ

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

นอกจากนี้ เราขอแนะนำให้สร้างเส้นโค้งการสูญเสียโดยอัตโนมัติสำหรับการทดลองทั้งหมด นอกจากนี้ เราขอแนะนำให้คุณทำให้การค้นหา การทดลองที่ดีที่สุด 2-3 รายการของแต่ละการศึกษาเป็นเรื่องง่ายที่สุดเท่าที่จะเป็นไปได้ และตรวจสอบเส้นโค้งการสูญเสีย

คุณเพิ่มพล็อตและการแสดงภาพที่มีประโยชน์อื่นๆ ได้อีกมากมาย Geoffrey Hinton กล่าวไว้ว่า

ทุกครั้งที่คุณพล็อตสิ่งใหม่ๆ คุณจะได้เรียนรู้สิ่งใหม่ๆ

เลือกว่าจะใช้การเปลี่ยนแปลงที่แนะนำหรือไม่

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

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

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

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

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

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

หลังจากสิ้นสุดการสำรวจ

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

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

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

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

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