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

สําหรับวัตถุประสงค์ของเอกสารนี้

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

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

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

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

กลยุทธ์การปรับแต่งส่วนเพิ่ม

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

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

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

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

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

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

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

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

ส่วนที่เหลือของส่วนนี้แสดงรายละเอียดกลยุทธ์นี้

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

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

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

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

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

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

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

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

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

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

ระบุไฮเปอร์พารามิเตอร์ทางวิทยาศาสตร์ ก่อกวน และคงที่

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

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

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

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

ในกรณีนี้

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

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

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

เมื่อออกแบบการทดสอบรอบใหม่

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

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

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

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

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

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

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

ตัวเลือกของเครื่องมือเพิ่มประสิทธิภาพโดยทั่วไปอาจเป็น:

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

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

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

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

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

ไฮเปอร์พารามิเตอร์ของการปรับข้อมูลให้เป็นปกติ

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

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

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

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

การพึ่งพาไฮเปอร์พารามิเตอร์ทางวิทยาศาสตร์

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

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

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

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

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

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

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

วัตถุประสงค์ของการศึกษาครั้งนี้คือ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    • เรียกใช้การทดสอบอีกครั้งโดยใช้เทคนิคการทํากฎเกณฑ์เพิ่มเติม
    • ปรับแต่งพารามิเตอร์การปรับให้สอดคล้องตามมาตรฐานที่มีอยู่ก่อนเปรียบเทียบค่าของไฮเปอร์พารามิเตอร์ทางวิทยาศาสตร์ วิธีนี้อาจใช้งานไม่ได้หากพารามิเตอร์ไฮเปอร์พารามิเตอร์มีพารามิเตอร์การปรับให้สอดคล้องตามมาตรฐาน เนื่องจากน่าประหลาดใจหากการตั้งค่าความเข้มงวดของพารามิเตอร์การปรับให้เข้มงวดเหล่านั้นส่งผลให้เกิดปัญหามากเกินไป

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

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

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

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

    สาเหตุที่เป็นไปได้มากที่สุดของความแปรปรวนทีละขั้นตอน ได้แก่:

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

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

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

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

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

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

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

รูปที่ 2: แผนภูมิการแยกที่ตรวจสอบค่าการเสื่อมค่าน้ําหนักที่ดีที่สุดสําหรับ ResNet-50 ที่ฝึกด้วย ImageNet

 

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

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

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

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

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

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

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

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

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

พิจารณาว่าจะนําการเปลี่ยนแปลงนี้ไปใช้หรือไม่

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

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

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

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

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

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

หลังจากการสํารวจเสร็จสิ้น

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

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

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

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

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