Machine Learning

Azure ML Studio สร้างโมเดลง่ายๆใช้งานฟรีบนเว็บบราวเซอร์

บทความนี้แอดเขียนแนะนำวิธีการใช้งาน Azure ML Studio เบื้องต้นเพื่อสร้างโมเดลแบบไม่ต้องเขียนโค้ด drag & drop ห้านาทีเสร็จแล้ว สมัครใช้งานฟรีที่ https://studio.azureml.net/

[su_spoiler title=”Azure คืออะไร?”]Azure คือ Cloud Services ของ Microsoft เพื่อนๆไม่ต้องลงโปรแกรมอะไรให้ยุ่งยาก แค่เปิด browser ขึ้นมา sign in เข้าสู่ ML Studio ก็เริ่มทำงานได้เลย ตั้งแต่ลองใช้งาน Cloud มาแอดว่าของ Azure ใช้ง่ายสุด[/su_spoiler]

Create Account

สำหรับ free account เหมาะสำหรับนักศึกษาที่กำลังเรียน ML ทำโปรเจ็คที่ข้อมูลยังไม่ใหญ่มาก <= 10 GB (อ่านความแตกต่างระหว่าง free vs. standard ได้ที่นี่) ได้สิทธิการใช้งานดังนี้

  • พื้นที่เก็บข้อมูล 10 GB
  • ใช้ได้มากสุด 100 modules ต่อการทดลองหนึ่งครั้ง (per experiment)
  • เวลาในการรันโมเดลมากสุด 1 ชั่วโมง และใช้ได้แค่ single core CPU (node)
ตอนสมัครให้เลือกแบบ free workspace แล้วกด sign in

Getting Started

Sign in เข้าไปที่ ML Studio ให้กดที่ปุ่ม <New> ด้านซ้ายล่างของหน้าจอ แล้วเลือก <Blank Experiment>

คลิก +NEW เพื่อสร้าง blank experiment

Workspace (รูปด้านล่าง) คือพื้นที่ให้เราลากกล่อง <Module> ต่างๆสำหรับวิเคราะห์ข้อมูลเบื้องต้น ทำ data exploration ไปจนถึงการสร้างโมเดล ตอนนี้ ML Studio มีโมเดลสำเร็จรูปให้เราใช้งานมากกว่า 20+ โมเดล แบ่งเป็น 4 กลุ่ม คือ anomaly detection, classification, regression และ clustering

[su_spoiler title=”Anomaly Detection คืออะไร?”]เป็น algorithm/ model ที่ใช้ตรวจจับ fraud หรือ transaction ที่ผิดปกติ (คล้ายๆพวก outlier)[/su_spoiler]

[su_spoiler title=”Classification ต่างกับ Regression อย่างไร?”]Classfication ใช้ทำนายตัวแปรตาม (y) แบบ discrete เช่น อีเมล์เป็น {spam, ham} ส่วน Regression ใช้ทำนายตัวแปรตามแบบ continuous เช่น ราคาบ้าน 12000, 15000, 50000 เป็นต้น[/su_spoiler]

หน้า workspace ที่ใช้ในการสร้างโมเดล

หน้าจอ workspace จะแบ่งออกเป็นสามส่วน

  1. <Module> ทั้งหมดให้เราเลือกใช้งาน
  2. <Canvas> ให้เราลากกล่อง module ไปวาง และสร้าง connection i.e. ลากเส้นเชื่อมกล่องเข้าด้วยกัน โปรแกรมจะรันจากบนลงล่างเสมอ
  3. <Option> ที่เราสามารถเปลี่ยนได้ของแต่ละ module

Model Training

[su_highlight]วิธีการสร้างโมเดลแค่ลาก 7 Modules นี้ไปวางบน canvas ใช้เม้าส์ลาก connect ทุก module เข้าด้วยกันตามรูปด้านล่าง ถึงแม้ว่าเราไม่ต้องเขียนโค้ดเองแต่ก็ต้องเข้าใจขั้นตอนการสร้างโมเดลเบื้องต้น[/su_highlight] เช่น ทำไมต้อง split data เป็น {train, test}? ทำไมต้อง score model i.e. ทำนาย test set ให้ได้ค่า probability?

[su_spoiler title=”กฎเหล็กการสร้างโมเดล Machine Learning”]เราต้อง split data เสมอเป็น {train set, test set} สร้างโมเดลด้วย train และทดสอบโมเดลด้วย test เพื่อลดปัญหา overfitting ในทางปฏิบัติ best practice คือการทำ cross-validation[/su_spoiler]

  • Import Data
  • Select Columns in Dataset
  • Split Data (ใช้แบ่งข้อมูลเป็น train 70% และ test 30%)
  • Train Model
  • Two-Class Decision Forest (โมเดลที่เราต้องการ train สามารถเปลี่ยนได้)
  • Score Model
  • Evaluate Model

ในแต่ละกล่อง module จะมี option ให้เราปรับเปลี่ยนได้ตามที่ต้องการ เช่น <Split Data> สามารถกำหนดสัดส่วนของข้อมูล train vs. test และค่า random seed

Standard modules สำหรับสร้างโมเดลบน ML Studio

พอเรากำหนด option ของทุก module เสร็จแล้วให้กดปุ่ม <RUN> ด้านล่างของหน้าจอรอประมาณ 1-2 นาทีให้ Azure รันโปรแกรม เสร็จแล้วจะมีเครื่องหมาย ✓ สีเขียวบนกล่อง module และมุมขวาบนของหน้าจอจะมีคำว่า <Finished running> ขึ้นมาด้วย

That’s Quick!

เสร็จแล้ว ทำไมเร็วขนาดนี้ 555+ คลิกขวาที่ <Evaluate Model> เลือก Evaluation results -> Visualize

Metrics ทั้งหมดที่ได้จาก <Evaluate Model> มีครบทุกตัวที่ใช้กันทุกวันนี้ ประกอบด้วย

  • RMSE, MSE, MAE สำหรับปัญหา regression
  • ROC และ AUC สำหรับปัญหา classification
  • Accuracy, Precision, Recall, F1 Score
  • Precision Recall Curve และ Lift Curve
  • Confusion Matrix สามารถเปลี่ยนค่า threshold เพื่อทดสอบโมเดลได้เลย
ROC (ซ้าย) และ Precision-Recall Curve (ขวา)

Metric ที่เรานิยมใช้วัดความสามารถของ classification model คือพื้นที่ใต้กราฟ ROC ที่เรียกว่า “AUC” (Area Under Curve) โดย AUC จะมีค่าอยู่ระหว่าง 0-1 ยิ่งค่าเข้าใกล้ 1 แปลว่าโมเดลเราทำงานได้ดีมาก

ตารางสรุปผล metrics ทั้งหมดแบ่งตามช่วง probability

[su_highlight]Azure ML Studio ช่วยให้การสร้างโมเดลเป็นเรื่องง่ายมาก ใครๆก็สามารถทำได้แค่เข้าใจขั้นตอนการสร้างโมเดลและ metrics ที่เราใช้ทดสอบโมเดลอย่าง accuracy, precision, recall และ F1 score[/su_highlight].

Azure ยังมี option ให้เรานำโมเดลไปใช้งานจริงได้เลย <Deploy as a Web Service> แต่จะมีค่า production คิดตามจำนวน transactions สามารถดูค่าใช้จ่ายของ API deployment เบื้องต้นได้ที่นี่

1 comment

  1. มีตัวอย่างการนำโมเดลของ Google ไปใช้ไหมครับ

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.