Series: Machine Learning Fundamentals – Bài 18
Hai Data Scientist cùng sử dụng Random Forest trên cùng một bộ dữ liệu.
Người thứ nhất đạt Accuracy 82%.
Người thứ hai đạt 91%.
Nếu thuật toán giống nhau và dữ liệu giống nhau, tại sao kết quả lại có thể khác biệt đến vậy?
Một trong những nguyên nhân quan trọng nằm ở Hyperparameter.
Machine Learning không chỉ là câu chuyện chọn thuật toán nào, mà còn là câu chuyện cấu hình thuật toán đó như thế nào.
Hyperparameter là gì?
Hyperparameter là những giá trị được thiết lập trước hoặc bên ngoài quá trình mô hình học trực tiếp từ dữ liệu.
Ví dụ với Random Forest:
n_estimators: số lượng cây.max_depth: độ sâu tối đa của cây.min_samples_split: số mẫu tối thiểu để tách một node.max_features: số Feature được xem xét khi chia node.
Thay đổi những giá trị này có thể làm thay đổi đáng kể cách mô hình học.
Có thể hình dung:
Data
↓
Algorithm + Hyperparameters
↓
Training
↓
Trained Model
↓
Prediction
Cùng một Algorithm nhưng Hyperparameter khác nhau có thể tạo ra những mô hình rất khác nhau.
Parameter và Hyperparameter khác nhau thế nào?
Đây là hai khái niệm rất dễ nhầm lẫn.
Parameter là giá trị mô hình tự học từ dữ liệu.
Hyperparameter là giá trị chúng ta sử dụng để kiểm soát quá trình học.
Ví dụ với Linear Regression:
y = w₁x₁ + w₂x₂ + b
Trong đó:
w₁,w₂vàblà Parameters.- Mô hình tìm các giá trị này trong quá trình Training.
Ngược lại, nếu chúng ta sử dụng một thuật toán có các thiết lập như Learning Rate hay độ phức tạp của mô hình, những giá trị cấu hình đó có thể là Hyperparameters.
| Parameter | Hyperparameter |
|---|---|
| Mô hình học từ dữ liệu | Được cấu hình cho quá trình học |
| Thay đổi trong Training | Thường xác định trước mỗi lần Training |
| Ví dụ: Weight, Bias | Ví dụ: Learning Rate, Max Depth |
Một số Hyperparameter phổ biến
Mỗi thuật toán có một tập Hyperparameter riêng.
Decision Tree
Một số Hyperparameter quan trọng:
max_depthmin_samples_splitmin_samples_leafcriterion
Ví dụ, nếu max_depth quá lớn, cây có thể trở nên quá phức tạp và dẫn đến Overfitting.
Nếu max_depth quá nhỏ, mô hình có thể bị Underfitting.
Random Forest
Random Forest có thể điều chỉnh:
- Số lượng cây.
- Độ sâu mỗi cây.
- Số Feature được lựa chọn.
- Số mẫu tối thiểu tại mỗi node.
Ví dụ:
Model A
100 Trees
Max Depth = 5
Model B
500 Trees
Max Depth = 20
Dù đều là Random Forest, hai mô hình có thể có hiệu suất, thời gian Training và khả năng tổng quát hóa khác nhau đáng kể.
Neural Network
Với Neural Network, số lượng Hyperparameter còn lớn hơn:
- Learning Rate.
- Batch Size.
- Number of Layers.
- Number of Neurons.
- Dropout Rate.
- Optimizer.
- Number of Epochs.
Đây cũng là lý do việc tối ưu Deep Learning có thể rất tốn tài nguyên tính toán.
Hyperparameter Tuning là gì?
Hyperparameter Tuning là quá trình tìm kiếm tổ hợp Hyperparameter giúp mô hình đạt hiệu suất tốt nhất theo một tiêu chí đánh giá nhất định.
Ví dụ, chúng ta muốn thử:
max_depth:
3, 5, 10
n_estimators:
100, 200, 500
Ta có:
3 × 3 = 9 tổ hợp.
Mỗi tổ hợp có thể được huấn luyện và đánh giá để tìm ra cấu hình phù hợp nhất.
Nhưng khi số Hyperparameter tăng lên, số lượng tổ hợp có thể tăng cực kỳ nhanh.
Đây được gọi là vấn đề Search Space.
Grid Search
Một trong những phương pháp đơn giản nhất là Grid Search.
Giả sử:
Learning Rate
0.001
0.01
0.1
Max Depth
5
10
20
Grid Search sẽ thử:
0.001 + 5
0.001 + 10
0.001 + 20
0.01 + 5
0.01 + 10
0.01 + 20
0.1 + 5
0.1 + 10
0.1 + 20
Tổng cộng 9 cấu hình.
Sau đó hệ thống chọn cấu hình có kết quả tốt nhất.
Ưu điểm
Grid Search có hệ thống và dễ hiểu.
Nhược điểm
Số lượng tổ hợp tăng rất nhanh khi có nhiều Hyperparameter.
Random Search
Thay vì thử tất cả tổ hợp, Random Search lấy mẫu ngẫu nhiên từ không gian Hyperparameter.
Ví dụ, Search Space có 10.000 cấu hình.
Thay vì huấn luyện cả 10.000 mô hình, chúng ta có thể chỉ thử 100 cấu hình được lấy ngẫu nhiên.
10.000 configurations
↓
Random Sampling
↓
100 configurations
↓
Model Evaluation
Điều này có thể tiết kiệm đáng kể tài nguyên tính toán.
Hyperparameter Tuning cần Cross Validation
Có một vấn đề.
Giả sử chúng ta thử 100 cấu hình và liên tục chọn cấu hình hoạt động tốt nhất trên cùng một Test Set.
Lúc này Test Set không còn thực sự độc lập nữa.
Chúng ta đã gián tiếp tối ưu mô hình theo Test Set.
Một quy trình tốt hơn là:
Dataset
↓
Train Set ───────────── Test Set
↓ ↓
Cross Validation Giữ nguyên
↓
Hyperparameter Tuning
↓
Best Hyperparameters
↓
Final Model
↓
Đánh giá một lần trên Test Set
Test Set chỉ nên được sử dụng ở bước đánh giá cuối cùng.
Đây cũng chính là lý do Cross Validation có vai trò quan trọng trong Hyperparameter Tuning.
Hyperparameter và Overfitting
Hyperparameter ảnh hưởng trực tiếp đến độ phức tạp của mô hình.
Ví dụ với Decision Tree:
max_depth = 2
→ Model quá đơn giản
→ Có nguy cơ Underfitting
max_depth = 100
→ Model rất phức tạp
→ Có nguy cơ Overfitting
Mục tiêu không phải chọn giá trị lớn nhất.
Mà là tìm giá trị giúp mô hình đạt được sự cân bằng giữa:
Khả năng học dữ liệu ↔ Khả năng tổng quát hóa
Đây chính là mối liên hệ giữa Hyperparameter Tuning và bài toán Bias–Variance Trade-off.
Có phải cứ Tuning nhiều là mô hình càng tốt?
Không.
Đây là một sai lầm khá phổ biến.
Nếu Feature không tốt hoặc dữ liệu chứa quá nhiều Noise, việc thử hàng nghìn Hyperparameter khác nhau chưa chắc tạo ra cải thiện đáng kể.
Một pipeline Machine Learning tốt cần kết hợp:
Data Cleaning
↓
Feature Engineering
↓
Feature Selection
↓
Model Selection
↓
Hyperparameter Tuning
↓
Cross Validation
↓
Final Evaluation
Hyperparameter Tuning không thể thay thế cho dữ liệu chất lượng.
Default Hyperparameter có dùng được không?
Có.
Các thư viện Machine Learning hiện đại thường cung cấp những giá trị mặc định tương đối hợp lý.
Trong giai đoạn đầu của dự án, sử dụng Default Hyperparameters giúp chúng ta nhanh chóng tạo một Baseline Model.
Sau đó mới tiến hành Tuning để xác định:
Việc tối ưu Hyperparameter thực sự cải thiện mô hình bao nhiêu?
Cách tiếp cận này hiệu quả hơn việc ngay lập tức dành hàng giờ để tìm cấu hình tối ưu.
Hyperparameter Tuning trong dự án thực tế
Một workflow hợp lý có thể gồm:
Bước 1: Xây dựng Baseline Model.
Bước 2: Chọn Evaluation Metric phù hợp.
Bước 3: Xác định những Hyperparameter quan trọng.
Bước 4: Xác định Search Space.
Bước 5: Sử dụng Cross Validation.
Bước 6: Thử Grid Search hoặc Random Search.
Bước 7: Chọn cấu hình tốt nhất.
Bước 8: Huấn luyện Final Model.
Bước 9: Đánh giá một lần trên Test Set.
Điều quan trọng là Hyperparameter được lựa chọn dựa trên Validation Performance, không phải Test Performance.
Kết luận
Hyperparameter là những thiết lập kiểm soát cách một thuật toán Machine Learning học từ dữ liệu.
Hai mô hình sử dụng cùng một thuật toán chưa chắc hoạt động giống nhau nếu Hyperparameter của chúng khác nhau.
Các kỹ thuật như Grid Search, Random Search và Cross Validation giúp Data Scientist tìm kiếm cấu hình phù hợp một cách có hệ thống.
Nhưng Hyperparameter Tuning không phải “phép màu”.
Một mô hình tốt vẫn bắt đầu từ:
Dữ liệu tốt → Feature tốt → Mô hình phù hợp → Tuning hợp lý → Đánh giá đúng cách.
Bài tiếp theo
Trong bài tiếp theo, MCNA Technology School sẽ đi sâu vào một trong những thuật toán nền tảng nhất:
Decision Tree là gì? Vì sao một chuỗi câu hỏi Yes/No có thể trở thành mô hình Machine Learning?
Từ đây series có thể bắt đầu chuyển từ các khái niệm nền tảng sang từng thuật toán Machine Learning cụ thể.
Khóa học tại MCNA Technology School
Nếu bạn muốn thực hành xây dựng, đánh giá và tối ưu các mô hình Machine Learning bằng Python trên dữ liệu thực tế, có thể tham khảo:
🤖 Combo 5 khóa AI & Power BI:
Xem khóa học AI & Power BI
🐍 Combo Python:
Xem khóa học Python
Tác giả: Bùi Đình Tuyển – Data Analyst tại MCNA Technology School
📞 Hotline: 0939.866.825 (Mr. Minh Khang)
🌐 Website: MCNA Technology School
📍 Hà Nội: 30 Trung Liệt, Đống Đa | Liền kề 44B TT2 Văn Quán, Hà Đông
📍 TP.HCM: 50B Phan Tây Hồ, Cầu Kiệu
ALT ảnh đề xuất: Hyperparameter Tuning trong Machine Learning với Grid Search, Random Search và Cross Validation.

