AWS Machine Learning Algorithms
Mục lục
- AWS Machine Learning Algorithms
- 1. Tổng quan
- 2. Supervised Learning Algorithms
- 3. Computer Vision Algorithms
- 4. NLP & Text Algorithms
- 5. Time Series Algorithms
- 6. Unsupervised Learning Algorithms
- 7. Anomaly Detection Algorithm
- 8. Algorithm Comparison Tables
#exam-tip - 9. Exam Tips Summary
#exam-tip - 10. Gotchas (Các lỗi thường gặp / Điểm cần lưu ý)
#gotcha - Related Topics
1. Tổng quan
Hướng dẫn toàn diện về các thuật toán được tích hợp sẵn của SageMaker. Để biết chi tiết về việc tinh chỉnh siêu tham số (hyperparameter tuning) cho Linear Learner, XGBoost, xem Amazon SageMaker.
2. Supervised Learning Algorithms
2.1 Linear Learner #exam-tip
Loại bài toán: Hồi quy (Regression), Phân loại nhị phân / Đa lớp (Binary/Multi-class Classification)
Mục đích: Các mô hình tuyến tính có tích hợp chuẩn hóa (regularization)
Định dạng đầu vào: RecordIO-protobuf, CSV
Các tính năng chính (Key Features):
- Hỗ trợ chuẩn hóa L1, L2, Elastic Net
- Xử lý mất cân bằng lớp (
balance_multiclass_weights) - Độc đáo: Tối ưu hóa
target_precision,target_recall - Huấn luyện nhanh trên tập dữ liệu lớn
Use Cases:
- Các bài toán hồi quy tuyến tính
- Phân loại nhị phân (phát hiện gian lận, spam)
- Phân loại đa lớp với dữ liệu cân bằng hoặc mất cân bằng
Khi nào nên dùng: Baseline đơn giản, mô hình dễ diễn giải (interpretable), cần huấn luyện nhanh
Chi tiết siêu tham số (Detailed hyperparameters): Xem SageMaker - Linear Learner
2.2 XGBoost #exam-tip
Loại bài toán: Hồi quy, Phân loại nhị phân/Đa lớp, Xếp hạng (Ranking)
Mục đích: Gradient boosted decision trees - thuật toán phổ biến nhất trên SageMaker
Định dạng đầu vào: CSV, LibSVM, Parquet
Các tính năng chính (Key Features):
- Xử lý các giá trị bị thiếu (missing values) tự động
- Tích hợp cross-validation (xác thực chéo)
- Tree pruning (cắt tỉa cây - ngăn ngừa overfitting)
- Xử lý song song (Parallel processing)
- Điểm mức độ quan trọng của đặc trưng (Feature importance scores)
Siêu tham số (Hyperparameters):
eta- Tốc độ học (Learning rate - thu nhỏ kích thước bước, ngăn ngừa overfitting)max_depth- Độ sâu của cây (giới hạn độ phức tạp của cây)subsample- Tỷ lệ lấy mẫu hàng (Row sampling ratio)colsample_bytree- Tỷ lệ lấy mẫu cộtalpha,lambda- Chuẩn hóa L1, L2scale_pos_weight- Xử lý mất cân bằng lớp
Use Cases:
- Phân loại / hồi quy đa mục đích
- Các cuộc thi Kaggle (rất phổ biến)
- Dữ liệu có cấu trúc/dạng bảng (tabular data)
- Khi độ chính xác (accuracy) quan trọng hơn khả năng diễn giải (interpretability)
Khi nào nên dùng (When to use): Sự lựa chọn mặc định cho dữ liệu dạng bảng, cần độ chính xác cao
Ghi chú bài thi (Exam Note): XGBoost là thuật toán gradient boosting được tích hợp sẵn trên SageMaker. Đối với bất kỳ câu hỏi nào về gradient boosting trong bài thi, hãy chọn XGBoost.
📝 Chi tiết siêu tham số: Xem SageMaker - XGBoost
2.3 K-Nearest Neighbors (KNN) #exam-tip
Loại bài toán: Phân loại, Hồi quy
Mục đích: Thuật toán phi tham số (Non-parametric) - dự đoán dựa trên các ví dụ huấn luyện gần nhất
Định dạng đầu vào: RecordIO-protobuf, CSV
Các tính năng chính:
- Thuật toán dựa trên chỉ mục (Index-based algorithm) (2 bước: quá trình train sẽ xây dựng index, quá trình inference sẽ truy vấn index)
- Huấn luyện = xây dựng chỉ mục hiệu quả (không phải học các tham số)
- Hỗ trợ giảm chiều dữ liệu (dimension reduction: sign, fjlt)
- Các phép đo khoảng cách: L2 (Euclidean), cosine, inner product
Siêu tham số:
k- Số lượng hàng xóm gần nhất (thường là 3-10)sample_size- Số lượng điểm dữ liệu để lấy mẫupredictor_type- classifier hoặc regressordimension_reduction_type- Giảm chiều trước khi lập chỉ mục (indexing)
Use Cases:
- Hệ thống gợi ý (Recommendation systems)
- Nhận dạng mẫu (Pattern recognition)
- Phân loại hình ảnh (các tập dữ liệu nhỏ hơn)
- Khi các ranh giới quyết định (decision boundaries) không đều
Khi nào nên dùng: Tập dữ liệu có kích thước nhỏ đến trung bình, ranh giới phi tuyến tính
Gotchas: #gotcha
- Suy luận chậm trên các tập dữ liệu lớn (phải tìm kiếm hàng xóm)
- Tốn nhiều bộ nhớ (lưu trữ toàn bộ dữ liệu huấn luyện)
- Nhạy cảm với việc chia tỷ lệ đặc trưng (phải normalize trước!)
2.4 Factorization Machines #exam-tip
Loại bài toán: Phân loại, Hồi quy
Mục đích: Thiết kế cho dữ liệu thưa thớt nhiều chiều (high-dimensional sparse data, ví dụ: gợi ý/recommendations)
Định dạng đầu vào: RecordIO-protobuf
Các tính năng chính:
- Nắm bắt các tương tác giữa các đặc trưng (feature interactions) một cách hiệu quả
- Cực kỳ xuất sắc cho dữ liệu thưa thớt (sparse data - có nhiều số 0)
- Độ phức tạp thời gian tuyến tính (Linear time complexity)
- Hoạt động tốt với dự đoán tỷ lệ nhấp chuột (CTR - click-through rate)
Siêu tham số:
num_factors- Số chiều của quá trình phân tích (thường là 64-256)predictor_type- binary_classifier hoặc regressor
Use Cases: #exam-tip
- Hệ thống gợi ý (Recommendation systems) (tương tác giữa người dùng - sản phẩm)
- Dự đoán lượt nhấp chuột (quảng cáo, kết quả tìm kiếm)
- Dữ liệu đặc trưng thưa (One-hot encoded categories)
- Lọc cộng tác (Collaborative filtering)
Khi nào nên dùng:
- Các tập dữ liệu thưa thớt với nhiều đặc trưng phân loại (categorical features)
- Các bài toán gợi ý/đề xuất
- Cần nắm bắt sự tương tác giữa các đặc trưng
Ví dụ: User ID (1M users) × Item ID (100K items) = ma trận rất thưa (very sparse matrix)
3. Computer Vision Algorithms
3.1 Image Classification #exam-tip
Loại bài toán: Phân loại đa lớp (Multi-class classification)
Mục đích: Gán một nhãn (label) duy nhất cho toàn bộ hình ảnh
Định dạng đầu vào: RecordIO (Apache MXNet), File ảnh (JPG, PNG)
Kiến trúc: ResNet CNN (18, 34, 50, 101, 152 layers)
Các tính năng chính:
- Hỗ trợ học chuyển giao (Transfer learning) (sử dụng các mô hình pre-trained)
- Chế độ huấn luyện đầy đủ (Full training) hoặc chế độ học chuyển giao
- Huấn luyện đa GPU (Multi-GPU training)
- Tự động tăng cường dữ liệu ảnh (Automatic image augmentation)
Siêu tham số:
num_classes- Số lượng các lớp đầu ranum_training_samples- Tổng số lượng ảnh huấn luyệnuse_pretrained_model- 0 (train từ đầu) hoặc 1 (transfer learning)learning_rate,mini_batch_size
Use Cases:
- Phân loại sản phẩm
- Kiểm soát chất lượng (có khuyết tật/không có khuyết tật)
- Chẩn đoán qua hình ảnh y tế
- Nhận dạng các loài động vật hoang dã
Khi nào nên dùng: Cần phân loại toàn bộ hình ảnh vào một danh mục duy nhất
3.2 Object Detection #exam-tip
Loại bài toán: Định vị (localization) + Phân loại đối tượng
Mục đích: Phát hiện nhiều đối tượng trong một hình ảnh với các hộp giới hạn (bounding boxes)
Định dạng đầu vào: RecordIO, File ảnh + JSON (annotations/chú thích)
Kiến trúc: Single Shot Detector (SSD)
Các tính năng chính:
- Phát hiện nhiều đối tượng trong mỗi hình ảnh
- Trả về tọa độ bounding box + nhãn của lớp (class labels)
- Học chuyển giao từ các mô hình pre-trained
- Hỗ trợ huấn luyện tăng dần (incremental training)
Siêu tham số:
num_classes- Số lượng loại đối tượngnum_training_samples- Tổng số lượng ảnh huấn luyệnbase_network- VGG-16 hoặc ResNet-50mini_batch_size- Phụ thuộc vào bộ nhớ GPU
Use Cases:
- Xe tự lái (phát hiện ô tô, người đi bộ, biển báo)
- Bán lẻ (theo dõi kệ hàng, kiểm kê)
- An ninh (phát hiện người/xe cộ)
- Sản xuất (xác định vị trí khuyết tật)
Khi nào nên dùng: Cần tìm và gán nhãn cho nhiều đối tượng trong hình ảnh
Đầu ra (Output): [class, confidence, xmin, ymin, xmax, ymax] cho mỗi đối tượng
3.3 Semantic Segmentation #exam-tip
Loại bài toán: Phân loại ở cấp độ pixel (Pixel-level classification)
Mục đích: Phân loại từng pixel trong hình ảnh (dense prediction)
Định dạng đầu vào: File ảnh + PNG masks (annotations)
Kiến trúc: Fully Convolutional Network (FCN), Pyramid Scene Parsing (PSP)
Các tính năng chính:
- Dự đoán từng pixel (Pixel-wise) (không phải bounding boxes)
- Tạo ra mặt nạ phân vùng (segmentation mask)
- Hỗ trợ transfer learning
- Ba thuật toán: FCN, PSP, DeepLabV3
Siêu tham số:
num_classes- Số lượng lớp (bao gồm cả background)backbone- ResNet-50, ResNet-101algorithm- fcn, psp, deeplab
Use Cases:
- Hình ảnh y tế (phân vùng khối u)
- Lái xe tự động (phân vùng đường, vỉa hè, xe cộ)
- Hình ảnh vệ tinh (phân loại mục đích sử dụng đất)
- Xóa bỏ/thay thế phông nền (Background removal/replacement)
Khi nào nên dùng: Cần ranh giới chính xác ở mức độ pixel
Khác biệt so với Object Detection:
- Object Detection: Hộp giới hạn (hình chữ nhật)
- Semantic Segmentation: Các mask hình dạng chính xác (pixel-perfect)
4. NLP & Text Algorithms
4.1 BlazingText #exam-tip
Loại bài toán: Phân loại văn bản, Word embeddings (Word2Vec)
Mục đích: Phân loại văn bản nhanh và tạo vector từ ngữ (word vector generation)
Định dạng đầu vào: Text file (mỗi câu một dòng)
Hai chế độ (Two Modes):
- Chế độ Word2Vec - Tạo word embeddings (học không giám sát - unsupervised)
- Output: Các Word vectors phục vụ sự tương đồng về ngữ nghĩa (semantic similarity)
- Thuật toán: Skip-gram, CBOW
- Chế độ phân loại văn bản (Text classification mode) - Phân loại văn bản có giám sát (supervised)
- Hỗ trợ đa lớp (Multi-class), đa nhãn (multi-label)
Các tính năng chính:
- Được tối ưu hóa cao (Tăng tốc bằng GPU)
- Nhanh hơn 20 lần so với Word2Vec truyền thống
- Hỗ trợ subword embeddings (xử lý lỗi chính tả, từ hiếm)
Siêu tham số:
mode- supervised (phân loại) hoặc batch_skipgram (Word2Vec)vector_dim- Kích thước nhúng (Embedding dimension, mặc định: 100)learning_rate,epochs
Use Cases:
- Phân tích cảm xúc (Sentiment analysis)
- Phân loại tài liệu
- Phát hiện thư rác (Spam)
- Tạo word embeddings cho các tác vụ phía sau (downstream tasks)
Khi nào nên dùng:
- Cần phân loại văn bản với tốc độ nhanh
- Tạo word vectors cho transfer learning
- Các tập dữ liệu văn bản lớn
4.2 Sequence-to-Sequence (Seq2Seq) #exam-tip
Loại bài toán: Biến đổi chuỗi (Sequence transformation)
Mục đích: Chuyển đổi chuỗi đầu vào thành chuỗi đầu ra
Định dạng đầu vào: RecordIO-protobuf, JSON
Kiến trúc: Encoder-Decoder với cơ chế attention
Các tính năng chính:
- Xử lý inputs và outputs có độ dài thay đổi
- Cơ chế Attention (cải thiện trên các chuỗi dài)
- Dùng Beam search để giải mã (decoding)
- Hỗ trợ nhiều lớp (LSTM, GRU)
Siêu tham số:
num_layers_encoder- Độ sâu Encodernum_layers_decoder- Độ sâu Decoderrnn_type- lstm hoặc gruattention_type- mlp hoặc dot
Use Cases: #exam-tip
- Dịch máy (Machine translation) (Tiếng Anh → Tiếng Pháp)
- Tóm tắt văn bản (Text summarization)
- Nhận dạng giọng nói (audio → text)
- Chatbots (câu hỏi → câu trả lời)
Khi nào nên dùng: Khi Input và Output là các chuỗi (sequences) có độ dài khác nhau
Ví dụ:
- Input: “Hello, how are you?” (5 từ)
- Output: “Bonjour, comment allez-vous ?” (4 từ)
4.3 Object2Vec #exam-tip
Loại bài toán: Tạo Embedding (Embedding generation)
Mục đích: Học các embeddings có chiều thấp cho các cặp đối tượng
Định dạng đầu vào: JSON (các cặp item)
Các tính năng chính:
- Neural embedding đa mục đích
- Học các mối quan hệ giữa các đối tượng
- Hỗ trợ câu (sentences), chuỗi (sequences), tokens
- Có thể tính toán điểm tương đồng (similarity scores)
Siêu tham số:
enc1_network,enc2_network- Các loại Encoder (pooled_embedding, hcnn, bilstm, attentional_bilstm)output_layer- mean_squared_error hoặc softmax
Use Cases:
- Mức độ tương đồng giữa tài liệu (Document similarity)
- Gợi ý (User-item embeddings)
- Mức độ tương đồng của câu (Sentence similarity)
- Dự đoán mối quan hệ
Khi nào nên dùng:
- Cần embed các cặp đối tượng
- Đo lường sự tương đồng giữa các mục (items)
- Linh hoạt hơn Word2Vec (xử lý bất kỳ loại đối tượng nào)
Ví dụ: Học các embeddings mà ở đó các bộ phim tương tự nhau sẽ nằm gần nhau hơn trong không gian
5. Time Series Algorithms
5.1 DeepAR #exam-tip
Loại bài toán: Dự báo chuỗi thời gian (Time series forecasting)
Mục đích: Dự báo theo xác suất (Probabilistic forecasting) sử dụng RNN (tạo ra phân phối xác suất, không chỉ là một giá trị ước lượng điểm)
Định dạng đầu vào: JSON Lines (mỗi dòng là một time series)
Các tính năng chính:
- Đưa ra các dự báo theo xác suất (probabilistic forecasts) (có khoảng tin cậy - confidence intervals)
- Xử lý nhiều time series có liên quan với nhau
- Học chéo qua toàn bộ time series (Hiệu ứng học chuyển giao - transfer learning)
- Hỗ trợ xử lý missing values
- Kết hợp được với các categorical features (đặc trưng phân loại)
Siêu tham số:
epochs- Số vòng huấn luyệncontext_length- Dùng bao nhiêu dữ liệu lịch sửprediction_length- Dự báo bao xa trong tương laitime_freq- Tần suất dữ liệu (D, W, M, H - Ngày, Tuần, Tháng, Giờ)
Use Cases: #exam-tip
- Dự báo nhu cầu (Demand forecasting) (Dự đoán doanh số tương lai)
- Dự đoán mức tiêu thụ năng lượng
- Dự báo giá cổ phiếu
- Lên kế hoạch công suất máy chủ (Server capacity planning)
Khi nào nên dùng:
- Cần các dự báo xác suất (không phải chỉ một giá trị dự đoán duy nhất)
- Có nhiều time series liên quan đến nhau
- Time series có tính xu hướng (trends) và tính thời vụ (seasonality)
Đầu ra (Output): Các phân vị Quantiles (P10, P50, P90) - không chỉ có giá trị dự đoán trung bình
Ví dụ: “Tin cậy 90% rằng doanh số sẽ nằm trong khoảng từ 100-150 units”
6. Unsupervised Learning Algorithms
6.1 K-Means Clustering #exam-tip
Loại bài toán: Phân cụm (Clustering) (unsupervised)
Mục đích: Phân nhóm dữ liệu thành K cụm (clusters)
Định dạng đầu vào: RecordIO-protobuf, CSV
Thuật toán: Web-scale K-means (được tối ưu cho các tập dữ liệu lớn)
Các tính năng chính:
- Khả năng mở rộng (Scalable - huấn luyện phân tán)
- Sử dụng khởi tạo K-means++
- Khởi động lại (restarts) nhiều lần để tránh cực tiểu cục bộ (local minima)
Siêu tham số:
k- Số lượng cụm (phải chỉ định)init_method- random hoặc k-means++mini_batch_size
Use Cases:
- Phân khúc khách hàng (Customer segmentation)
- Nén hình ảnh (Image compression)
- Phân cụm tài liệu (Document clustering)
- Phát hiện bất thường (Anomaly detection - các outlier = nằm xa các cụm)
Khi nào nên dùng:
- Cần phân nhóm các item tương tự nhau
- Biết (hoặc có thể ước tính) số lượng các cụm
- Nhóm dữ liệu không giám sát (Unsupervised grouping)
Cách chọn tham số K: #exam-tip
- Phương pháp cùi chỏ (Elbow method: plot inertia vs K)
- Phân tích Silhouette (Silhouette analysis)
- Dựa vào yêu cầu kinh doanh (Business requirements)
6.2 Principal Component Analysis (PCA) #exam-tip
Loại bài toán: Giảm chiều dữ liệu (Dimensionality reduction) (unsupervised)
Mục đích: Giảm số lượng các đặc trưng (features) nhưng vẫn giữ được phương sai (variance)
Định dạng đầu vào: RecordIO-protobuf, CSV
Các tính năng chính:
- Trích xuất đặc trưng (Feature extraction) không giám sát
- Hai chế độ: regular (chính xác) và randomized (xấp xỉ, nhanh hơn)
- Loại bỏ các đặc trưng có độ tương quan (correlated features)
- Tăng tốc quá trình huấn luyện bằng cách giảm số chiều
Siêu tham số:
num_components- Số lượng thành phần chính (principal components) cần giữ lạialgorithm_mode- regular hoặc randomizedsubtract_mean- Căn giữa dữ liệu (Center data - thường là true)
Use Cases:
- Giảm features từ 1000 → 50
- Trực quan hóa dữ liệu (giảm xuống còn 2-3 dimensions)
- Tăng tốc huấn luyện
- Loại bỏ đa cộng tuyến (multicollinearity)
Khi nào nên dùng: #exam-tip
- Có quá nhiều đặc trưng (curse of dimensionality - lời nguyền số chiều)
- Các đặc trưng có độ tương quan cao
- Muốn trực quan hóa dữ liệu ở số chiều cao (high-dimensional data)
Sự đánh đổi (Trade-off): Mất đi khả năng diễn giải (các thành phần mới là tổ hợp tuyến tính của các features gốc)
6.3 Latent Dirichlet Allocation (LDA) #exam-tip
Loại bài toán: Mô hình hóa chủ đề (Topic modeling) (unsupervised)
Mục đích: Khám phá các chủ đề trừu tượng trong tập hợp tài liệu
Định dạng đầu vào: RecordIO-protobuf, CSV (bag-of-words)
Các tính năng chính:
- Phân cụm tài liệu không giám sát
- Mỗi tài liệu = Sự pha trộn (mixture) của các chủ đề
- Mỗi chủ đề = Sự pha trộn của các từ
- Đầu ra dễ diễn giải (Interpretable output)
Siêu tham số:
num_topics- Số lượng chủ đề cần khám pháalpha0- Mật độ chủ đề trong tài liệu (Document-topic density, càng cao = tài liệu chứa nhiều chủ đề hơn)
Use Cases:
- Phân loại tài liệu
- Gợi ý nội dung
- Sắp xếp tài liệu nghiên cứu (Research paper organization)
- Phân loại phản hồi của khách hàng
Khi nào nên dùng:
- Có một bộ sưu tập các tài liệu văn bản
- Muốn khám phá các themes/chủ đề
- Cần các kết quả có thể diễn giải được
Ví dụ đầu ra (Output Example):
- Topic 1: {machine: 0.05, learning: 0.04, data: 0.03…}
- Topic 2: {aws: 0.06, cloud: 0.05, service: 0.04…}
6.4 Neural Topic Model (NTM) #exam-tip
Loại bài toán: Mô hình hóa chủ đề (Topic modeling) (unsupervised)
Mục đích: Cách tiếp cận bằng Neural network để mô hình hóa chủ đề (Lựa chọn thay thế cho LDA)
Định dạng đầu vào: RecordIO-protobuf, CSV (bag-of-words hoặc TF-IDF)
Các tính năng chính:
- Kiến trúc mạng nơ-ron (nhanh hơn LDA)
- Sử dụng Variational Autoencoders
- Mở rộng tốt hơn cho các từ vựng lớn (large vocabularies)
- Tăng tốc nhờ GPU
Siêu tham số:
num_topics- Số lượng chủ đềfeature_dim- Kích thước từ vựng (Vocabulary size)mini_batch_size,learning_rate
Use Cases:
- Giống như LDA nhưng dành cho các dataset lớn hơn
- Khi cần chú trọng vào tốc độ
- Kích thước từ vựng lớn
Khi nào nên dùng:
- Tương tự như LDA nhưng có:
- Tập dữ liệu lớn hơn
- Cần huấn luyện nhanh hơn
- Có tài nguyên GPU
LDA vs NTM: #exam-tip
- LDA: Truyền thống, diễn giải tốt, tập dữ liệu nhỏ hơn
- NTM: Mạng nơ-ron, nhanh hơn, tập dữ liệu lớn, tăng tốc GPU
7. Anomaly Detection Algorithm
7.1 Random Cut Forest (RCF) #important
Random Cut Forest làm gì?
Mục đích chính: Phát hiện bất thường (Anomaly detection) - nhận diện các điểm dữ liệu bất thường
Cách thức hoạt động:
- Xây dựng một ensemble các random decision trees (rừng các cây quyết định ngẫu nhiên)
- Mỗi cây sẽ đệ quy chia dữ liệu bằng các lát cắt ngẫu nhiên (random cuts)
- Các điểm bất thường sẽ cần ít vết cắt hơn để cô lập (được phân lập nhanh hơn)
- Điểm bất thường (Anomaly score) = nghịch đảo của độ dài đường dẫn trung bình (average path length) qua tất cả các cây
- Path length thấp → Điểm Anomaly cao → Điểm dữ liệu bất thường
- Path length cao → Điểm Anomaly thấp → Điểm dữ liệu bình thường
Các đặc điểm chính:
- Unsupervised learning (Học không giám sát) - Không cần dữ liệu được gán nhãn
- Hoạt động trên numerical features (đặc trưng số học) - Dữ liệu nhiều chiều
- Real-time capable (Có khả năng thời gian thực) - Có thể tính điểm (score) cho dữ liệu streaming
- Robust to scale - Xử lý các scale (thang đo) đặc trưng khác nhau tốt
Use Cases: #exam-tip
- Phát hiện gian lận (Fraud detection) - Giao dịch bất thường
- An ninh mạng (Network security) - Phát hiện xâm nhập, tấn công DDoS
- Giám sát cảm biến IoT - Dự đoán hỏng hóc thiết bị
- Kiểm soát chất lượng - Phát hiện khuyết tật trong sản xuất
- Dữ liệu Time series bất thường - Các đợt tăng vọt hoặc giảm đột ngột
Cách triển khai trên AWS (AWS Implementation):
Amazon SageMaker RCF:
- Thuật toán tích hợp sẵn (built-in) trong SageMaker
- Định dạng đầu vào: RecordIO-protobuf hoặc CSV
- Đầu ra (Output): Điểm Anomaly cho mỗi điểm dữ liệu (càng cao = càng bất thường)
- Siêu tham số:
num_trees- Số lượng cây trong rừng (mặc định: 100)num_samples_per_tree- Kích thước lấy mẫu cho mỗi câyfeature_dim- Số lượng đặc trưng (tự động phát hiện)
Amazon Kinesis Data Analytics:
- Có hàm RCF tích hợp sẵn để phát hiện bất thường trên luồng dữ liệu streaming
- SQL function:
RANDOM_CUT_FOREST() - Đánh giá điểm thời gian thực (Real-time scoring) trên dữ liệu streaming
Amazon QuickSight:
- ML Insights sử dụng RCF để phát hiện bất thường trong các hình ảnh trực quan (visualizations)
- Tự động đánh dấu highlight các outliers
Ví dụ về bài thi (Example Scenario): #exam-tip Câu hỏi: Bạn cần phát hiện gian lận thẻ tín dụng theo thời gian thực (real-time) từ luồng dữ liệu streaming. Bạn dùng dịch vụ AWS và thuật toán nào?
Đáp án:
- Thuật toán: Random Cut Forest (phát hiện bất thường)
- Dịch vụ: Kinesis Data Analytics với hàm RANDOM_CUT_FOREST()
- Lý do: Thời gian thực streaming, không giám sát, phát hiện các mẫu (patterns) bất thường
Chi tiết quá trình huấn luyện:
- Huấn luyện: Mô hình học được sự phân phối dữ liệu bình thường (normal data distribution)
- Suy luận (Inference): Tính điểm các điểm mới dựa trên phân phối đã học
- Không cần thiết lập threshold (ngưỡng) trong lúc huấn luyện - Ứng dụng (Application) sẽ tự thiết lập ngưỡng dựa trên business rules
- Ví dụ: Score > 3.0 = kiểm tra, Score > 5.0 = khóa giao dịch
7.2 IP Insights #exam-tip
Loại bài toán: Phát hiện bất thường (Anomaly detection)
Mục đích: Phát hiện các địa chỉ IP bất thường cho việc bảo mật tài khoản
Định dạng đầu vào: CSV (các cặp entity, địa chỉ IP)
Các tính năng chính:
- Học được các mẫu (patterns) hành vi IP bình thường
- Dựa trên mạng Neural network
- Học không giám sát (Unsupervised learning)
- Tính điểm thời gian thực (Real-time scoring)
Use Cases:
- Phát hiện chiếm đoạt tài khoản (Account takeover detection)
- Các mẫu truy cập trái phép (Unauthorized access patterns)
- Các lượt đăng nhập gian lận
- Truy cập bất thường về mặt địa lý
Khi nào nên dùng:
- Cần phát hiện các mẫu truy cập IP bất bình thường
- Giám sát an ninh tài khoản
- Ngăn chặn gian lận đối với các tài khoản người dùng
Ví dụ: Người dùng luôn đăng nhập từ Mỹ (US), bỗng nhiên đăng nhập từ Nga (Russia) → Điểm Anomaly score cao
8. Algorithm Comparison Tables #exam-tip
8.1 Quick Selection Guide
| Loại bài toán (Problem Type) | Các thuật toán (Algorithms) | Tốt nhất cho (Best For) |
|---|---|---|
| Phân loại (Classification - dạng Bảng) | Linear Learner, XGBoost, KNN | XGBoost (độ chính xác), Linear Learner (tốc độ) |
| Hồi quy (Regression - dạng Bảng) | Linear Learner, XGBoost, KNN | XGBoost (sự lựa chọn mặc định) |
| Dự báo chuỗi thời gian (Time Series) | DeepAR | Dự báo xác suất kèm khoảng tin cậy |
| Gợi ý / Đề xuất (Recommendations) | Factorization Machines | Dữ liệu tương tác User-item thưa thớt (Sparse) |
| Phát hiện bất thường (Anomaly Detection) | Random Cut Forest, IP Insights | RCF (tổng quát), IP Insights (riêng cho IP) |
| Phân cụm (Clustering) | K-Means | Nhóm các mục tương tự (biết trước tham số K) |
| Giảm số chiều (Dimensionality Reduction) | PCA | Quá nhiều features, trực quan hóa dữ liệu |
| Mô hình hóa chủ đề (Topic Modeling) | LDA, NTM | LDA (dễ diễn giải), NTM (dữ liệu lớn/nhanh) |
| Phân loại hình ảnh (Image Classification) | Image Classification | Một nhãn (Single label) cho mỗi hình ảnh |
| Phát hiện đối tượng (Object Detection) | Object Detection | Nhiều đối tượng kèm hộp giới hạn (bounding boxes) |
| Phân vùng ảnh (Semantic Segmentation) | Semantic Segmentation | Phân loại chính xác đến từng pixel (Pixel-level) |
| Phân loại văn bản (Text Classification) | BlazingText | Phát hiện cảm xúc, thư rác (spam) với tốc độ nhanh |
| Dịch máy (Machine Translation) | Seq2Seq | Dịch ngôn ngữ, tóm tắt văn bản |
| Word Embeddings | BlazingText, Object2Vec | BlazingText (từ ngữ), Object2Vec (đối tượng) |
| Embeddings cho các cặp (Pairs) | Object2Vec | Tương đồng tài liệu/câu (Document/sentence similarity) |
8.2 Comprehensive Algorithm Matrix
| Thuật toán (Algorithm) | Loại (Type) | Có giám sát? (Supervised?) | Định dạng đầu vào (Input Format) | Điểm mạnh (Key Strength) |
|---|---|---|---|---|
| Linear Learner | Classification/Regression | Có | CSV, RecordIO | Nhanh, dễ diễn giải, xử lý class imbalance |
| XGBoost | Classification/Regression | Có | CSV, LibSVM, Parquet | Độ chính xác cao nhất, xử lý missing values |
| KNN | Classification/Regression | Có | CSV, RecordIO | Ranh giới phi tuyến tính (non-linear), không cần training |
| Factorization Machines | Classification/Regression | Có | RecordIO | Dữ liệu thưa (Sparse data), gợi ý |
| DeepAR | Time Series | Có | JSON Lines | Dự báo xác suất, xử lý nhiều series cùng lúc |
| Image Classification | Computer Vision | Có | RecordIO, Images | Transfer learning, ResNet |
| Object Detection | Computer Vision | Có | RecordIO, Images+JSON | Multiple objects, bounding boxes |
| Semantic Segmentation | Computer Vision | Có | Images+Masks | Độ chính xác cấp độ pixel (Pixel-level precision) |
| BlazingText | NLP | Cả hai | Text | Nhanh, Word2Vec + classification |
| Seq2Seq | NLP | Có | JSON, RecordIO | Xử lý input/output có độ dài thay đổi (Variable length) |
| Object2Vec | Embeddings | Có | JSON | Các Embeddings có mục đích chung |
| K-Means | Clustering | Không | CSV, RecordIO | Đơn giản, nhanh, có thể mở rộng (scalable) |
| PCA | Dim Reduction | Không | CSV, RecordIO | Giảm đặc trưng (Feature reduction), trực quan hóa |
| LDA | Topic Modeling | Không | RecordIO, CSV | Chủ đề có thể diễn giải được (Interpretable) |
| NTM | Topic Modeling | Không | RecordIO, CSV | Nhanh, tập từ vựng lớn (large vocabularies) |
| Random Cut Forest | Anomaly Detection | Không | CSV, RecordIO | Các bất thường theo Real-time, streaming |
| IP Insights | Anomaly Detection | Không | CSV | Các bất thường đặc thù cho IP |
9. Exam Tips Summary #exam-tip
9.1 Algorithm Selection (Lựa chọn thuật toán)
- Mặc định cho dữ liệu dạng bảng: XGBoost (độ chính xác tốt nhất)
- Baseline nhanh: Linear Learner
- Phát hiện bất thường: Random Cut Forest
- Bất thường trên luồng Streaming: Kinesis Analytics + RCF
- Chuỗi thời gian (Time series): DeepAR (probabilistic forecasts)
- Gợi ý (Recommendations): Factorization Machines (sparse data)
- Phân loại văn bản: BlazingText (nhanh)
- Dịch máy: Seq2Seq
- Phân loại ảnh: Image Classification (ResNet)
- Phát hiện đối tượng: Object Detection (bounding boxes)
- Phân vùng ảnh (Semantic segmentation): Phân loại cấp độ pixel
- Mô hình hóa chủ đề: LDA (datasets nhỏ), NTM (datasets lớn)
- Phân cụm (Clustering): K-Means
- Giảm số chiều: PCA
- IP bất thường: IP Insights
9.2 Common Exam Scenarios (Các kịch bản bài thi phổ biến)
- “Phát hiện gian lận real-time trên streaming” → Kinesis Analytics + RCF
- “Phân loại hình ảnh” → Image Classification
- “Tìm đối tượng trong hình ảnh kèm vị trí” → Object Detection
- “Phân vùng chính xác từng pixel” → Semantic Segmentation
- “Dự đoán doanh số tương lai kèm khoảng tin cậy” → DeepAR
- “Đề xuất sản phẩm cho người dùng” → Factorization Machines
- “Dịch văn bản” → Seq2Seq
- “Phân tích cảm xúc nhanh (Fast sentiment analysis)” → BlazingText
- “Có quá nhiều đặc trưng (hơn 1000+ features)” → PCA trước, sau đó mới train model
- “Phát hiện bất thường không giám sát (Unsupervised)” → Random Cut Forest
- “Phát hiện chiếm đoạt tài khoản” → IP Insights
- “Gradient boosting trên dữ liệu dạng bảng” → XGBoost
9.3 Input Format Quick Reference (Tham khảo nhanh về định dạng đầu vào)
- RecordIO-protobuf: Hầu hết các thuật toán SageMaker (hiệu suất cao)
- CSV: Linear Learner, XGBoost, KNN, K-Means, PCA, RCF
- JSON/JSON Lines: DeepAR, Seq2Seq, Object2Vec
- Images: Các thuật toán Computer vision
- Text files: BlazingText
- LibSVM: XGBoost (dành cho dữ liệu thưa thớt)
- Parquet: XGBoost
10. Gotchas (Các lỗi thường gặp / Điểm cần lưu ý) #gotcha
10.1 Cốt lõi chung (General)
- Feature scaling (Chia tỷ lệ đặc trưng): Rất quan trọng đối với KNN, PCA, RCF (cần normalize các features)
- Missing values (Các giá trị thiếu): XGBoost tự động xử lý, các thuật toán khác yêu cầu kỹ thuật nội suy (imputation)
- Categorical features: Mã hóa thành số (Sử dụng one-hot hoặc label encoding)
10.2 Điểm đặc trưng của từng Thuật toán
- RCF:
- Điểm Anomaly là tương đối (không có threshold cố định)
- Chỉ yêu cầu các đặc trưng số (numerical features)
- Số cây (trees) càng nhiều = độ chính xác cao hơn nhưng chạy chậm hơn
- KNN:
- Quá trình inference chậm trên các datasets lớn (phải duyệt tất cả các neighbors)
- Tiêu tốn nhiều bộ nhớ (Lưu trữ toàn bộ training data)
- BẮT BUỘC phải normalize các features
- DeepAR:
- Cần nhiều time series có liên quan (không hoạt động tốt nếu chỉ có 1 series duy nhất)
- Yêu cầu
context_lengthcho các dữ liệu lịch sử
- Factorization Machines:
- CHỈ chấp nhận định dạng RecordIO-protobuf (không hỗ trợ CSV)
- Tốt nhất cho dữ liệu cực kỳ thưa (very sparse data)
- Image Classification:
- Muốn Transfer learning thì phải bật
use_pretrained_model=1 - Cần dữ liệu huấn luyện đủ lớn (hoặc sử dụng transfer learning)
- Muốn Transfer learning thì phải bật
- Seq2Seq:
- Input/output sequences có thể có độ dài (lengths) khác nhau
- Yêu cầu files từ vựng (vocabulary files)
- PCA:
- Các components mới (thành phần chính) làm mất khả năng diễn giải (là tổ hợp tuyến tính của features cũ)
- Không thể nghịch đảo chuyển đổi hoàn hảo (Can’t invert transformation perfectly)