AWS Machine Learning Algorithms

Mục lục

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ột
  • alpha, lambda - Chuẩn hóa L1, L2
  • scale_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ẫu
  • predictor_type - classifier hoặc regressor
  • dimension_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 ra
  • num_training_samples - Tổng số lượng ảnh huấn luyện
  • use_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ượng
  • num_training_samples - Tổng số lượng ảnh huấn luyện
  • base_network - VGG-16 hoặc ResNet-50
  • mini_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-101
  • algorithm - 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):

  1. 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
  2. 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 Encoder
  • num_layers_decoder - Độ sâu Decoder
  • rnn_type - lstm hoặc gru
  • attention_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ện
  • context_length - Dùng bao nhiêu dữ liệu lịch sử
  • prediction_length - Dự báo bao xa trong tương lai
  • time_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ại
  • algorithm_mode - regular hoặc randomized
  • subtract_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:

  1. 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)
  2. Mỗi cây sẽ đệ quy chia dữ liệu bằng các lát cắt ngẫu nhiên (random cuts)
  3. 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)
  4. Đ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

  1. Phát hiện gian lận (Fraud detection) - Giao dịch bất thường
  2. An ninh mạng (Network security) - Phát hiện xâm nhập, tấn công DDoS
  3. Giám sát cảm biến IoT - Dự đoán hỏng hóc thiết bị
  4. Kiểm soát chất lượng - Phát hiện khuyết tật trong sản xuất
  5. 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ây
    • feature_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 CSV, RecordIO Nhanh, dễ diễn giải, xử lý class imbalance
XGBoost Classification/Regression CSV, LibSVM, Parquet Độ chính xác cao nhất, xử lý missing values
KNN Classification/Regression CSV, RecordIO Ranh giới phi tuyến tính (non-linear), không cần training
Factorization Machines Classification/Regression RecordIO Dữ liệu thưa (Sparse data), gợi ý
DeepAR Time Series JSON Lines Dự báo xác suất, xử lý nhiều series cùng lúc
Image Classification Computer Vision RecordIO, Images Transfer learning, ResNet
Object Detection Computer Vision RecordIO, Images+JSON Multiple objects, bounding boxes
Semantic Segmentation Computer Vision Images+Masks Độ chính xác cấp độ pixel (Pixel-level precision)
BlazingText NLP Cả hai Text Nhanh, Word2Vec + classification
Seq2Seq NLP JSON, RecordIO Xử lý input/output có độ dài thay đổi (Variable length)
Object2Vec Embeddings 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_length cho 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)
  • 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)