การเรียนรู้ของเครื่อง (Machine learning) เป็นวิธีที่รู้จักกันดีในการวิเคราะห์ข้อมูลด้วยการสร้างแบบจำลอง ระบบการเรียนรู้ของเครื่องประกอบด้วยไฮเปอร์พารามิเตอร์จำนวนมากซึ่งเป็นพารามิเตอร์ที่ใช้ในการควบคุมความซับซ้อนของโมเดล เช่น อัตราการเรียนรู้, โมเมนตัม, epsilon และอื่น ๆ แต่การที่จะปรับไฮเปอร์พารามิเตอร์เหล่านี้ของแบบจำลองให้ได้ผลลัพธ์ออกมาดีที่สุดนั้นเป็นเรื่องที่ทำได้ไม่ง่ายนัก นักวิทยาศาสตร์ข้อมูลจำนวนมาก รวมไปถึงผู้ที่ต้องการจะสร้างแบบจำลอง จำเป็นจะต้องใช้เวลาในการปรับไฮเปอร์พารามิเตอร์ด้วยตัวเอง ซึ่งอาจจะใช้เวลาหลายเดือนในการทำ ขึ้นอยู่กับความยากของชุดข้อมูลและจำนวนข้อมูลที่ใช้ในการสร้างแบบจำลอง
การปรับไฮเปอร์พารามิเตอร์อัตโนมัติ เป็นทางออกหนึ่งในการแก้ปัญหานี่เพื่อให้ได้แบบจำลองที่มีประสิทธิภาพในระยะเวลาที่สั้นลง ซึ่งกระบวนการนี้จะทำให้การเลือกชุดไฮเปอร์พารามิเตอร์ที่เหมาะสมที่สุดสำหรับแบบจำลองโดยอัตโนมัติ
ในปัจจุบัน มีวิธีการปรับไฮเปอร์พารามิเตอร์อัตโนมัติอยู่มากมาย ทั้งนี้ การค้นหาแบบกริด (grid search) และ การค้นหาแบบสุ่ม (random search) เป็น 2 วิธีดั้งเดิมที่รู้จักกันอย่างกว้างขวาง การค้นหาแบบกริด เริ่มต้นจากผู้สร้างแบบจำลองต้องกำหนดชุดของไฮเปอร์พารามิเตอร์ที่ประกอบด้วยค่าต่าง ๆ ของพารามิเตอร์ของแบบจำลองที่ต้องการทดสอบ จากนั้นแบบจำลองจะทำการรันทุกชุดไฮเปอร์พารามิเตอร์จนหมด แล้วจึงคืนค่าที่ดีที่สุดของไฮเปอร์พารามิเตอร์แต่ละตัวออกมา ในขณะที่การค้นหาแบบสุ่มนั้น ผู้สร้างแบบจำลองเพียงกำหนดขอบเขตค่าของไฮเปอร์พารามิเตอร์ที่สนใจ ซึ่งการค้นหาแบบสุ่มจะทำการสุ่มชุดของไฮเปอร์พารามิเตอร์ที่มีค่าต่างๆ ขึ้นมาทดสอบกับแบบจำลอง ซึ่งการค้นหาแบบสุ่มนี้จะช่วยประหยัดเวลาได้มากกว่า และได้ชุดของไฮเปอร์พารามิเตอร์ที่มีการกระจายตัวที่มากกว่าการค้นหาแบบ กริด อย่างไรก็ตาม หากแบบจำลองมีไฮเปอร์พารามิเตอร์จำนวนมาก การค้นหาค่าที่ดีที่สุดของไฮเปอร์พารามิเตอร์แต่ละตัวด้วยวิธีการที่กล่าวมาข้างต้นยังต้องใช้เวลานาน นอกจากนี้ทั้งสองวิธีการนั้นยังไม่มีเกณฑ์ในการปรับค่าของไฮเปอร์พารามิเตอร์เพื่อให้ได้ค่าที่เหมาะสมมากขึ้นอีกด้วย
Jack Stalfort, Hyperparameter tuning using Grid Search and Random Search, 2019
อัลกอริทึมกระบวนการแบบฝูงผึ้ง (Artificial Bee Colony Algorithm) เป็นอัลกอริทึมการหาค่าที่เหมาะสมที่สุด (Optimization Algorithm) สามารถนำมาใช้ในการปรับไฮเปอร์พารามิเตอร์แบบอัตโนมัติได้เช่นเดียวกัน โดยอัลกอริทึมนี้เป็นวิธีการแบบเมตาฮิวริสติก (Metaheuristic) ที่อ้างอิงจากพฤติกรรมการหาอาหารของฝูงผึ้ง ซึ่งผึ้งจะถูกแบ่งออกเป็น 3 ประเภทคือ ผึ้งงาน (Employed Bees) ผึ้งเฝ้าดู (Onlooker Bees) และ ผึ้งสำรวจ (Scout Bee) โดยผึ้งแต่ละประเภทจะมีหน้าที่แตกต่างกันออกไป ดังนี้
ผึ้งงาน ทำหน้าที่ค้นหาแหล่งอาหารและประเมินปริมาณอาหารในแหล่งอาหารที่ค้นพบ
ผึ้งเฝ้าดู จะได้รับข้อมูลจากผึ้งงาน แล้วทำการเลือกแหล่งอาหาร ซึ่งแหล่งอาหารที่มีปริมาณอาหารมากเมื่อเปรียบเทียบกับแหล่งอาหารใกล้เคียงอื่นๆ ก็จะมีความเป็นไปได้สูงที่จะถูกเลือก
ผึ้งสำรวจ ทำการค้นหาแหล่งอาหารใหม่ เมื่อปริมาณอาหารที่ผึ้งงานหาได้ไม่มีการเปลี่ยนแปลงในทางที่ดีขึ้น
การใช้อัลกอริทึมกระบวนการแบบฝูงผึ้งในการปรับไฮเปอร์พารามิเตอร์แบบอัตโนมัตินั้น ชุดของไฮเปอร์พารามิเตอร์ เปรียบเสมือน แหล่งอาหารของผึ้ง โดยแต่ละชุดไฮเปอร์พารามิเตอร์จะมีค่าความเหมาะสม (Fitness) ที่เปรียบได้กับ ปริมาณอาหาร โดยผึ้งเฝ้าดูจะทำการเลือกชุดไฮเปอร์พารามิเตอร์ที่มีค่าความเหมาะสมสูงๆ เสมือนการเลือกแหล่งอาหารที่มีปริมาณอาหารมากๆ ด้วยวิธีการสุ่มแบบวงล้อรูเล็ต (roulette wheel selection)
Nebojsa Bacanin, Milan Tuba, Ivona Brajevic, Performance of object-oriented software system for improved artificial bee colony optimization, 2011
ขั้นตอนของการใช้อัลกอริทึมกระบวนการแบบฝูงผึ้งในการปรับไฮเปอร์พารามิเตอร์ แบ่งออกเป็น 5 ขั้นตอน ดังนี้
ขั้นตอนที่ 1
สร้างประชากรผึ้งด้วยวิธีการสุ่มดังสมการ (1) โดยที่ แทนเวกเตอร์ของชุดไฮเปอร์พารามิเตอร์ แทนผึ้งแต่ละตัว แทนไฮเปอร์พารามิเตอร์แต่ละตัวในชุดไฮเปอร์พารามิเตอร์ทั้งหมด หลังจากนั้นก็จะเข้าสู่กระบวนการทำงานของแบบจำลอง และคำนวณค่าความเหมาะสม (Fitness) ซึ่ง ค่าความเหมาะสมในทีนี้ จะขึ้นอยู่กับสิ่งที่เราต้องการจะวัด เช่น หากเราใช้แบบจำลองประเภทการจัดหมวดหมู่ (Classification) Cross Entropy หรือ Log Loss ก็จะเป็นตัวที่นำมาใช้เป็นค่าความเหมาะสม
สมการ (1)
ขั้นตอนที่ 2
ผึ้งงานจะค้นหาชุดไฮเปอร์พารามิเตอร์ใหม่ดังสมการ (2) โดยที่ แทนชุดไฮเปอร์พารามิเตอร์ใหม่ แทนชุดไฮเปอร์พารามิเตอร์ของผึ้งตัวอื่นที่ถูกสุ่มขึ้นมา แทนตัวเลขสุ่มระหว่าง -1 ถึง 1 กล่าวคือ การคำนวณชุดไฮเปอร์พารามิเตอร์ใหม่ จะถูกสร้างจากการใช้ชุดไฮเปอร์พารามิเตอร์เดิมและชุดไฮเปอร์พารามิเตอร์ของผึ้งตัวอื่น หลังจากนั้นก็จะคำนวณค่าความเหมาะสมของชุดไฮเปอร์พารามิเตอร์ใหม่ ซึ่งหากค่าความเหมาะสมของชุดไฮเปอร์พารามิเตอร์ใหม่ดีกว่าชุดไฮเปอร์พารามิเตอร์เดิม ชุดไฮเปอร์พารามิเตอร์เดิมจะถูกแทนที่ด้วยชุดไฮเปอร์พารามิเตอร์ใหม่
สมการ (2)
ขั้นตอนที่ 3
ผึ้งเฝ้าดูจะพิจารณาชุดไฮเปอร์พารามิเตอร์ตามความน่าจะเป็นดังสมการ (3) ซึ่งชุดไฮเปอร์พารามิเตอร์ที่มีความน่าจะเป็นสูงก็จะมีโอกาสถูกเลือกที่จะนำไปใช้ต่อในรอบถัดไป ซึ่งก็คือเราจะได้ ชุดไฮเปอร์พารามิเตอร์ที่มีประสิทธิภาพที่ดีมากขึ้นในรอบถัดไป
สมการ (3)
ขั้นตอนที่ 4
ผึ้งสำรวจจะเริ่มทำงานเมื่อค่าความเหมาะสมของผึ้งตัวใดไม่มีการเปลี่ยนแปลงไปในทางที่ดีขึ้น ในจำนวนครั้งตามที่เรากำหนด ผึ้งสำรวจจะทำการค้นหาชุดไฮเปอร์พารามิเตอร์ใหม่ด้วยการสุ่มตามสมการที่ (1) และแทนที่ชุดไฮเปอร์พารามิเตอร์เดิมของผึ้งตัวนั้น
ขั้นตอนที่ 5
ถ้าผึ้งพบแหล่งอาหารที่ให้ค่าความเหมาะสมตรงกับเงื่อนไขที่เราตั้งไว้ หรือ ค้นหาไปจนครบจำนวนรอบสูงสุดที่เราจำกัด การดำเนินการจะหยุดทันที แต่ถ้าไม่ก็จะทำตามขั้นตอนที่ 2 ถึง 4 จนกว่าจะถึงเกณฑ์การหยุดการทำงาน
ดังแสดงในขั้นตอนการทำงานของอัลกอริทึมกระบวนการแบบฝูงผึ้ง อัลกอริทึมนี้ จะมีการค้นหาชุดไฮเปอร์พารามิเตอร์ที่มีประสิทธิภาพที่ดีมากขึ้นในแต่ละรอบ ซึ่งอาจช่วยให้การปรับไฮเปอร์พารามิเตอร์อัตโนมัติได้ดีกว่า การค้นหาแบบกริด และ การค้นหาแบบสุ่ม
Reference:
https://www.researchgate.net/figure/Graphical-representation-of-the-elements-of-ABC-algorithm_fig1_289690854
https://medium.com/@jackstalfort/hyperparameter-tuning-using-grid-search-and-random-search-f8750a464b35
Fei Kang and Junjie Li, 2016, “Artificial Bee Colony Algorithm Optimized Support Vector Regression for System Reliability Analysis of Slopes”, Journal of Computing in Civil Engineering , vol. 30.
Zuriani Mustaffa and Yuhanis Yusof, 2012, “A Hybridization of Enhanced Artificial Bee Colony-Least Squares Support Vector Machines for Price Forecasting”, Journal of Computer Science .