- Automated Machine Learning (AutoML)
- 2. AutoML ทำอะไรให้อัตโนมัติได้บ้าง
- 3. Workflow ของ AutoML
- 4. ประเภทของงานที่ AutoML รองรับ
- 5. เครื่องมือ AutoML ที่น่าสนใจ
- 6. AutoML ด้วย FLAML
- 7. AutoML ด้วย H2O
- 8. Cloud AutoML
- 9. AutoML กับ MLOps ต่างกันอย่างไร
- 10. ตัวอย่าง AutoML Pipeline
- 11. Metric สำคัญมากกว่า "เลือกโมเดลที่คะแนนสูงสุด"
- 12. AutoML ไม่ได้แก้ Data Leakage ให้เสมอไป
- 13. ข้อดีของ AutoML
- 14. ข้อจำกัดของ AutoML
- 15. แนวทางใช้งาน AutoML ที่แนะนำ
- 16. ควรเลือก AutoML ตัวไหน
- 17. AutoML Architecture สำหรับ Production
- 18. สรุป
- References
#Automated Machine Learning (AutoML)
Automated Machine Learning หรือ AutoML คือแนวทางที่นำระบบอัตโนมัติมาช่วยในกระบวนการสร้างโมเดล Machine Learning ตั้งแต่การเตรียมข้อมูล การเลือกอัลกอริทึม การปรับ Hyperparameter การประเมินโมเดล ไปจนถึงบางแพลตฟอร์มที่สามารถช่วยนำโมเดลไป Deploy ได้
แนวคิดสำคัญของ AutoML คือ
ลดงานที่ต้องทดลองซ้ำ ๆ ของ Data Scientist และ Machine Learning Engineer เพื่อให้สามารถสร้าง Baseline หรือค้นหาโมเดลที่มีประสิทธิภาพได้รวดเร็วขึ้น
AutoML ไม่ได้หมายความว่าไม่จำเป็นต้องมีความรู้ด้าน Machine Learning อีกต่อไป เพราะผู้พัฒนายังต้องตัดสินใจเรื่องคุณภาพข้อมูล Metric, Data Leakage, Bias, Explainability และความเหมาะสมของโมเดลกับโจทย์ธุรกิจ
#1. ปัญหาของการสร้าง Machine Learning แบบดั้งเดิม
การสร้างโมเดล ML โดยทั่วไปอาจประกอบด้วยขั้นตอนดังนี้
Raw Data
|
v
Data Cleaning
|
v
Feature Engineering
|
v
Model Selection
|
v
Hyperparameter Tuning
|
v
Model Evaluation
|
v
Deployment
แต่ละขั้นตอนอาจต้องทดลองหลายรอบ เช่น
- Random Forest หรือ XGBoost เหมาะกว่ากัน
- ควรกำหนด
max_depthเท่าไร - ควรใช้ Standardization หรือไม่
- ควรจัดการ Missing Value อย่างไร
- Classification ควรใช้ Accuracy, F1 หรือ ROC-AUC
- โมเดลที่ดีที่สุดบน Validation Set ยังทำงานดีบนข้อมูลจริงหรือไม่
AutoML ถูกพัฒนาขึ้นเพื่อทำให้ขั้นตอนที่สามารถทำซ้ำได้เหล่านี้เป็นอัตโนมัติมากขึ้น
#2. AutoML ทำอะไรให้อัตโนมัติได้บ้าง
ระบบ AutoML แต่ละตัวมีความสามารถแตกต่างกัน แต่โดยทั่วไปจะครอบคลุมงานต่อไปนี้
#2.1 Data Preprocessing
เช่น
- Missing Value Imputation
- Encoding ข้อมูลประเภท Category
- Normalization / Standardization
- ตรวจสอบชนิดข้อมูล
- Feature Transformation
ตัวอย่างเช่น AutoGluon สามารถรับข้อมูลตารางแบบค่อนข้างดิบและจัดการ preprocessing หลายส่วนให้โดยอัตโนมัติ
#2.2 Feature Engineering
AutoML บางระบบสามารถสร้างหรือคัดเลือก Feature เช่น
Original Features
|
+--> Encoding
|
+--> Feature Selection
|
+--> Feature Transformation
|
+--> Generated Features
อย่างไรก็ตาม ความรู้เชิง Domain ยังมีความสำคัญมาก เพราะระบบอัตโนมัติอาจไม่เข้าใจความหมายทางธุรกิจหรือข้อจำกัดของข้อมูลทั้งหมด
#2.3 Algorithm Selection
AutoML สามารถทดลองหลาย Algorithm เช่น
Logistic Regression
Random Forest
Extra Trees
XGBoost
LightGBM
CatBoost
Neural Network
จากนั้นเปรียบเทียบผลด้วย Metric ที่กำหนด
#2.4 Hyperparameter Optimization
ตัวอย่าง Hyperparameter ที่ระบบอาจค้นหาให้
Random Forest
├── n_estimators
├── max_depth
├── min_samples_split
└── max_features
XGBoost
├── learning_rate
├── max_depth
├── n_estimators
├── subsample
└── colsample_bytree
เทคนิคที่ใช้ในการค้นหาอาจรวมถึง
- Grid Search
- Random Search
- Bayesian Optimization
- Evolutionary Search
- Cost-aware Optimization
- Early Stopping
FLAML เน้นการค้นหาโมเดลและ Hyperparameter อย่างประหยัดทรัพยากร โดยสามารถกำหนด time_budget ได้
#3. Workflow ของ AutoML
Workflow แบบง่ายสามารถเขียนได้ดังนี้
flowchart LR
A[Dataset] --> B[Data Validation]
B --> C[Preprocessing]
C --> D[Feature Engineering]
D --> E[Model Search]
E --> F[Hyperparameter Tuning]
F --> G[Evaluation]
G --> H{Best Model?}
H -->|No| E
H -->|Yes| I[Model Artifact]
I --> J[Deployment]
J --> K[Monitoring]
ในระบบ Production ควรเพิ่ม
- Experiment Tracking
- Model Registry
- Data Validation
- Model Monitoring
- Drift Detection
- Retraining Pipeline
ทำให้ AutoML สามารถทำงานร่วมกับแนวคิด MLOps ได้โดยตรง
#4. ประเภทของงานที่ AutoML รองรับ
AutoML สมัยใหม่รองรับหลายประเภทงาน เช่น
| งาน | ตัวอย่าง |
|---|---|
| Classification | Spam Detection |
| Regression | House Price Prediction |
| Time-series Forecasting | Sales Forecast |
| Ranking | Recommendation Ranking |
| NLP | Text Classification |
| Computer Vision | Image Classification |
| Multimodal | Tabular + Text + Image |
ความสามารถจริงขึ้นอยู่กับแต่ละ Framework หรือ Cloud Platform
#5. เครื่องมือ AutoML ที่น่าสนใจ
#AutoGluon
AutoGluon เป็น Open-source AutoML Framework ที่เน้นความง่ายและประสิทธิภาพ โดยเฉพาะข้อมูลแบบ Tabular
ตัวอย่าง
pip install autogluon.tabular
from autogluon.tabular import TabularPredictor
predictor = TabularPredictor(
label="target"
).fit(
train_data="train.csv"
)
predictions = predictor.predict("test.csv")
AutoGluon สามารถ
- ตรวจสอบประเภทของปัญหา
- ทำ Feature Processing
- Train หลายโมเดล
- ทำ Bagging / Stacking
- Ensemble โมเดล
- สร้าง Leaderboard
ดูผลแต่ละโมเดลได้ด้วย
print(predictor.leaderboard())
#6. AutoML ด้วย FLAML
FLAML เป็น Library จาก Microsoft Research ecosystem ที่เน้น Fast and Lightweight AutoML
ติดตั้ง
pip install "flaml[automl]"
ตัวอย่าง Classification
from flaml import AutoML
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
X, y = load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(
X,
y,
test_size=0.2,
random_state=42
)
automl = AutoML()
automl.fit(
X_train=X_train,
y_train=y_train,
task="classification",
metric="accuracy",
time_budget=60
)
prediction = automl.predict(X_test)
print(automl.model.estimator)
จุดเด่นของ FLAML คือสามารถกำหนดเวลาในการค้นหา เช่น
time_budget=60
หมายถึงให้ระบบค้นหาโมเดลภายในเวลาประมาณ 60 วินาที
จึงเหมาะกับการสร้าง Baseline ที่รวดเร็วและการควบคุม Computational Budget
#7. AutoML ด้วย H2O
H2O AutoML เป็นอีก Framework ที่มีความ成熟และรองรับทั้ง Python และ R
ติดตั้ง
pip install h2o
ตัวอย่าง
import h2o
from h2o.automl import H2OAutoML
h2o.init()
data = h2o.import_file("train.csv")
train, test = data.split_frame(
ratios=[0.8],
seed=42
)
x = [
column
for column in train.columns
if column != "target"
]
y = "target"
automl = H2OAutoML(
max_models=20,
seed=42
)
automl.train(
x=x,
y=y,
training_frame=train
)
print(automl.leaderboard)
H2O AutoML สามารถสร้าง Candidate Models จำนวนมากและสรุปผลใน Leaderboard ได้
#8. Cloud AutoML
นอกจาก Open-source Framework แล้ว Cloud Provider รายใหญ่ยังมี AutoML Service
#Amazon SageMaker Autopilot
SageMaker Autopilot สามารถช่วย
Dataset
↓
Data Analysis
↓
Preprocessing
↓
Algorithm Selection
↓
Hyperparameter Optimization
↓
Training
↓
Evaluation
↓
Best Candidate Model
AWS ระบุว่า Autopilot สามารถทำงานในลักษณะ AutoML Job เพื่อช่วย automate model development lifecycle หลายส่วน
#Azure Automated Machine Learning
Azure Machine Learning มี Automated ML ที่สามารถสร้าง Training Job และทดลองหลาย Algorithm/Hyperparameter ได้
Workflow โดยย่อ
Azure ML Workspace
|
v
Dataset / Data Asset
|
v
Automated ML Job
|
v
Multiple Training Runs
|
v
Evaluation
|
v
Recommended Model
|
v
Deployment
รองรับทั้ง
- No-code ผ่าน Azure ML Studio
- Code-first ผ่าน SDK / CLI
#9. AutoML กับ MLOps ต่างกันอย่างไร
สองแนวคิดนี้เกี่ยวข้องกัน แต่ไม่เหมือนกัน
| AutoML | MLOps |
|---|---|
| เน้นการสร้างโมเดลอัตโนมัติ | เน้น Lifecycle ของ ML System |
| Model Selection | CI/CD |
| Hyperparameter Tuning | Model Registry |
| Feature Processing | Deployment |
| Model Evaluation | Monitoring |
| Ensemble | Retraining |
แนวทางที่เหมาะกับ Production คือ
MLOps Pipeline
|
+------------+------------+
| |
v v
AutoML Deployment
| |
v v
Best Model --------------> Model Registry
|
v
Serving
|
v
Monitoring
|
v
Retraining
ดังนั้น AutoML สามารถเป็น Component หนึ่งของ MLOps Pipeline ได้
#10. ตัวอย่าง AutoML Pipeline
สมมติว่าต้องการสร้างระบบทำนาย Customer Churn
customer.csv
|
v
Data Validation
|
v
Train / Validation / Test
|
v
AutoML
|
+--> Logistic Regression
|
+--> Random Forest
|
+--> XGBoost
|
+--> LightGBM
|
+--> Ensemble
|
v
Leaderboard
|
v
Best Candidate
|
v
Independent Test Set
|
v
Model Registry
|
v
REST API
#11. Metric สำคัญมากกว่า "เลือกโมเดลที่คะแนนสูงสุด"
การตั้ง Metric ผิดสามารถทำให้ AutoML เลือกโมเดลที่ไม่เหมาะกับโจทย์จริงได้
ตัวอย่างข้อมูล Fraud Detection
Fraud = 1%
Not Fraud = 99%
โมเดลที่ทำนายทุกตัวอย่างว่า "Not Fraud" จะได้ Accuracy ใกล้ 99%
แต่แทบไม่มีประโยชน์ในการตรวจ Fraud
ดังนั้นอาจต้องพิจารณา
- Precision
- Recall
- F1-score
- PR-AUC
- ROC-AUC
- Cost-sensitive Metric
แทนการดู Accuracy อย่างเดียว
#12. AutoML ไม่ได้แก้ Data Leakage ให้เสมอไป
ตัวอย่างข้อมูล
customer_id
age
income
cancel_date
target_churn
ถ้า cancel_date เกิดขึ้นหลังเหตุการณ์ Churn แต่ถูกนำไปใช้ Train โมเดล
Future Information
|
v
Training Dataset
|
v
Data Leakage
|
v
Artificially High Accuracy
AutoML อาจได้โมเดลที่คะแนนสูงมาก แต่ไม่สามารถใช้จริงได้
ดังนั้นผู้พัฒนายังต้องออกแบบ Dataset อย่างถูกต้อง
#13. ข้อดีของ AutoML
#ลดเวลาในการทดลอง
แทนที่จะ Train โมเดลด้วยตนเองหลายสิบชุด AutoML สามารถจัดการ Search Space ให้ได้
#สร้าง Baseline ได้เร็ว
เหมาะสำหรับตอบคำถามว่า
Dataset นี้สามารถทำ Machine Learning ได้ดีประมาณไหน
#ลด Boilerplate Code
ผู้พัฒนาสามารถมุ่งไปที่
- Business Understanding
- Data Quality
- Feature Definition
- Evaluation
- Deployment
#ช่วยค้นหาโมเดลที่อาจไม่ได้นึกถึง
AutoML สามารถทดลอง Algorithm และ Ensemble หลายรูปแบบ
#14. ข้อจำกัดของ AutoML
#ใช้ Compute สูง
การทดลองหลายโมเดลและ Hyperparameter อาจใช้ CPU/GPU จำนวนมาก
#ไม่เข้าใจ Business Context ทั้งหมด
โมเดลที่ Metric สูงที่สุดอาจไม่ใช่โมเดลที่เหมาะที่สุดใน Production
#Explainability
Ensemble ขนาดใหญ่อาจอธิบายได้ยากกว่าโมเดลขนาดเล็ก
#Latency
โมเดลที่ดีที่สุดด้าน Accuracy อาจใช้เวลาทำนายมากเกินไป
#Cost
โดยเฉพาะ Cloud AutoML ถ้าปล่อยให้ Search เป็นเวลานานอาจมีค่าใช้จ่ายสูง
#15. แนวทางใช้งาน AutoML ที่แนะนำ
AutoML ควรใช้เป็น Machine Learning Accelerator ไม่ใช่ Black Box
แนวทางที่เหมาะสมคือ
1. Define Business Problem
↓
2. Define Target
↓
3. Check Data Leakage
↓
4. Split Dataset Correctly
↓
5. Define Metric
↓
6. Run AutoML
↓
7. Analyze Leaderboard
↓
8. Evaluate on Independent Test Set
↓
9. Explain Model
↓
10. Optimize Latency / Cost
↓
11. Deploy
↓
12. Monitor
#16. ควรเลือก AutoML ตัวไหน
| เครื่องมือ | เหมาะกับ |
|---|---|
| AutoGluon | ต้องการ Accuracy สูงและใช้งานกับ Tabular Data ได้ง่าย |
| FLAML | ต้องการ AutoML ที่เบา เร็ว และควบคุมเวลา/งบประมาณ |
| H2O AutoML | งาน Enterprise และ Workflow ที่ใช้ H2O |
| SageMaker Autopilot | Infrastructure อยู่บน AWS |
| Azure Automated ML | Infrastructure อยู่บน Microsoft Azure |
ไม่ควรเลือกจากชื่อ Framework เพียงอย่างเดียว แต่ควรพิจารณา
Data Type
+
Accuracy
+
Training Cost
+
Inference Latency
+
Explainability
+
Cloud / Infrastructure
+
Team Skill
#17. AutoML Architecture สำหรับ Production
ตัวอย่าง Architecture
flowchart TB
A[Data Source] --> B[Data Validation]
B --> C[Feature Pipeline]
C --> D[AutoML Training]
D --> E[Experiment Tracking]
D --> F[Model Evaluation]
F --> G{Quality Gate}
G -->|Pass| H[Model Registry]
G -->|Fail| D
H --> I[CI/CD]
I --> J[Model Serving]
J --> K[Monitoring]
K --> L[Drift Detection]
L --> M{Retrain?}
M -->|Yes| D
AutoML จึงทำงานได้ดีเมื่อเชื่อมกับระบบ MLOps มากกว่าการใช้งานเป็นเครื่องมือ Train Model แบบแยกส่วน
#18. สรุป
Automated Machine Learning (AutoML) คือการนำ Automation มาช่วยในกระบวนการสร้างโมเดล Machine Learning เช่น
Preprocessing
+
Feature Engineering
+
Model Selection
+
Hyperparameter Optimization
+
Evaluation
+
Ensemble
ข้อดีสำคัญคือช่วยลดเวลาในการทดลองและสร้าง Baseline ได้เร็ว
อย่างไรก็ตาม AutoML ไม่ได้แทนที่ Data Scientist หรือ Machine Learning Engineer เพราะยังต้องใช้ความรู้ในการ
- ออกแบบ Dataset
- ป้องกัน Data Leakage
- เลือก Metric
- ตรวจสอบ Bias
- วิเคราะห์ Explainability
- ประเมิน Cost และ Latency
- วางระบบ Deployment และ Monitoring
แนวคิดที่เหมาะสมที่สุดจึงไม่ใช่
AutoML = ไม่ต้องรู้ Machine Learning
แต่คือ
AutoML = Automation for Machine Learning Engineering
เมื่อใช้งานร่วมกับ MLOps จะช่วยสร้าง Workflow ตั้งแต่ Experiment ไปจนถึง Production ได้รวดเร็วและเป็นระบบมากขึ้น
#References
- AutoGluon Documentation — https://auto.gluon.ai/
- FLAML Documentation — https://microsoft.github.io/FLAML/
- H2O AutoML Documentation — https://docs.h2o.ai/h2o/latest-stable/h2o-docs/automl.html
- Amazon SageMaker Autopilot — https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-automate-model-development.html
- Azure Automated Machine Learning — https://learn.microsoft.com/azure/machine-learning/concept-automated-ml