บทที่ 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 ดังตาราง
![](http://www.fusionsol.com/wp-content/uploads/sites/2/2020/11/image-50-1024x268.png)
โดยวิธีการใช้งาน Tune Model Hyperparameters ในที่นี่เราจะใช้ตัวอย่างเดียว Two-Class Logistic Regression ที่ต้องการคาดการณ์การอนุมัติเงินกู้ ซึ่งมีวิธีการใช้งานดังนี้
เมื่อเราสร้างโมเดลมาจนถึงการนำโมเดลของเราไปวางแล้วนั้นดราจะกำหนด parameter ในโมเดลของเราซึ่งในตัวอย่างนี้ก็คือ Two-Class Logistic Regression แต่เลือก parameter ที่ชื่อ Create trainer mode เลือก Parameter Range และ Random number seed เป็น 123 ส่วนค่าอื่นใช้ตามที่ AzureML กำหนดมา
![](http://www.fusionsol.com/wp-content/uploads/sites/2/2020/11/image-52-1024x483.png)
จากนั้นค้นหา 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
![](http://www.fusionsol.com/wp-content/uploads/sites/2/2020/11/image-53.png)
จากนั้นค้นหา module ที่ชื่อว่า Score Model มาวางบน Workspace แล้วลากเส้นเชื่อมจากวงกลมวงที่สองจาก Tune Model Hyperparameters มาเชื่อมที่วงกลมวงแรก และลากจากวงกลมที่สองของ Split Data มาเชื่อมกับวงที่สองของ Score Model
![](http://www.fusionsol.com/wp-content/uploads/sites/2/2020/11/image-54.png)
จากนั้นค้นหา module ที่ชื่อว่า Evaluate Model มาวางบน Workspace แล้วลากเส้นเชื่อมจาก Score Model มาที่ Evaluate Model เพื่อดูประสิทธิภาพของโมเดลของเรา จากนั้นกด RUN
![](http://www.fusionsol.com/wp-content/uploads/sites/2/2020/11/image-55.png)
Visualize ดูประสิทธิภาพของโมเดลจะพบว่า โมเดลของเราสามารถ Classification ได้ค่าความถูกต้อง 0.832 หรือเท่ากับ 83.2 % ซึ่งเท่ากับการทำ Two-Class Logistic Regression แบบที่ไม่ใช่ Tune Model Hyperparameters นั้นหมายความว่า parameter ที่เราปรับในตอนแรกคือ parameter ที่ดีที่สุดในการ classify ข้อมูลนี้โดยใช้ โมเดล Two-Class Logistic Regression
![](http://www.fusionsol.com/wp-content/uploads/sites/2/2020/11/image-56.png)
การทำ Tune Model Hyperparameters สามารถทำได้ในการ Regression เช่นเดียวกับการทำ Classification ซึ่งสามารถทำให้ผลลัพธ์การทำนายดีขึ้นได้
Fusion ให้บริการวิเคราห์และออกแบบระบบ Machine Learning ด้วยเครื่องมือ ของ
Microsoft Azure
02-440-0408 / sales@fusionsol.com
Link to Implement Azure , Implement Power BI