บทที่ 14-How to use Tune Hyperparameter by AzureML
วิธีการใช้ Tune Hyperparameter ใน AzureML
ในบทความนี้หลาย ๆ คนคงสงสัย Tune Hyperparameter หรือตัว Hyperparameter นั้นคืออะไรและมีผลอะไรในการสร้างโมเดลของเรา และวิธีการใช้เป็นอย่างไร ในบทความนี้สามารถช่วยไขข้อสงสัยนี้ได้ค่ะ
จากหลาย ๆ บทความที่ผ่านมาเราคงจะได้เห็นว่าทุกโมเดลที่เราใช้มีการปรับ parameter มากมายที่เราต้องกำหนดค่าให้เหมาะกับข้อมูลของเรา แล้วเราจะรู้ได้อย่างไรว่า ค่า Parameter ต่าง ๆ ต้องเป็นค่าเท่าไหร่ถึงจะเหมาะสมกับข้อมูลของเรา ปัญหาเหล่านี้สามารถแก้ไขได้ด้วยการใช้ module ที่ชื่อว่า Tune Model Hyperparameters ค่ะ
Tune Model Hyperparameters ช่วยให้เราสามารถเลือกส่วนประกอบหรือเลือก parameter ที่ดีที่สุด นั่นคือช่วยในการกำหนดค่า parameter ที่หลากหลายที่สุดเท่าที่จะเป็นไปได้ หรือเราเรียกว่า Hyperparameter optimization โดย
Tune Model Hyperparameters จะมี parameter ที่ใช้คือ
- Random Grid : จะสุ่มเลือก combination และ RUN อัลกอริทึมทุกตัวที่ที่สุ่มมา
- Entire Grid : RUN อัลกอริทึมทุกตัวที่เป็นไปได้ทุก combination
- Random Sweep : RUN อัลกอริทึมสำหรับจำนวนจุดหรือการทำซ้ำ
โดยที่เราสามารถเข้าใจ Grid ได้ง่าย เช่น เรามี parameter 2 ตัว ตัวแรกมีค่า 1 2 4 และตัวที่ 2 มีค่า A B C D จะได้ทุก combination ดังตาราง
โดยวิธีการใช้งาน Tune Model Hyperparameters ในที่นี่เราจะใช้ตัวอย่างเดียว Two-Class Logistic Regression ที่ต้องการคาดการณ์การอนุมัติเงินกู้ ซึ่งมีวิธีการใช้งานดังนี้
เมื่อเราสร้างโมเดลมาจนถึงการนำโมเดลของเราไปวางแล้วนั้นดราจะกำหนด parameter ในโมเดลของเราซึ่งในตัวอย่างนี้ก็คือ Two-Class Logistic Regression แต่เลือก parameter ที่ชื่อ Create trainer mode เลือก Parameter Range และ Random number seed เป็น 123 ส่วนค่าอื่นใช้ตามที่ AzureML กำหนดมา
จากนั้นค้นหา module ที่ชื่อว่า Tune Model Hyperparameters ลากมาวางบน Workspace และลากเส้นเชื่อมจาก Two-Class Logistic Regression มาเชื่อมกับวงกลมวงแรกและลากจากวงกลมวงแรกอง Split Data มาเชื่อมวงกลมวงที่สองของ Tune Model Hyperparameters โดยเลือกคอลัมน์ Loan_Status และปรับ parameter ดังนี้
- Specify parameter sweeping mode : Entire Grid
- Metric for measuring performance for classification : Accuracy
- Metric for measuring performance for regression : Coefficient of Determination
จากนั้นค้นหา module ที่ชื่อว่า Score Model มาวางบน Workspace แล้วลากเส้นเชื่อมจากวงกลมวงที่สองจาก Tune Model Hyperparameters มาเชื่อมที่วงกลมวงแรก และลากจากวงกลมที่สองของ Split Data มาเชื่อมกับวงที่สองของ Score Model
จากนั้นค้นหา module ที่ชื่อว่า Evaluate Model มาวางบน Workspace แล้วลากเส้นเชื่อมจาก Score Model มาที่ Evaluate Model เพื่อดูประสิทธิภาพของโมเดลของเรา จากนั้นกด RUN
Visualize ดูประสิทธิภาพของโมเดลจะพบว่า โมเดลของเราสามารถ Classification ได้ค่าความถูกต้อง 0.832 หรือเท่ากับ 83.2 % ซึ่งเท่ากับการทำ Two-Class Logistic Regression แบบที่ไม่ใช่ Tune Model Hyperparameters นั้นหมายความว่า parameter ที่เราปรับในตอนแรกคือ parameter ที่ดีที่สุดในการ classify ข้อมูลนี้โดยใช้ โมเดล Two-Class Logistic Regression
การทำ Tune Model Hyperparameters สามารถทำได้ในการ Regression เช่นเดียวกับการทำ Classification ซึ่งสามารถทำให้ผลลัพธ์การทำนายดีขึ้นได้
Link to Implement Azure , Implement Power BI