สําหรับวัตถุประสงค์ของเอกสารนี้
เป้าหมายสูงสุดของการพัฒนาแมชชีนเลิร์นนิงคือ การเพิ่มประโยชน์ของโมเดลที่ทําให้ใช้งานได้ให้เกิดประโยชน์สูงสุด
โดยปกติแล้วคุณสามารถใช้ขั้นตอนพื้นฐานและหลักการเดียวกันนี้ในส่วนนี้กับปัญหา ML ใดก็ได้
ส่วนนี้จะตั้งสมมติฐานต่อไปนี้
- คุณมีไปป์ไลน์การฝึกที่กําลังทํางานเต็มรูปแบบอยู่แล้ว พร้อมด้วยการกําหนดค่าที่ได้รับผลลัพธ์ที่สมเหตุสมผล
- คุณมีทรัพยากรที่คํานวณได้มากพอที่จะทําการทดสอบการปรับแต่งที่มีความหมายและเรียกใช้งานการฝึกพร้อมกันหลายรายการ
กลยุทธ์การปรับแต่งส่วนเพิ่ม
คําแนะนํา: เริ่มต้นด้วยการกําหนดค่าแบบง่าย แล้วค่อยๆ ปรับปรุง ขณะสร้างข้อมูลเชิงลึกเกี่ยวกับปัญหา ตรวจดูว่าการปรับปรุง เป็นไปตามหลักฐานที่ชัดเจน
เราสมมติว่าเป้าหมายของคุณคือการค้นหาการกําหนดค่าที่เพิ่มประสิทธิภาพของโมเดลให้ได้สูงสุด บางครั้งเป้าหมายของคุณคือการเพิ่มการปรับปรุงโมเดลให้มากที่สุด ในกรณีอื่นๆ คุณอาจปรับปรุงโมเดลต่อไปอย่างไม่มีกําหนดได้ เช่น การปรับปรุงโมเดลที่ใช้จริงอย่างต่อเนื่อง
โดยหลักการแล้ว คุณสามารถเพิ่มประสิทธิภาพโดยใช้อัลกอริทึมเพื่อค้นหาพื้นที่ทั้งหมดของการกําหนดค่าที่เป็นไปได้โดยอัตโนมัติ แต่นี่ไม่ใช่ตัวเลือกที่ใช้ได้จริง พื้นที่ของการกําหนดค่าที่เป็นไปได้นั้นใหญ่มากและยังไม่มีอัลกอริทึมที่ซับซ้อนเพียงพอสําหรับการค้นหาพื้นที่นี้อย่างไม่มีคําแนะนําสําหรับมนุษย์ อัลกอริทึมการค้นหาแบบอัตโนมัติส่วนใหญ่จะใช้พื้นที่ค้นหาที่ออกแบบเองซึ่งกําหนดชุดของการกําหนดค่าในการค้นหา และพื้นที่ทํางานการค้นหาเหล่านี้อาจค่อนข้างสําคัญ
วิธีที่มีประสิทธิภาพสูงสุดในการเพิ่มประสิทธิภาพคือการเริ่มต้นด้วยการกําหนดค่าแบบง่ายๆ และเพิ่มฟีเจอร์ทีละน้อย และทําการปรับปรุงขณะสร้างข้อมูลเชิงลึกเกี่ยวกับปัญหา
เราขอแนะนําให้ใช้อัลกอริทึมการค้นหาอัตโนมัติเพื่อปรับแต่งแต่ละรอบ และอัปเดตพื้นที่ทํางานอย่างต่อเนื่องเมื่อความเข้าใจของคุณเพิ่มขึ้น ขณะสํารวจ คุณจะพบว่าการกําหนดค่าที่ดีขึ้นและดีขึ้นเรื่อยๆ โมเดล "ที่ดีที่สุด" จึงดีขึ้นอย่างต่อเนื่อง
คําว่า "เปิดตัว" หมายถึงการอัปเดตการกําหนดค่าที่ดีที่สุดของเรา (ซึ่งอาจสอดคล้องกับการเปิดตัวจริงของรุ่นที่ใช้งานจริง) สําหรับ "การเปิดตัว" แต่ละรายการ คุณต้องตรวจสอบว่าการเปลี่ยนแปลงนั้นอิงตามหลักฐานที่ชัดเจน ไม่ใช่เพียงการสุ่มตามการกําหนดค่าที่โชคดี จะได้ไม่เพิ่มความซับซ้อนที่ไม่จําเป็นต่อไปป์ไลน์การฝึก
ในระดับสูง กลยุทธ์การปรับแต่งที่เพิ่มขึ้นของเราจะเกี่ยวข้องกับการทํา 4 ขั้นตอนต่อไปนี้ซ้ํา
- เลือกเป้าหมายสําหรับการทดสอบรอบถัดไป ตรวจสอบว่าเป้าหมายมีขอบเขตเหมาะสม
- ออกแบบการทดสอบรอบถัดไป ออกแบบและเรียกใช้ชุดการทดสอบที่พัฒนาไปสู่เป้าหมายนี้
- เรียนรู้จากผลการทดสอบ ประเมินการทดสอบโดยใช้รายการตรวจสอบ
- ตัดสินใจว่าจะใช้การเปลี่ยนแปลงดังกล่าวหรือไม่
ส่วนที่เหลือของส่วนนี้แสดงรายละเอียดกลยุทธ์นี้
เลือกเป้าหมายสําหรับการทดสอบรอบถัดไป
หากพยายามเพิ่มฟีเจอร์หลายรายการหรือตอบคําถามหลายข้อพร้อมกัน คุณอาจแยกเอฟเฟกต์ที่ได้รับผลกระทบออกจากกันไม่ได้ ตัวอย่างเป้าหมาย ได้แก่
- ลองปรับปรุงไปป์ไลน์ที่อาจเกิดขึ้น (เช่น เครื่องมือปรับแต่งใหม่ ตัวเลือกการประมวลผลล่วงหน้า เป็นต้น)
- ทําความเข้าใจผลกระทบของไฮเปอร์พารามิเตอร์ของโมเดลที่เฉพาะเจาะจง (เช่น ฟังก์ชันการเปิดใช้งาน)
- ลดข้อผิดพลาดในการตรวจสอบความถูกต้อง
ให้ความสําคัญกับความคืบหน้าของข้อผิดพลาดในการปรับปรุงการตรวจสอบระยะสั้นในระยะยาว
สรุป: ส่วนใหญ่แล้ว เป้าหมายหลักของคุณคือการเพิ่มข้อมูลเชิงลึกเกี่ยวกับปัญหาในการปรับแต่ง
เราขอแนะนําให้ใช้เวลาส่วนใหญ่ไปกับการได้รับข้อมูลเชิงลึกเกี่ยวกับปัญหา และใช้เวลาค่อนข้างน้อยในการมุ่งเน้นไปที่การเพิ่มประสิทธิภาพให้ได้สูงสุดในชุดการตรวจสอบความถูกต้อง กล่าวคือ ใช้เวลาส่วนใหญ่ไปกับ "การสํารวจ" และใช้เงินเพียงเล็กน้อยกับ "การสํารวจ" การทําความเข้าใจปัญหามีความสําคัญอย่างยิ่งต่อการเพิ่มประสิทธิภาพในขั้นตอนสุดท้าย การให้ความสําคัญกับข้อมูลเชิงลึกเกี่ยวกับผลตอบแทนระยะสั้นจะช่วยในเรื่องต่อไปนี้
- หลีกเลี่ยงการเปิดตัวการเปลี่ยนแปลงที่ไม่จําเป็นซึ่งเคยเกิดขึ้น ในการแสดงผลที่มีประสิทธิภาพ โดยเป็นเพียงอุบัติเหตุที่ผ่านมา
- ระบุไฮเปอร์พารามิเตอร์ที่ข้อผิดพลาดในการตรวจสอบความถูกต้องมีความละเอียดอ่อนที่สุด และไฮเปอร์พารามิเตอร์ใดที่โต้ตอบมากที่สุดและจําเป็นต้องปรับแต่งร่วมกัน รวมถึงไฮเปอร์พารามิเตอร์ที่ค่อนข้างไม่คํานึงถึงการเปลี่ยนแปลงอื่นๆ และสามารถแก้ไขได้ในการทดสอบในอนาคต
- แนะนําฟีเจอร์ใหม่ๆ ที่น่าลองใช้ เช่น กฎเกณฑ์ใหม่เมื่อมีปัญหา
- ระบุคุณลักษณะที่ไม่ได้ช่วยอะไร ดังนั้นคุณลักษณะเหล่านี้จึงสามารถนําออกได้ ช่วยลดความซับซ้อนของการทดลองในอนาคต
- รับรู้เมื่อการปรับปรุงจากการปรับแต่งไฮเปอร์พารามิเตอร์มีแนวโน้มที่จะอิ่มตัว
- จํากัดขอบเขตการค้นหาให้แคบลงตามค่าที่ดีที่สุดเพื่อปรับปรุงประสิทธิภาพ
ท้ายที่สุด คุณจะเข้าใจปัญหา จากนั้นคุณสามารถมุ่งเน้นไปที่ข้อผิดพลาดในการตรวจสอบได้แม้ว่าการทดสอบจะไม่ได้ให้ข้อมูลโครงสร้างของปัญหาการปรับแต่งอย่างชัดเจน
ออกแบบการทดสอบรอบถัดไป
สรุป: ระบุไฮเปอร์พารามิเตอร์ที่เป็นวิทยาศาสตร์ ความรําคาญ และไฮเปอร์พารามิเตอร์คงที่สําหรับเป้าหมายทดสอบ สร้างลําดับการศึกษาเพื่อเปรียบเทียบค่าไฮเปอร์พารามิเตอร์ทางวิทยาศาสตร์ในแบบต่างๆ ขณะเพิ่มประสิทธิภาพเหนือพารามิเตอร์ที่ก่อความรําคาญ เลือกพื้นที่ค้นหาของ ไฮเปอร์พารามิเตอร์ที่ก่อความรําคาญเพื่อสร้างสมดุลระหว่างต้นทุน ทรัพยากรและมูลค่าทางวิทยาศาสตร์
ระบุไฮเปอร์พารามิเตอร์ทางวิทยาศาสตร์ ก่อกวน และคงที่
ไฮเปอร์พารามิเตอร์ทั้งหมดจะจัดอยู่ในหมวดหมู่ใดหมวดหมู่หนึ่งต่อไปนี้
- ไฮเปอร์พารามิเตอร์วิทยาศาสตร์คือพารามิเตอร์ที่มีผลต่อประสิทธิภาพของโมเดล คือสิ่งที่คุณพยายามวัด
- ไฮเปอร์พารามิเตอร์รบกวนคือพารามิเตอร์ที่ต้องเพิ่มประสิทธิภาพเพื่อให้สามารถเปรียบเทียบค่าไฮเปอร์พารามิเตอร์ทางวิทยาศาสตร์อย่างเป็นธรรม พารามิเตอร์ความรําคาญใจนั้นคล้ายกับ พารามิเตอร์ที่สร้างความรําคาญในสถิติ
- ไฮเปอร์พารามิเตอร์คงที่มีค่าคงที่ในรอบการทดสอบปัจจุบัน ค่าของไฮเปอร์พารามิเตอร์คงที่จะไม่เปลี่ยนแปลงเมื่อเปรียบเทียบค่าที่แตกต่างกันของไฮเปอร์พารามิเตอร์ทางวิทยาศาสตร์ เมื่อแก้ไขไฮเปอร์พารามิเตอร์บางอย่างของชุดการทดสอบแล้ว คุณต้องยอมรับว่าข้อสรุปจากการทดสอบอาจใช้ไม่ได้กับการตั้งค่าอื่นๆ ของไฮเปอร์พารามิเตอร์คงที่ หรืออีกนัยหนึ่งคือ ไฮเปอร์พารามิเตอร์ที่คงที่จะสร้างข้อควรระวังสําหรับข้อสรุปจากการทดสอบ
ตัวอย่างเช่น สมมติว่าเป้าหมายของคุณเป็นดังนี้:
ตรวจสอบว่าโมเดลที่มีเลเยอร์ที่ซ่อนไว้มากกว่ามีข้อผิดพลาดการตรวจสอบความถูกต้องน้อยกว่าหรือไม่
ในกรณีนี้
- อัตราการเรียนรู้คือไฮเปอร์พารามิเตอร์ที่ก่อความรําคาญเนื่องจากคุณสามารถเปรียบเทียบโมเดลที่มีเลเยอร์ที่ซ่อนอยู่ในจํานวนที่แตกต่างกันอย่างยุติธรรมก็ต่อเมื่อมีการปรับอัตราการเรียนรู้แยกกันสําหรับแต่ละเลเยอร์ที่ซ่อนอยู่ (โดยทั่วไป อัตราการเรียนรู้ที่เหมาะสมจะขึ้นอยู่กับสถาปัตยกรรมโมเดล)
- ฟังก์ชันการเปิดใช้งานอาจเป็นไฮเปอร์พารามิเตอร์คงที่หากคุณได้ระบุในการทดสอบก่อนหน้านี้ว่าฟังก์ชันการเปิดใช้งานที่ดีที่สุดนั้นไม่ละเอียดอ่อนต่อความลึกของโมเดล หรือยินดีที่จะจํากัดบทสรุปของจํานวนเลเยอร์ที่ซ่อนอยู่เพื่อให้ครอบคลุมฟังก์ชันการเปิดใช้งานนี้ หรืออาจเป็นไฮเปอร์พารามิเตอร์ที่ก่อความรําคาญหากคุณ พร้อมปรับจูนแยกแต่ละเลเยอร์ที่ซ่อนอยู่
ไฮเปอร์พารามิเตอร์อาจเป็นไฮเปอร์พารามิเตอร์ทางวิทยาศาสตร์ ไฮเปอร์พารามิเตอร์ที่ก่อความรําคาญ หรือไฮเปอร์พารามิเตอร์คงที่ การระบุไฮเปอร์พารามิเตอร์นี้จะเปลี่ยนแปลงไปขึ้นอยู่กับเป้าหมายการทดลอง ตัวอย่างเช่น ฟังก์ชันการเปิดใช้งานอาจเป็นอะไรก็ได้ต่อไปนี้
- ไฮเปอร์พารามิเตอร์ทางวิทยาศาสตร์: ตัวเลือก ReLU หรือสีแทนเป็นทางเลือกที่ดีกว่าสําหรับปัญหาของคุณหรือไม่
- ไฮเปอร์พารามิเตอร์ที่รบกวนผู้ใช้: โมเดล 5 ชั้นที่ดีที่สุดดีกว่าโมเดล 6 ชั้นที่ดีที่สุดเมื่อคุณอนุญาตฟังก์ชันการทํางานต่างๆ ที่เป็นไปได้ใช่ไหม
- ไฮเปอร์พารามิเตอร์คงที่: สําหรับตาข่าย ReLU การเพิ่มกลุ่มมาตรฐานให้อยู่ในตําแหน่งใดตําแหน่งหนึ่งจะช่วยได้ไหม
เมื่อออกแบบการทดสอบรอบใหม่
- ระบุไฮเปอร์พารามิเตอร์ทางวิทยาศาสตร์สําหรับเป้าหมายทดสอบ (ในขั้นนี้ คุณอาจถือว่าไฮเปอร์พารามิเตอร์อื่นๆ ทั้งหมดเป็น ไฮเปอร์พารามิเตอร์ที่ก่อความรําคาญ)
- แปลงไฮเปอร์พารามิเตอร์ที่รบกวนเล็กน้อยเป็นไฮเปอร์พารามิเตอร์คงที่
ด้วยทรัพยากรที่ไม่จํากัด คุณจะต้องปล่อยให้ไฮเปอร์พารามิเตอร์ที่ไม่ใช่วิทยาศาสตร์เป็นไฮเปอร์พารามิเตอร์ที่ก่อความรําคาญเพื่อให้ข้อสรุปจากการทดสอบไม่มีข้อควรระวังเกี่ยวกับค่าไฮเปอร์พารามิเตอร์คงที่ แต่ยิ่งคุณพยายามปรับแต่งไฮเปอร์พารามิเตอร์ที่ก่อความรําคาญมากขึ้นเท่าใด ความเสี่ยงที่จะปรับแต่งให้สูงพอสมควรสําหรับแต่ละการตั้งค่าไฮเปอร์พารามิเตอร์ทางวิทยาศาสตร์ก็ยิ่งได้ข้อสรุปจากการทดสอบผิดเท่านั้น ตามที่อธิบายไว้ในหัวข้อหลัง คุณจะรับมือกับความเสี่ยงนี้ได้ด้วยการเพิ่มงบประมาณในการคํานวณ อย่างไรก็ตาม งบประมาณทรัพยากรสูงสุดมักจะต่ํากว่าที่ต้องใช้ในการปรับแต่งไฮเปอร์พารามิเตอร์ที่ไม่ใช่วิทยาศาสตร์ทั้งหมด
เราขอแนะนําให้แปลงไฮเปอร์พารามิเตอร์ที่ก่อความรําคาญเป็นไฮเปอร์พารามิเตอร์คงที่ เมื่อคําเตือนที่แนะนําให้แก้ไขมีภาระหนักน้อยกว่าต้นทุน ในการรวมไว้เป็นไฮเปอร์พารามิเตอร์ที่ก่อความรําคาญ ยิ่งไฮเปอร์พารามิเตอร์รบกวนเล็กๆ น้อยๆ โต้ตอบกับไฮเปอร์พารามิเตอร์ทางวิทยาศาสตร์มาก ก็ยิ่งสร้างความเสียหายให้กับค่าได้มาก เช่น ค่าที่ดีที่สุดของความแรงของน้ําหนักที่ลดลงจะขึ้นอยู่กับขนาดโมเดล ดังนั้นการเปรียบเทียบขนาดของโมเดลต่างๆ โดยสมมติว่าค่าการเสื่อมค่าทางน้ําหนักเป็นค่าเดียวอาจไม่ตรงกับข้อมูลเชิงลึกมาก
พารามิเตอร์เครื่องมือเพิ่มประสิทธิภาพบางรายการ
ตามหลักการทั่วไป ไฮเปอร์พารามิเตอร์ของเครื่องมือเพิ่มประสิทธิภาพบางตัว (เช่น อัตราการเรียนรู้ ช่วงเวลา พารามิเตอร์กําหนดอัตราการเรียนรู้, 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 รายการ การค้นหาอาจกว้างไม่พอ ในกรณีนี้ ให้ดําเนินการ ศึกษาอีกครั้งโดยใช้พื้นที่การค้นหาที่เพิ่มขึ้น
- คุณนําคะแนนที่ได้มาจากพื้นที่การค้นหาเพียงพอหรือไม่ หากไม่ ให้เรียกใช้คะแนนเพิ่ม หรือตั้งเป้าหมายในการปรับแก้น้อยลง
- ส่วนใดของการทดลองทั้งหมดในการศึกษาที่ไม่สามารถดําเนินการได้ กล่าวคือ การทดลองใช้ที่แตกต่างกันไป ได้รับค่าการสูญเสียที่แย่มาก หรือเรียกใช้ไม่ได้เลยเนื่องจากมีการละเมิดข้อจํากัดโดยนัยบางประการ เมื่อส่วนที่เป็นจุดการศึกษาจํานวนมากไม่สามารถดําเนินการได้ ให้ปรับพื้นที่ในการค้นหาเพื่อหลีกเลี่ยงการสุ่มตัวอย่างจุดดังกล่าว ซึ่งในบางครั้งอาจต้องกําหนดค่าพื้นที่การค้นหาใหม่ ในบางกรณี จุดที่น่าสนใจจํานวนมากอาจบ่งบอกถึงข้อบกพร่องในโค้ดการฝึกได้
- โมเดลแสดงปัญหาในการเพิ่มประสิทธิภาพไหม
- สิ่งที่คุณจะได้เรียนรู้จากเส้นโค้งการฝึกอบรม ของการทดลองที่ดีที่สุด ตัวอย่างเช่น การทดลองใช้ที่ดีที่สุดจะมีเส้นโค้งการฝึกอบรมที่สอดคล้องกับการตั้งค่าที่ทําให้เกิดปัญหาไหม
หากจําเป็น ให้อิงจากการศึกษาสําหรับคําถามก่อนหน้า ปรับแต่งการศึกษาหรือกลุ่มการศึกษาล่าสุดเพื่อปรับปรุงขอบเขตการค้นหาและ/หรือสุ่มตัวอย่างการทดลองเพิ่มเติม หรือดําเนินการแก้ไขอื่นๆ
เมื่อตอบคําถามที่ผ่านมาแล้ว คุณจะประเมินหลักฐานที่การทดสอบให้ไว้เพื่อให้บรรลุเป้าหมายเดิมของคุณได้ เช่น การประเมินว่าการเปลี่ยนแปลงมีประโยชน์หรือไม่
ระบุขอบเขตของพื้นที่ค้นหาที่ไม่ถูกต้อง
พื้นที่การค้นหาน่าสงสัยถ้าจุดที่สุ่มตัวอย่างที่ดีที่สุดนั้นใกล้ขอบเขต คุณอาจพบจุดที่ดียิ่งขึ้นไปอีกหากคุณขยายช่วงการค้นหาในทิศทางนั้น
หากต้องการตรวจสอบขอบเขตของพื้นที่ทํางาน เราขอแนะนําให้ลองระบุสิ่งที่เราได้ทําการทดลองไปแล้วว่าพล็อตแกนไฮเปอร์พารามิเตอร์พื้นฐาน ในส่วนนี้ เราจะแสดงค่าของวัตถุประสงค์การตรวจสอบความถูกต้องเทียบกับหนึ่งในไฮเปอร์พารามิเตอร์ (เช่น อัตราการเรียนรู้) แต่ละจุดบนพล็อตจะสัมพันธ์กับการทดลองครั้งเดียว
โดยปกติแล้ว ค่าของวัตถุประสงค์การตรวจสอบความถูกต้องสําหรับการทดลองแต่ละรายการควรเป็นค่าที่ดีที่สุดที่บรรลุได้ตลอดช่วงการฝึกอบรม
รูปที่ 1: ตัวอย่างของขอบเขตพื้นที่ค้นหาที่ไม่ดีและขอบเขตพื้นที่ที่ยอมรับ
พล็อตในรูปที่ 1 แสดงอัตราข้อผิดพลาด (ต่ํากว่าย่อมดีกว่า) กับอัตราการเรียนรู้เริ่มต้น หากจุดที่ดีที่สุดกระจุกอยู่ในขอบของพื้นที่ค้นหา (ในบางมิติข้อมูล) คุณอาจต้องขยายขอบเขตของพื้นที่การค้นหาจนกว่าจุดที่พบที่ดีที่สุดจะไม่อยู่ใกล้กับขอบเขตอีกต่อไป
บ่อยครั้งที่การศึกษาจะรวมถึงการทดลองที่ "ทําไม่ได้" ที่เปลี่ยนเส้นทางหรือได้ผลลัพธ์ที่ไม่ดีมากๆ (กํากับไว้ด้วยรูป X สีแดงในรูปที่ 1) หากการทดลองทั้งหมดไม่สามารถทําให้อัตราการเรียนรู้มากกว่าค่าบางเกณฑ์ได้ และในกรณีที่การทดลองที่มีประสิทธิภาพดีที่สุดมีอัตราการเรียนรู้อยู่ที่ขอบของภูมิภาคนั้น โมเดลอาจได้รับผลกระทบจากปัญหาด้านความเสถียรที่ทําให้เข้าถึงอัตราการเรียนรู้ที่สูงกว่าไม่ได้
การสุ่มตัวอย่างสถานที่ไม่เพียงพอในพื้นที่ค้นหา
โดยทั่วไปแล้ว อาจเป็นเรื่องยากมากที่จะทราบ ว่ามีการสุ่มค้นหาพื้นที่การค้นหาแบบมากพอ 🤖 การใช้การทดสอบมากกว่าจะดีกว่าการใช้การทดสอบน้อยลง แต่การทดลองใช้ที่มากขึ้นจะทําให้มีค่าใช้จ่ายเพิ่มเติมอย่างเห็นได้ชัด
เนื่องจากเรื่องนี้ยากที่จะทราบได้เมื่อคุณมีการสุ่มตัวอย่างมากพอ เราจึงขอแนะนําดังต่อไปนี้
- ให้ตัวอย่างสิ่งที่คุณจ่ายได้
- การปรับเทียบของสัญชาตญาณของคุณจากการมองแผนภูมิแกนไฮเปอร์พารามิเตอร์ต่างๆ ซ้ําๆ และลองสังเกตว่าจุดต่างๆ ในพื้นที่ "ดี" ของพื้นที่การค้นหานั้นเป็นอย่างไร
ตรวจสอบเส้นโค้งการฝึกอบรม
สรุป: การตรวจสอบเส้นโค้งการสูญเสียเป็นวิธีง่ายๆ ในการระบุโหมดการทํางานล้มเหลวที่พบบ่อย และช่วยให้คุณจัดลําดับความสําคัญการดําเนินการถัดไปที่เป็นไปได้
ในหลายๆ กรณี วัตถุประสงค์หลักของการทดสอบของคุณมีเพียงการพิจารณาข้อผิดพลาดในการตรวจสอบของการทดลองแต่ละครั้งเท่านั้น อย่างไรก็ตาม ระมัดระวังเมื่อลดขนาดการทดลองแต่ละรายการให้เหลือเพียงหมายเลขเดียว เนื่องจากโฟกัสอาจซ่อนรายละเอียดที่สําคัญเกี่ยวกับสิ่งที่กําลังเกิดขึ้นใต้พื้นผิว สําหรับการศึกษาทั้งหมด เราแนะนําให้ดูเส้นโค้งที่สูญเสียไปจากการทดลองที่ดีที่สุดอย่างน้อย 2-3 ครั้ง แม้ว่าคุณจะไม่จําเป็นต้องแก้ไขวัตถุประสงค์หลักในการทดสอบ แต่การตรวจสอบเส้นโค้งการสูญเสีย (รวมทั้งการสูญเสียการฝึกอบรมและการสูญเสียการตรวจสอบ) เป็นวิธีที่ดีในการระบุโหมดความล้มเหลวที่พบบ่อยและสามารถช่วยให้คุณจัดลําดับความสําคัญของสิ่งที่ต้องทําถัดไป
เมื่อตรวจสอบเส้นโค้งการสูญเสีย ให้ไปที่คําถามต่อไปนี้
มีการทดลองใดๆ ที่แสดงถึงปัญหาการใช้งานมากเกินไปหรือไม่ การเกิดปัญหามากเกินไปจะเกิดขึ้นเมื่อข้อผิดพลาดการตรวจสอบความถูกต้องเริ่มลดลงระหว่างการฝึกทํางาน ในการตั้งค่าการทดสอบที่คุณเพิ่มประสิทธิภาพไฮเปอร์พารามิเตอร์ที่รบกวนความไม่เหมาะสมด้วยการเลือกการทดลอง "ที่ดีที่สุด" สําหรับการตั้งค่าไฮเปอร์พารามิเตอร์วิทยาศาสตร์แต่ละรายการ ให้ตรวจสอบการทดลองที่มีปัญหาน้อยที่สุดอย่างน้อยที่สุดแต่ละรายการที่เกี่ยวข้องกับการตั้งค่าของไฮเปอร์พารามิเตอร์เชิงวิทยาศาสตร์ที่คุณกําลังเปรียบเทียบ หากการทดลองชิ้นใดชิ้นหนึ่งแสดงให้เห็นถึงปัญหามากเกินไป ให้ทําอย่างใดอย่างหนึ่งต่อไปนี้หรือทําทั้ง 2 อย่าง
- เรียกใช้การทดสอบอีกครั้งโดยใช้เทคนิคการทํากฎเกณฑ์เพิ่มเติม
- ปรับแต่งพารามิเตอร์การปรับให้สอดคล้องตามมาตรฐานที่มีอยู่ก่อนเปรียบเทียบค่าของไฮเปอร์พารามิเตอร์ทางวิทยาศาสตร์ วิธีนี้อาจใช้งานไม่ได้หากพารามิเตอร์ไฮเปอร์พารามิเตอร์มีพารามิเตอร์การปรับให้สอดคล้องตามมาตรฐาน เนื่องจากน่าประหลาดใจหากการตั้งค่าความเข้มงวดของพารามิเตอร์การปรับให้เข้มงวดเหล่านั้นส่งผลให้เกิดปัญหามากเกินไป
การลดการจัดส่วนเกินมักจะตรงไปตรงมาด้วยเทคนิคการปรับรูปแบบทั่วไปที่เพิ่มความซับซ้อนของโค้ดให้น้อยที่สุดหรือการคํานวณเพิ่มเติม (เช่น การปรับแต่งรายการแบบเลื่อนลง การปรับป้ายกํากับให้เรียบ การเสื่อมสภาพของน้ําหนัก) ดังนั้น จึงมักจะเป็นการเพิ่มการทดลองเหล่านี้อย่างน้อย 1 รายการในการทดสอบรอบต่อไป ตัวอย่างเช่น หากไฮเปอร์พารามิเตอร์ทางวิทยาศาสตร์คือ "จํานวนเลเยอร์ที่ซ่อนอยู่" และการทดลองที่ดีที่สุดซึ่งใช้จํานวนเลเยอร์ที่ซ่อนอยู่มากที่สุดแสดงถึงการใช้งานมากเกินไป เราขอแนะนําให้คุณลองใช้การกําหนดค่าเพิ่มเติมตามปกติแทนที่จะเลือกเลเยอร์ที่ซ่อนอยู่จํานวนน้อยกว่าโดยทันที
แม้ว่าการทดลองใช้ที่ "ดีที่สุด" จะไม่แสดงปัญหามากเกินไป แต่ปัญหานั้นอาจยังคงเกิดขึ้นหากอยู่ในช่วงทดลองใช้ การเลือกการทดลองใช้ที่ดีที่สุดจะระงับการกําหนดค่าที่แสดงปัญหามากเกินไปและสนับสนุนการกําหนดค่าที่ไม่แสดง หรือพูดอีกอย่างก็คือ การเลือกการกําหนดค่า ที่ดีที่สุดจะทําให้การกําหนดค่ามีความเป็นมาตรฐานมากขึ้น อย่างไรก็ตาม อะไรก็ตามที่ทําให้การฝึกอบรมแย่ลงสามารถเป็นเหมือนเครื่องมือควบคุมทั่วไปได้ แม้ว่าจะไม่ได้มีเจตนาเช่นนั้นก็ตาม ตัวอย่างเช่น การเลือกอัตราการเรียนรู้ที่น้อยกว่าจะช่วยให้การฝึกเป็นกิจวัตรได้ด้วยการทําตามกระบวนการเพิ่มประสิทธิภาพ แต่เรามักจะไม่ต้องการเลือกอัตราการเรียนรู้ด้วยวิธีนี้ โปรดทราบว่าระบบอาจเลือกการทดลอง "ที่ดีที่สุด" สําหรับแต่ละการตั้งค่าไฮเปอร์พารามิเตอร์วิทยาศาสตร์ในลักษณะที่เอื้อต่อค่า "ไม่ดี" ของไฮเปอร์พารามิเตอร์วิทยาศาสตร์หรือสารก่อความรําคาญบางอย่าง
การฝึกอบรมแบบทีละขั้นตอนหรือข้อผิดพลาดในการตรวจสอบความถูกต้องมีความแปรปรวนสูงในการฝึกอบรมหรือไม่ การทําเช่นนี้อาจส่งผลกระทบต่อทั้ง 2 สิ่งต่อไปนี้
- ความสามารถในการเปรียบเทียบค่าที่แตกต่างกันของไฮเปอร์พารามิเตอร์ทางวิทยาศาสตร์ นั่นเป็นเพราะการสุ่มแต่ละครั้งจะสิ้นสุดในขั้นตอน "โชคดี" หรือ "โชคไม่ดี"
- ความสามารถในการจําลองผลของการทดลองในเวอร์ชันที่ใช้งานจริงที่ดีที่สุด นั่นเป็นเพราะโมเดลการผลิตไม่ได้จบที่ขั้นตอน "โชคดี" แบบเดียวกันกับในการศึกษา
สาเหตุที่เป็นไปได้มากที่สุดของความแปรปรวนทีละขั้นตอน ได้แก่:
- ความแปรปรวนของแบตช์จากการสุ่มตัวอย่างจากชุดการฝึกสําหรับแต่ละกลุ่ม
- ชุดการตรวจสอบความถูกต้องขนาดเล็ก
- ใช้อัตราการเรียนรู้ที่ช้าเกินไปในการฝึกอบรม
การชดเชยที่เป็นไปได้มีดังนี้
- การเพิ่มขนาดแบตช์
- การรับข้อมูลการตรวจสอบเพิ่มเติม
- การใช้อัตราลดลง
- ใช้ Polyak เฉลี่ย
การทดลองยังคงได้รับการปรับปรุงหรือไม่เมื่อสิ้นสุดการฝึกอบรม หากเป็นเช่นนั้น หมายความว่าคุณอยู่ในระบอบ "คํานวณขอบเขต" และอาจได้รับประโยชน์จากการเพิ่มจํานวนขั้นตอนการฝึกอบรมหรือเปลี่ยนกําหนดเวลาเรียนรู้
ประสิทธิภาพในการฝึกและการตรวจสอบความถูกต้องมีความอิ่มตัวนานก่อนช่วงการฝึกขั้นสุดท้ายหรือไม่ ในกรณีดังกล่าว แสดงว่าคุณอยู่ในระบอบ "ที่ไม่เกี่ยวข้องกับการประมวลผล" และคุณจะสามารถลดจํานวนขั้นตอนการฝึกได้
นอกเหนือจากรายการนี้แล้ว พฤติกรรมอื่นๆ เพิ่มเติมอาจเห็นได้ชัดจากการตรวจสอบเส้นโค้งที่สูญเสียไป เช่น การฝึกที่น้อยลงในระหว่างการฝึกอบรมมักจะบ่งบอกถึงข้อบกพร่องในไปป์ไลน์การฝึก
การตรวจสอบว่าการเปลี่ยนแปลงมีประโยชน์กับพล็อตการแยกหรือไม่
รูปที่ 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 ที่จัดขึ้นเพียงครั้งเดียว)