การปรับแต่งไฮเปอร์พารามิเตอร์คืออะไร
เมื่อคุณฝึกโมเดลแมชชีนเลิร์นนิง ชุดข้อมูลและโมเดลแต่ละชุดจะต้องมีชุดไฮเปอร์พารามิเตอร์ที่แตกต่างกันเป็นตัวแปรชนิดหนึ่ง วิธีเดียวที่จะระบุค่าเหล่านี้ได้ก็คือการผ่านการทดสอบหลายๆ ครั้ง ที่ซึ่งคุณสามารถเลือกชุดของไฮเปอร์พารามิเตอร์และเรียกใช้งานผ่านโมเดลของคุณได้ สิ่งนี้เรียกว่าการปรับแต่งไฮเปอร์พารามิเตอร์ โดยพื้นฐานแล้วก็คือการที่คุณกำลังฝึกโมเดลของคุณตามลำดับด้วยไฮเปอร์พารามิเตอร์ชุดต่าง ๆ นั่นเอง โดยคุณสามารถดำเนินการกระบวนการนี้ได้ด้วยตนเอง หรือคุณสามารถเลือกวิธีการปรับแต่งไฮเปอร์พารามิเตอร์แบบอัตโนมัติแบบใดแบบหนึ่งก็ได้
ไม่ว่าคุณจะใช้วิธีใดก็ตาม คุณจะต้องติดตามผลการทดลองของคุณด้วย คุณจะต้องใช้รูปแบบการวิเคราะห์ทางสถิติบางอย่าง เช่น ฟังก์ชันการสูญเสีย เพื่อพิจารณาว่าไฮเปอร์พารามิเตอร์ชุดใดที่ให้ผลลัพธ์ที่ดีที่สุด การปรับแต่งไฮเปอร์พารามิเตอร์เป็นกระบวนการที่สำคัญและใช้การคำนวณเป็นจำนวนมาก
ไฮเปอร์พารามิเตอร์คืออะไร
ไฮเปอร์พารามิเตอร์เป็นตัวแปรการกำหนดค่าภายนอกที่นักวิทยาศาสตร์ข้อมูลใช้เพื่อจัดการการฝึกฝนโมเดลแมชชีนเลิร์นนิง บางครั้งถูกเรียกว่าโมเดลไฮเปอร์พารามิเตอร์ ที่ซึ่งไฮเปอร์พารามิเตอร์จะถูกตั้งค่าด้วยตนเองก่อนที่จะฝึกฝนโมเดล โดยมีความแตกต่างจากพารามิเตอร์ทั่วไป ซึ่งเป็นพารามิเตอร์ภายในที่ได้มาโดยอัตโนมัติในระหว่างกระบวนการเรียนรู้ และไม่ได้ตั้งค่าโดยนักวิทยาศาสตร์ข้อมูล
ตัวอย่างของไฮเปอร์พารามิเตอร์ประกอบด้วยจำนวนโหนดและระดับต่าง ๆ ในนิวรัลเน็ตเวิร์กและจำนวนสาขาในต้นไม้ตัดสินใจ (Decision Tree) ไฮเปอร์พารามิเตอร์จะกำหนดฟีเจอร์หลักต่าง ๆ เช่น สถาปัตยกรรมของโมเดล อัตราการเรียนรู้ และความซับซ้อนของโมเดล
คุณจะระบุไฮเปอร์พารามิเตอร์ได้อย่างไร
การเลือกชุดไฮเปอร์พารามิเตอร์ที่เหมาะสมถือว่ามีความสำคัญในแง่ของประสิทธิภาพและความแม่นยำของโมเดล แต่น่าเสียดายที่ไม่มีกฎใดที่กำหนดเอาไว้ว่าไฮเปอร์พารามิเตอร์รายการใดที่ทำงานได้ดีที่สุด หรือค่าที่เหมาะสมที่สุดหรือค่าเริ่มต้นที่ดีที่สุดคืออะไร คุณต้องทำการทดลองเพื่อหาชุดไฮเปอร์พารามิเตอร์ที่เหมาะสมที่สุดเอง กิจกรรมนี้เรียกว่าการปรับแต่งไฮเปอร์พารามิเตอร์หรือการปรับไฮเปอร์พารามิเตอร์ให้เหมาะสม
เหตุใดการปรับแต่งไฮเปอร์พารามิเตอร์จึงมีความสำคัญ
ไฮเปอร์พารามิเตอร์จะควบคุมโครงสร้างโมเดล ฟังก์ชันรวมถึงประสิทธิภาพโดยตรง การปรับไฮเปอร์พารามิเตอร์จะช่วยให้นักวิทยาศาสตร์ข้อมูลสามารถปรับแต่งประสิทธิภาพของโมเดลเพื่อให้ได้ผลลัพธ์ที่ดีที่สุดได้ กระบวนการนี้เป็นส่วนสำคัญของการเรียนรู้ของแมชชีนเลิร์นนิง และการเลือกค่าไฮเปอร์พารามิเตอร์ที่เหมาะสมถือเป็นสิ่งสำคัญที่จะทำให้ประสบความสำเร็จ
ตัวอย่างเช่น สมมติว่าคุณกำลังใช้อัตราการเรียนรู้ของโมเดลเป็นไฮเปอร์พารามิเตอร์อยู่ หากค่าสูงเกินไป ตัวโมเดลอาจมาบรรจบกันเร็วเกินไปโดยที่จะให้ผลลัพธ์ที่ไม่เหมาะสม ในขณะที่หากอัตราที่ต่ำเกินไป การฝึกจะใช้เวลานานเกินไปและผลลัพธ์อาจไม่บรรจบกัน ตัวเลือกไฮเปอร์พารามิเตอร์ที่ดีและมีความสมดุลจะทำให้ได้โมเดลที่มีความแม่นยำและมีประสิทธิภาพที่ยอดเยี่ยม
การปรับแต่งไฮเปอร์พารามิเตอร์ทำงานอย่างไร
ดังที่กล่าวไว้ข้างต้น การปรับแต่งไฮเปอร์พารามิเตอร์สามารถทำได้ด้วยตนเองหรือปรับแบบอัตโนมัติก็ได้ แม้ว่าการปรับแต่งด้วยตนเองจะมีความล่าช้าและน่าเบื่อ แต่ข้อดีก็คือคุณจะเข้าใจได้ดียิ่งขึ้นว่าการถ่วงน้ำหนักแบบไฮเปอร์พารามิเตอร์นั้นส่งผลต่อโมเดลอย่างไร แต่ในกรณีส่วนใหญ่ คุณมักจะเลือกใช้หนึ่งในอัลกอริทึมการเรียนรู้ไฮเปอร์พารามิเตอร์ที่เป็นที่รู้จักกันเป็นอย่างดีอยู่แล้ว
กระบวนการปรับแต่งไฮเปอร์พารามิเตอร์เป็นกระบวนการแบบวนซ้ำ และเป็นการลองใช้พารามิเตอร์และค่าต่าง ๆ แบบผสมกัน โดยทั่วไปแล้ว คุณจะเริ่มต้นด้วยการกำหนดตัวแปรเป้าหมาย เช่น ความแม่นยำ เป็นตัวชี้วัดหลัก และตั้งใจที่จะขยายหรือลดขนาดตัวแปรนี้ให้ได้มากที่สุด ซึ่งถือว่าเป็นความคิดที่ดีที่จะใช้เทคนิคการแบ่งข้อมูลออกเป็นส่วน ๆ เพื่อให้โมเดลของคุณไม่ได้เน้นอยู่ที่ข้อมูลเพียงแค่ส่วนเดียว
เทคนิคการปรับแต่งไฮเปอร์พารามิเตอร์มีอะไรบ้าง
อัลกอริทึมการปรับแต่งไฮเปอร์พารามิเตอร์มีอยู่จำนวนมาก แม้ว่าประเภทที่ใช้บ่อยที่สุดคือการปรับให้เหมาะสมแบบเบย์ การค้นหาแบบกริด และการค้นหาแบบสุ่ม
การปรับให้เหมาะสมแบบเบย์
การปรับให้เหมาะสมแบบเบย์คือเทคนิคที่ใช้ทฤษฎีบทของเบย์ ซึ่งอธิบายถึงความน่าจะเป็นของเหตุการณ์ที่เกี่ยวข้องกับความรู้ในปัจจุบัน เมื่อนำไปใช้กับการปรับไฮเปอร์พารามิเตอร์ให้เหมาะสม อัลกอริทึมจะสร้างโมเดลความน่าจะเป็นจากชุดของไฮเปอร์พารามิเตอร์ที่ปรับตัวชี้วัดโดยเฉพาะให้มีความเหมาะสม ใช้การวิเคราะห์รีเกรสชันเพื่อเลือกชุดพารามิเตอร์ที่ดีที่สุดซ้ำๆ
การค้นหาแบบกริด
ด้วยการค้นหาแบบกริด คุณจะสามารถระบุรายการของไฮเปอร์พารามิเตอร์และตัวชี้วัดประสิทธิภาพ และอัลกอริทึมจะทำงานโดยใช้ชุดค่าผสมที่เป็นไปได้ทั้งหมดเพื่อกำหนดแบบที่เหมาะสมที่สุด การค้นหาแบบกริดนั้นสามารถทำอย่างได้อย่างดี แต่ค่อนข้างน่าเบื่อและต้องใช้การคำนวณที่มากมาย โดยเฉพาะอย่างยิ่งกับไฮเปอร์พารามิเตอร์จำนวนมาก
ค้นหาแบบสุ่ม
แม้ว่าจะใช้หลักการที่คล้ายคลึงกันกับการค้นหาแบบกริด แต่การค้นหาแบบสุ่มจะเลือกกลุ่มของไฮเปอร์พารามิเตอร์แบบสุ่มในการวนซ้ำแต่ละครั้ง การค้นหาแบบสุ่มสามารถทำงานได้อย่างดีเมื่อมีจำนวนไฮเปอร์พารามิเตอร์ค่อนข้างน้อยที่เป็นตัวกำหนดผลลัพธ์ของโมเดลเป็นหลัก
ตัวอย่างของไฮเปอร์พารามิเตอร์มีอะไรบ้าง
แม้ว่าไฮเปอร์พารามิเตอร์บางรายการอาจเป็นแบบทั่ว ๆ ไป แต่ในทางปฏิบัติคุณจะพบว่าอัลกอริทึมจะใช้ชุดของไฮเปอร์พารามิเตอร์แบบเฉพาะเจาะจง ตัวอย่างเช่น คุณสามารถอ่านวิธีที่ Amazon SageMaker ใช้ไฮเปอร์พารามิเตอร์การจัดประเภทอิมเมจและอ่านวิธีที่ SageMaker ใช้ไฮเปอร์พารามิเตอร์ของอัลกอริทึม XGBoost
ตัวอย่างบางส่วนของไฮเปอร์พารามิเตอร์ทั่วไปมีดังนี้
- อัตราการเรียนรู้คืออัตราที่อัลกอริทึมใช้ในการอัปเดตค่าประมาณ
- การลดลงของอัตราการเรียนรู้คือการลดอัตราการเรียนรู้อย่างค่อยเป็นค่อยไปในช่วงเวลาหนึ่งเพื่อให้การเรียนรู้มีความรวดเร็วยิ่งขึ้น
- แรงขับเคลื่อนคือทิศทางของขั้นตอนต่อไปเมื่อเทียบกับขั้นตอนก่อนหน้า
- โหนดนิวรัลเน็ตเวิร์กหมายถึงจำนวนโหนดในแต่ละระดับที่ซ่อนอยู่
- ระดับของนิวรัลเน็ตเวิร์กหมายถึงจำนวนของระดับที่ซ่อนอยู่ในนิวรัลเน็ตเวิร์ก
- แบตช์ขนาดเล็กคือขนาดแบตช์ข้อมูลการฝึกฝน
- เหตุการณ์คือจำนวนครั้งที่ชุดข้อมูลการฝึกฝนทั้งหมดแสดงต่อเครือข่ายระหว่างการฝึกฝน
- Eta คือการหดตัวของขนาดขั้นตอนเพื่อป้องกันการโอเวอร์ฟิตติ้ง
AWS สามารถช่วยปรับไฮเปอร์พารามิเตอร์ได้อย่างไร
ที่ Amazon Web Services (AWS) เราได้นำเสนอ Amazon SageMaker ซึ่งเป็นแพลตฟอร์มแมชชีนเลิร์นนิง (ML) ที่มีการจัดการแบบเต็มรูปแบบ ที่จะช่วยให้คุณสามารถทำการปรับแต่งโมเดลได้โดยอัตโนมัติ Amazon SageMaker Model Training จะค้นหาเวอร์ชันที่ดีที่สุดของโมเดล ML ของคุณโดยการเรียกใช้งานการฝึกหลายรายการในชุดข้อมูลของคุณ ใช้อัลกอริทึมและช่วงของไฮเปอร์พารามิเตอร์ที่คุณระบุ
SageMaker นำเสนอวิธีการปรับแต่งไฮเปอร์พารามิเตอร์เวอร์ชันอัจฉริยะซึ่งจะอิงตามทฤษฎีการค้นหาแบบเบย์ และได้รับการออกแบบมาเพื่อค้นหาโมเดลที่ดีที่สุดในเวลาอันสั้นที่สุด ซึ่งจะเริ่มต้นด้วยการค้นหาแบบสุ่ม แต่จากนั้นจะเรียนรู้ว่าโมเดลมีการทำงานอย่างไรโดยคำนึงถึงค่าต่าง ๆ ของไฮเปอร์พารามิเตอร์ สำหรับข้อมูลเพิ่มเติม โปรดอ่านวิธีการทำงานของการปรับแต่งไฮเปอร์พารามิเตอร์ใน SageMaker
นอกจากนี้ การปรับแต่งโมเดลอัตโนมัติของ SageMaker ยังรองรับ Hyperband ซึ่งถือว่าเป็นกลยุทธ์การค้นหาแบบใหม่อีกด้วย Hyperband จะสามารถค้นหาชุดไฮเปอร์พารามิเตอร์ที่เหมาะสมได้รวดเร็วกว่าการค้นหาโมเดลขนาดใหญ่แบบเบย์ถึงสามเท่า เช่น นิวรัลเน็ตเวิร์กเชิงลึกที่แก้ไขปัญหาการมองเห็นของคอมพิวเตอร์
นอกจากนี้คุณยังสามารถอ่านวิธีการปรับแต่งโมเดลอัตโนมัติด้วย SageMaker ได้อีกด้วย คุณใช้โมดูลการปรับแต่งไฮเปอร์พารามิเตอร์ของ SageMaker ที่มีอัลกอริทึม SageMaker มาด้วยในตัว อัลกอริทึมแบบกำหนดเอง และคอนเทนเนอร์ที่สร้างไว้ล่วงหน้าของ SageMaker มีบทช่วยสอนและแบบฝึกหัดการเรียนรู้ด้วยตนเองที่ครอบคลุม เพื่อช่วยให้คุณเรียนรู้การดำเนินการปรับไฮเปอร์พารามิเตอร์ให้เหมาะสมอยู่ในหน้าเว็บนี้
การเริ่มต้นใช้งาน SageMaker ถือว่าเป็นเรื่องง่าย เพียงคุณแค่สร้างบัญชี AWS ฟรี ด้วย AWS Free Tier คุณจะสามารถทดลองใช้ SageMaker ได้ฟรีถึงสองเดือนก่อนที่คุณจะเริ่มต้นชำระเงิน