การปรับไฮเปอร์พารามิเตอร์อัตโนมัติด้วยกระบวนการแบบฝูงผึ้ง


Share this article

การเรียนรู้ของเครื่อง (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.

READ  Predictive Maintenance: การทำนายหรือคาดการณ์การเสียของเครื่องจักร

ลงทะเบียนรับข่าวสาร

ไม่พลาดทุกการอัพเดทจาก Big Data Experience Center

Big Data Experience Center (BX)

ชั้น 14 อาคาร Knowledge Exchange Center (KX)
110/1 ถนนกรุงธนบุรี, แขวงบางลำภูล่าง เขตคลองสาน กรุงเทพฯ 10600
อีเมล์: [email protected]

ABOUT

SERVICES