Cơ bản về Machine Learning (ML Fundamentals)

Mục lục

1. Tổng quan

Các khái niệm và thuật ngữ cốt lõi về ML dành cho bài thi AWS MLA.

2. Learning Types

2.1 Học có giám sát (Cần Label)

  • Phân loại (Classification) - Dự đoán các nhãn rời rạc (nhị phân, đa lớp)
  • Hồi quy (Regression) - Dự đoán các giá trị liên tục
  • Yêu cầu phải có dữ liệu huấn luyện đã được gán nhãn (labeled data)

2.2 Học không giám sát (Ko cần lable)

  • Phân cụm (Clustering) - Nhóm các điểm dữ liệu có đặc điểm giống nhau lại (K-means, DBSCAN)
  • Giảm chiều dữ liệu (Dimensionality Reduction) - PCA, t-SNE
  • Phát hiện bất thường (Anomaly Detection) - Xác định các điểm dữ liệu dị biệt (outliers)
  • Không yêu cầu dữ liệu phải được gán nhãn

2.3 Học bán giám sát (Semi-Supervised Learning)

  • Kết hợp một tập dữ liệu gán nhãn nhỏ + một tập dữ liệu chưa gán nhãn khổng lồ
  • Tiết kiệm chi phí khi việc gán nhãn dữ liệu quá đắt đỏ

2.4 Học tăng cường (Reinforcement Learning)

  • Tác nhân (Agent) học thông qua cơ chế phần thưởng/hình phạt (rewards/penalties)
  • Use cases: Trò chơi điện tử, robot, bài toán tối ưu hóa

3. Các phương pháp Ensemble #important #exam-tip

Định nghĩa: Kết hợp nhiều mô hình lại với nhau để tạo ra một bộ dự đoán mạnh mẽ hơn bất kỳ mô hình riêng lẻ nào.

Nguyên lý cốt lõi: “Trí tuệ đám đông” - các mô hình đa dạng sẽ mắc những lỗi khác nhau, việc tính trung bình sẽ giúp giảm thiểu sai số tổng thể.

3.1 Bagging (Bootstrap Aggregating) #core

Cơ chế: Huấn luyện nhiều mô hình song song trên các tập con dữ liệu ngẫu nhiên khác nhau, sau đó lấy trung bình các dự đoán.

Cách hoạt động:

  1. Tạo ra nhiều mẫu bootstrap (lấy mẫu ngẫu nhiên có hoàn lại - random sampling with replacement) từ dữ liệu huấn luyện
  2. Train các mô hình riêng biệt trên từng mẫu (thường dùng chung một thuật toán, chỉ khác dữ liệu)
  3. Tổng hợp kết quả dự đoán:
    • Phân loại (Classification): Bầu chọn theo số đông (Majority vote)
    • Hồi quy (Regression): Lấy trung bình cộng các dự đoán

Đặc điểm chính:

  • Huấn luyện song song - Các mô hình được train độc lập với nhau
  • Giảm phương sai (Reduces variance) - Việc lấy trung bình giúp giảm overfitting
  • Hoạt động tốt nhất với: Các mô hình có phương sai cao (như các cây quyết định sâu - deep decision trees)
  • Không giúp giảm độ chệch (bias) - Nếu mô hình cơ sở bị thiên lệch (biased), việc lấy trung bình không giải quyết được vấn đề này

Thuật toán tiêu biểu: Random Forest

  • Bagging áp dụng cho các cây quyết định (decision trees)
  • Bổ sung thêm tính ngẫu nhiên: Mỗi cây chỉ được nhìn thấy một tập con ngẫu nhiên các features
  • Kết quả: Tạo ra các cây đa dạng, khi lấy trung bình sẽ cho ra dự đoán cực kỳ ổn định (robust)

Ưu điểm:

  • ✅ Giảm overfitting (variance reduction)
  • ✅ Huấn luyện song song (chạy rất nhanh trên máy nhiều cores)
  • ✅ Xử lý tốt các điểm dị biệt (outliers) (việc lấy trung bình làm giảm tác động của chúng)
  • ✅ Ước lượng lỗi out-of-bag (như một tập validation miễn phí)

Nhược điểm:

  • ❌ Không làm giảm bias (không thể khắc phục lỗi underfitting)
  • ❌ Kém khả năng diễn giải (do là một tập hợp của quá nhiều mô hình)
  • ❌ Tốn bộ nhớ (phải lưu trữ nhiều mô hình cùng lúc)

Khi nào nên dùng: #exam-tip

  • Mô hình đang bị overfitting (bài toán high variance)
  • Sở hữu các mô hình cơ sở (base learners) có phương sai cao (ví dụ: cây quá sâu)
  • Cần sự ổn định và độ tin cậy cao
  • Có thể huấn luyện song song (có đủ tài nguyên máy tính)

3.2 Boosting #core #important

Cơ chế: Huấn luyện các mô hình một cách tuần tự (sequentially), mỗi mô hình phía sau sẽ tập trung vào việc sửa các lỗi của mô hình phía trước.

Cách hoạt động:

  1. Train mô hình đầu tiên trên dữ liệu gốc
  2. Xác định các mẫu bị phân loại sai / dự đoán kém
  3. Train mô hình thứ hai, gán trọng số cao hơn cho các lỗi từ mô hình thứ nhất
  4. Lặp lại: Mỗi mô hình mới đều tập trung khắc phục sai lầm của mô hình liền trước
  5. Tổng hợp dự đoán: Tổng có trọng số (các mô hình tốt hơn sẽ có trọng số cao hơn)

Đặc điểm chính:

  • Huấn luyện tuần tự - Mô hình này train xong mới đến mô hình khác
  • Giảm cả bias LẪN variance - Khắc phục cả underfitting và overfitting
  • Hoạt động tốt nhất với: Các mô hình học yếu (weak learners - như cây quyết định nông)
  • Tính thích ứng (Adaptive) - Mỗi mô hình học từ sai lầm của các mô hình trước

Các thuật toán Boosting phổ biến:

AdaBoost (Adaptive Boosting)

  • Đánh lại trọng số mẫu (Reweights samples): Tăng trọng số cho các mẫu bị phân loại sai
  • Trọng số mô hình: Các mô hình tốt hơn sẽ đóng góp nhiều trọng số hơn vào ensemble
  • Điểm dừng: Số lượng mô hình cố định hoặc khi đạt độ chính xác hoàn hảo
  • Rất nhạy cảm với outliers (sẽ gán cho chúng trọng số rất cao)

Gradient Boosting #exam-tip

  • Khớp với phần dư (Fits residuals): Mỗi mô hình sẽ dự đoán sai số (phần dư - residuals) của mô hình trước đó
  • Gradient descent: Tối ưu hóa hàm mất mát (loss function) bằng cách thêm các mô hình vào
  • Linh hoạt hơn: Có thể tối ưu hóa bất kỳ hàm mất mát nào có thể vi phân được
  • Ít nhạy cảm với outliers hơn so với AdaBoost

XGBoost (Extreme Gradient Boosting) #important

  • Thuật toán tích hợp sẵn của AWS - Quan trọng nhất cho bài thi!
  • Phiên bản Gradient boosting nâng cao với:
    • Chuẩn hóa (Regularization L1/L2) để ngăn chặn overfitting
    • Xây dựng cây song song (nhanh hơn gradient boosting tiêu chuẩn)
    • Tự động xử lý dữ liệu bị thiếu (missing values)
    • Cắt tỉa cây (Tree pruning) (loại bỏ các nhánh không giúp cải thiện hiệu năng)
  • Sự lựa chọn mặc định cho dữ liệu dạng bảng (tabular data) trên AWS SageMaker
  • Thường xuyên vô địch các cuộc thi trên Kaggle

Ưu điểm:

  • ✅ Độ chính xác cực cao (thường là tốt nhất)
  • ✅ Giảm cả bias và variance
  • ✅ Xử lý tốt các mối quan hệ phức tạp
  • ✅ Tích hợp sẵn tính năng đánh giá độ quan trọng của feature (Feature importance)

Nhược điểm:

  • ❌ Huấn luyện tuần tự (chậm hơn bagging)
  • ❌ Dễ bị overfitting nếu không được tinh chỉnh đúng cách (nên dùng early stopping)
  • ❌ Nhạy cảm với các hyperparameters (yêu cầu phải tuning)
  • ❌ Có thể overfit nếu dữ liệu quá nhiễu (đặc biệt là AdaBoost)

Khi nào nên dùng: #exam-tip

  • Cần độ chính xác cao nhất có thể
  • Sở hữu các mô hình học yếu (cây nông - shallow trees hoạt động rất tốt)
  • Muốn giảm cả bias và variance
  • Dữ liệu có cấu trúc / dạng bảng (XGBoost tỏa sáng ở mảng này)
  • Có thời gian để hyperparameter tuning

3.3 So sánh Bagging vs Boosting #exam-tip

Yếu tố Bagging Boosting
Huấn luyện Song song (độc lập) Tuần tự (phụ thuộc nhau)
Mục tiêu Giảm phương sai (variance) Giảm bias VÀ variance
Gán trọng số Trọng số bằng nhau cho mọi mẫu Trọng số cao hơn cho các mẫu dự đoán sai
Base learners Phương sai cao (Cây sâu) Phương sai thấp (Cây nông/Gốc cây)
Tốc độ Nhanh (song song) Chậm hơn (tuần tự)
Nguy cơ Overfitting Thấp (nhờ lấy trung bình) Cao hơn (có thể overfit vào các lỗi)
Ví dụ thuật toán Random Forest XGBoost, AdaBoost, Gradient Boosting
Thuật toán trên AWS Random Forest (không tích hợp sẵn) XGBoost (tích hợp sẵn) #important

3.4 Khung quyết định cho bài thi #exam-tip

Chọn Bagging (Random Forest) khi:

  • Mô hình đang bị overfitting (vấn đề về high variance)
  • Cần huấn luyện song song (cần kết quả nhanh)
  • Cần sự ổn định và vững chắc (robustness)
  • dữ liệu nhiễu (noisy data) kèm theo outliers

Chọn Boosting (XGBoost) khi:

  • Cần độ chính xác cao nhất (yếu tố quan trọng nhất)
  • Mô hình đang bị underfitting (vấn đề về high bias)
  • Có dữ liệu dạng bảng / có cấu trúc (XGBoost làm vua ở đây)
  • Có thể chấp nhận thời gian huấn luyện tuần tự
  • Lựa chọn mặc định trên AWS SageMaker đối với tabular data

Các kịch bản bài thi quan trọng:

Tình huống Giải pháp Lý do
“Thuật toán tốt nhất cho phân loại dữ liệu bảng?” XGBoost Boosting, AWS built-in, độ chính xác cao nhất
“Mô hình bị overfitting, làm sao để giảm variance?” Bagging/Random Forest Việc lấy trung bình giúp giảm variance
“Mô hình bị underfitting, làm sao để giảm bias?” Boosting/XGBoost Việc học tuần tự giúp giảm bias
“Cần huấn luyện song song siêu nhanh?” Bagging Các mô hình được train độc lập
“Giải thi đấu Kaggle trên dữ liệu có cấu trúc?” XGBoost Trùm ăn giải Kaggle
“Dữ liệu nhiễu với nhiều outliers?” Bagging Lấy trung bình làm lu mờ tác động của outliers

3.5 Stacking (Khái niệm bổ sung)

  • Kết hợp các loại mô hình hoàn toàn khác nhau (VD: XGBoost + Neural Net + SVM), sau đó dùng một mô hình khác để kết hợp các kết quả dự đoán của chúng. Phức tạp hơn bagging/boosting.
  • Rất hiếm khi bị hỏi trong bài thi

4. Các số đo Đánh giá Hiệu suất Mô hình (Model Performance Metrics)

4.1 Ma trận nhầm lẫn (Confusion Matrix) #core #exam-tip

Công cụ trực quan hóa hiệu suất của mô hình phân loại:

                Predicted (Dự đoán)
               Pos(C)    Neg(K)
Actual  Pos(C)   TP   |   FN
(Thực)  Neg(K)   FP   |   TN

Định nghĩa:

  • TP (True Positive - Dương tính thật): Dự đoán đúng là có (Positive)
  • TN (True Negative - Âm tính thật): Dự đoán đúng là không (Negative)
  • FP (False Positive - Dương tính giả): Dự đoán sai là có (Lỗi loại I)
  • FN (False Negative - Âm tính giả): Dự đoán sai là không (Lỗi loại II)

Ví dụ - Phát hiện gian lận:

                     Dự đoán Gian lận    Dự đoán Không Gian lận
Thực tế Gian lận         90 (TP)                 10 (FN)
Thực tế Không GL         5 (FP)                 895 (TN)
  • TP: Bắt đúng 90 giao dịch gian lận
  • FN: Bỏ lọt 10 giao dịch gian lận (Rất tệ!)
  • FP: 5 ca báo động nhầm (mang đi điều tra nhưng không phải gian lận)
  • TN: Nhận diện đúng 895 giao dịch hợp pháp

4.2 Các Metrics Phân loại (Classification Metrics) #exam-tip

Accuracy (Độ chính xác tổng thể)

Accuracy = (TP + TN) / (TP + TN + FP + FN)
  • Đo lường: Sự chính xác trên tổng thể
  • Khoảng giá trị: 0 đến 1 (1 = hoàn hảo)
  • Dùng khi: Các lớp (classes) cân bằng nhau
  • Tuyệt đối không dùng khi: Các lớp mất cân bằng (Ví dụ 99% dữ liệu là negative → chỉ cần đoán bừa toàn bộ là negative cũng đạt accuracy 99%)

Ví dụ từ ma trận trên:

  • Accuracy = (90 + 895) / (90 + 895 + 5 + 10) = 985/1000 = 0.985 = 98.5%

Precision (Độ chính xác của dự đoán Positive)

Precision = TP / (TP + FP)
  • Đo lường: Trong số tất cả những lần dự đoán là Positive, có bao nhiêu phần trăm là đúng thật?
  • Câu hỏi: Khi mô hình mạnh miệng hô “Positive!”, nó đáng tin đến mức nào?
  • Dùng khi: Lỗi False Positives (dương tính giả) gây hậu quả nghiêm trọng (phát hiện thư rác, chẩn đoán y khoa)
  • Sự đánh đổi: Precision cao thường đồng nghĩa với Recall thấp

Ví dụ: Precision = 90 / (90 + 5) = 90/95 = 0.947 = 94.7%

  • Khi mô hình báo cáo có gian lận, nó nói đúng 94.7% số lần.

Recall (Độ nhạy - Sensitivity, True Positive Rate)

Recall = TP / (TP + FN)
  • Đo lường: Trong tổng số ca Positive thực tế, mô hình tìm ra được bao nhiêu?
  • Câu hỏi: Có ca Positive nào bị lọt lưới không?
  • Dùng khi: Lỗi False Negatives (âm tính giả) gây hậu quả nghiêm trọng (phát hiện gian lận, tầm soát bệnh hiểm nghèo)
  • Sự đánh đổi: Recall cao thường đồng nghĩa với Precision thấp

Ví dụ: Recall = 90 / (90 + 10) = 90/100 = 0.90 = 90%

  • Mô hình tóm được 90% toàn bộ số ca gian lận (và để sổng mất 10%)

F1 Score

F1 = 2 × (Precision × Recall) / (Precision + Recall)
  • Đo lường: Trung bình điều hòa (Harmonic mean) giữa Precision và Recall
  • Khoảng giá trị: 0 đến 1 (1 = hoàn hảo)
  • Dùng khi: Cần một sự cân bằng hoàn hảo giữa Precision và Recall
  • Tốt nhất cho: Các tập dữ liệu mất cân bằng (Imbalanced datasets)

Ví dụ: F1 = 2 × (0.947 × 0.90) / (0.947 + 0.90) = 0.923

  • Số đo cân bằng: Hiệu suất đạt 92.3%

Sự đánh đổi giữa Precision và Recall #exam-tip

Tình huống Tối ưu hóa cho Lý do
Phát hiện thư rác Precision Không muốn ném email quan trọng vào thùng rác (FP giá quá đắt)
Phát hiện gian lận Recall Bắt buộc phải bắt được mọi gian lận (FN giá quá đắt)
Tầm soát bệnh Recall Không được bỏ sót bệnh nhân đang ủ bệnh (FN = chết người)
Gợi ý sản phẩm Precision Không muốn chọc điên người dùng bằng những gợi ý rác

Ngưỡng quyết định (Decision threshold):

  • Ngưỡng thấp hơn → Sẽ dự đoán nhiều Positive hơn → Recall tăng, Precision giảm
  • Ngưỡng cao hơn → Dự đoán ít Positive hơn (khắt khe hơn) → Precision tăng, Recall giảm

4.3 Đường cong ROC & AUC #important #exam-tip

Đường cong ROC (Receiver Operating Characteristic)

Công cụ trực quan thể hiện hiệu suất của bộ phân loại qua mọi ngưỡng quyết định (thresholds)

Trục tọa độ:

  • Trục X: False Positive Rate (FPR) = FP / (FP + TN)
  • Trục Y: True Positive Rate (TPR) = Recall = TP / (TP + FN)

Cách đọc:

  • Góc trên cùng bên trái = Hoàn hảo (TPR=1, FPR=0) - Tìm được mọi ca Positive, không có báo động nhầm
  • Đường chéo = Ngẫu nhiên (Cơ hội 50%) - Mô hình chả hơn gì trò tung đồng xu
  • Đường cong nằm TRÊN đường chéo = Tốt - Tốt hơn ngẫu nhiên
  • Đường cong nằm DƯỚI đường chéo = Tệ - Tệ hơn cả ngẫu nhiên (Hãy lật ngược lại dự đoán của mô hình!)

AUC (Area Under Curve - Diện tích dưới đường cong)

Khoảng giá trị AUC Score: 0 đến 1
  • AUC = 1.0: Classifier hoàn hảo
  • AUC = 0.9 - 0.99: Xuất sắc
  • AUC = 0.8 - 0.89: Tốt
  • AUC = 0.7 - 0.79: Khá
  • AUC = 0.5: Ngẫu nhiên (vô dụng)
  • AUC < 0.5: Tệ hơn ngẫu nhiên

Ưu điểm cốt lõi: Không phụ thuộc vào ngưỡng (threshold-independent) (đánh giá trên mọi thresholds)

Dùng khi:

  • Cần so sánh nhiều mô hình với nhau
  • Có sự mất cân bằng lớp
  • Quan tâm đến thứ hạng (ranking) (ví dụ: mô hình có chấm điểm ca gian lận cao hơn ca hợp pháp không?)

4.4 Đường cong Precision-Recall #exam-tip

Giải pháp thay thế cho đường cong ROC, đặc biệt dành riêng cho dữ liệu mất cân bằng

Trục tọa độ:

  • Trục X: Recall (Tỷ lệ True Positive)
  • Trục Y: Precision

Khi nào dùng đường cong P-R so với đường cong ROC:

Tình huống Nên dùng
Lớp cân bằng Đường cong ROC
Lớp mất cân bằng (VD: chỉ có 1% Positive) Đường cong P-R (thể hiện rõ hiệu suất trên lớp thiểu số hơn)
Quan tâm đến tỷ lệ False Positive Đường cong ROC
Quan tâm đến Precision của riêng nhóm Positive Đường cong P-R

Tại sao dùng P-R cho dữ liệu mất cân bằng?

  • ROC có thể mang lại ảo tưởng lạc quan thái quá khi lượng Negative quá áp đảo
  • Đường cong P-R tập trung soi xét thật kỹ hiệu suất trên lớp Positive
  • Ví dụ: Chỉ có 1% gian lận → P-R sẽ cho bạn biết mô hình có thực sự bắt được gian lận không, trong khi ROC vẫn sẽ đẹp long lanh chỉ bằng cách đoán mò mọi thứ là Negative.

Mẹo làm bài: #exam-tip

  • Dữ liệu mất cân bằng + Lớp thiểu số đóng vai trò quan trọng → Chọn Precision-Recall curve
  • Dữ liệu cân bằng hoặc cần đánh giá hiệu suất tổng thể → Chọn ROC-AUC

4.5 Các số đo Hồi quy (Regression Metrics) #important

RMSE (Root Mean Squared Error)

RMSE = √[(1/n) × Σ(y - ŷ)²]
  • Đơn vị (Units): Giống hệt biến mục tiêu (Ví dụ: USD nếu đang dự đoán giá nhà)
  • Cơ chế: Bình phương sai số → lấy trung bình → khai căn
  • Ý nghĩa: Độ lớn trung bình của sai số dự đoán
  • Độ nhạy: Phạt CỰC KỲ NẶNG các sai số lớn (do bị bình phương)
  • Dùng khi: Bạn cực kỳ ghét các sai số lớn

Ví dụ: Dự đoán giá nhà

  • Thực tế: $300K, Dự đoán: $320K → Sai số = $20K
  • Sai số bình phương = 400M → đóng góp cực đậm vào RMSE
  • Nếu RMSE = $25K → “Trung bình, các dự đoán đang bị lệch $25K”

MAE (Mean Absolute Error)

MAE = (1/n) × Σ|y - ŷ|
  • Đơn vị: Giống hệt biến mục tiêu
  • Cơ chế: Lấy giá trị tuyệt đối của sai số → lấy trung bình
  • Ý nghĩa: Sai số tuyệt đối trung bình
  • Độ nhạy: Đối xử công bằng với mọi sai số (tuyến tính)
  • Dùng khi: Dữ liệu có nhiều outliers, bạn cần một metric ổn định (robust)

Ví dụ: Dự đoán giá nhà

  • Thực tế: $300K, Dự đoán: $320K → Sai số = $20K
  • Lấy trị tuyệt đối = 20K (không bình phương)
  • Nếu MAE = $18K → “Trung bình, các dự đoán đang bị lệch $18K”

MSE (Mean Squared Error)

MSE = (1/n) × Σ(y - ŷ)²
  • Đơn vị: Đơn vị bị bình phương (Ví dụ: USD²)
  • Không thể diễn giải trực tiếp (đơn vị bình phương nghe rất vô lý)
  • Dùng để: Tối ưu hóa trong quá trình huấn luyện (đạo hàm trơn tru)
  • Mối liên hệ: RMSE = √MSE (giúp MSE trở nên dễ hiểu)

R² (R-Squared, Hệ số xác định)

R² = 1 - (SS_res / SS_tot)

Trong đó:
SS_res = Σ(y - ŷ)²   (tổng bình phương phần dư)
SS_tot = Σ(y - ȳ)²   (tổng bình phương toàn phần)
  • Khoảng giá trị: 0 đến 1 (có thể âm nếu mô hình quá tệ)
  • Ý nghĩa: Tỷ lệ phần trăm phương sai (variance) mà mô hình giải thích được
  • R² = 1.0: Dự đoán hoàn hảo (giải thích 100% phương sai)
  • R² = 0.5: Mô hình giải thích được 50% phương sai
  • R² = 0: Mô hình chẳng khá hơn việc lấy trung bình là bao
  • R² < 0: Mô hình còn tệ hơn cả việc nhắm mắt đoán số trung bình (Thảm họa!)

Ví dụ:

  • R² = 0.85 → Mô hình giải thích được 85% sự biến động của giá nhà
  • 15% còn lại là do nhiễu hoặc các yếu tố chưa đo lường được

Bảng so sánh Regression Metric #exam-tip

Metric Đơn vị Ý nghĩa Nhạy cảm với Outlier? Use Case
RMSE Cùng y Độ lớn sai số trung bình (bình phương) Lựa chọn mặc định, trừng phạt sai số lớn
MAE Cùng y Sai số tuyệt đối TB Không (tuyến tính) Có outliers, cần sự ổn định
MSE Giá trị Loss function (bình phương) Chỉ dùng để tối ưu hóa khi train
Không % phương sai giải thích đc Vừa phải So sánh các mô hình, mức độ phù hợp chung

Kịch bản bài thi: #exam-tip

  • “Dữ liệu có Outliers, chọn metric nào?” → Chọn MAE (ổn định)
  • “Muốn trừng phạt nặng các sai số lớn?” → Chọn RMSE hoặc MSE
  • “Cần so sánh các mô hình trên nhiều tập dữ liệu khác nhau?” → Chọn R² (vì nó không có đơn vị)
  • “Đang huấn luyện (training) một mô hình hồi quy?” → Dùng MSE (giúp tối ưu hóa mượt mà)