Trang ôn thi Machine Learning tương tác — tổng hợp từ buổi review của thầy. Mỗi bài có lý thuyết tóm tắt + công cụ tính toán chạy trực tiếp trên trình duyệt.

Nội dung thi: Bài 5 → Bài 10 (từ sau Tết). Bài 1–4 (giới thiệu, Neural Network, Ensemble) không thi.

Bài 5 — Support Vector Machine (SVM)

Thầy dặn 3 câu hỏi quan trọng:
1. Siêu phẳng (hyperplane) là gì?
2. Support vector là gì?
3. Tiêu chí để chọn siêu phẳng tối ưu là gì?
+ Ý nghĩa hàm Lagrange + Tại sao cần soft margin (slack variable)?

Siêu phẳng (Hyperplane): Đường biên quyết định phân tách 2 lớp. Phương trình: w·x + b = 0

  • 2D → đường thẳng, 3D → mặt phẳng, nD → không gian (n−1) chiều

Support Vector: Những điểm dữ liệu nằm đúng trên margin boundary (w·x + b = ±1). Xóa bất kỳ điểm nào không phải SV → siêu phẳng không đổi.

Tiêu chí tối ưu: Tối đa hóa margin = 2/||w|| ↔ Minimize ||w||²/2

Điều kiện: yᵢ·(w·xᵢ + b) ≥ 1 với mọi điểm i - yᵢ = nhãn (+1 hoặc −1), w·xᵢ + b = giá trị dự đoán thô - Tích yᵢ·(w·xᵢ + b) ≥ 1 → đúng phía VÀ đủ xa siêu phẳng

Hàm Lagrange — gom mục tiêu tối ưu + điều kiện vào chung 1 hàm số, giải đạo hàm = 0 để tìm nghiệm:

L(w,b,α) = ||w||²/2 − Σ αᵢ·[yᵢ·(w·xᵢ+b) − 1]

Giải ∂L/∂w = 0 → w = Σ αᵢ·yᵢ·xᵢ Giải ∂L/∂b = 0 → Σ αᵢ·yᵢ = 0 → Chuyển sang Dual Problem (chỉ còn biến α) → Giải bằng Quadratic Programming (SMO) → Điểm có αᵢ > 0 chính là Support Vector

Soft Margin (Slack Variable ξᵢ) — Tại sao cần?

Thầy nhấn mạnh: Nếu không có slack variable, bài toán có thể KHÔNG CÓ NGHIỆM (tìm hoài không có siêu phẳng thoả tất cả điều kiện). Thêm ξᵢ để relaxation → đảm bảo bài toán luôn có nghiệm.
Minimize: ||w||²/2 + C·Σξᵢ Subject to: yᵢ·(w·xᵢ+b) ≥ 1 − ξᵢ, ξᵢ ≥ 0

C lớn → phạt nặng → margin nhỏ, ít lỗi C nhỏ → chấp nhận lỗi → margin rộng hơn ξᵢ = 0: đúng chỗ | 0 < ξᵢ ≤ 1: trong margin | ξᵢ > 1: phân loại sai

SVM Margin Calculator

Cho 2 lớp dữ liệu 2D, tính margin và kiểm tra support vector.

Bài 6 — Reinforcement Learning (Học tăng cường)

Thầy dặn sẽ hỏi:
1. RL dựa trên phương trình gì? → Bellman
2. Trong 5 yếu tố (Agent, Environment, State, Action, Reward) — cái nào lưu trữ kiến thức? → Reward
3. Quá trình học dựa trên nguyên lý gì? → Thử và sai (Trial & Error)
4. RL có cần dữ liệu học không? → Không
5. Policy là gì? → Ánh xạ State → Action

5 thành phần: Agent (ra quyết định), Environment (môi trường), State s (trạng thái), Action a (hành động), Reward r (điểm thưởng — lưu trữ kiến thức)

Phương trình Bellman:

V(s) = max_a [ R(s,a) + γ · V(s') ]

“Giá trị state hiện tại = reward ngay + γ × giá trị state tiếp theo” γ (gamma) = discount factor (0→1): γ gần 1 → quan tâm tương lai

Cơ chế lan truyền Reward (thầy nhấn mạnh):

  • Khi đạt Goal → Reward nhảy lên rất lớn
  • Reward đó lan truyền ngược (estimation) cho các trạng thái lân cận
  • Trạng thái lân cận cũng được cập nhật reward lớn theo
  • Lặp đi lặp lại → bản đồ reward phủ hết map → tại bất kỳ vị trí nào đều biết hướng đi tốt nhất

Policy (π): Tập hợp các cặp (trạng thái → hành động tương ứng)

Q-Learning:

Q(s,a) = R(s,a) + γ · max_a' Q(s', a')

Cập nhật: Q(s,a) ← Q(s,a) + α·[r + γ·max Q(s’,a’) − Q(s,a)] ↑ TD Error

α = learning rate | ε-greedy: ε% khám phá, (1−ε)% khai thác

Thầy giải thích: RL không cần dữ liệu học. Đó là lý do các mô hình AI (AlphaGo, ChatGPT) dùng RL — tự sinh dữ liệu, tự đánh giá qua reward, rồi reward lan truyền ngược để cải thiện.

Q-Learning Step-by-Step Calculator

Mô phỏng Q-Learning trên grid world. Tính từng bước cập nhật Q-table.

Bài 7 — Markov & Hidden Markov Model

Thầy dặn:
1. Phân biệt Markov vs HMM → HMM thêm ma trận B (emission), state bị ẩn
2. Cho dữ liệu → tính xác suất Markov (công thức 4 trong slide)
3. Mỗi chuỗi observation → sinh 1 mô hình HMM (khác Neural Network: N chuỗi → 1 mô hình)
4. HMM có tính Forward/Backward — KHÁC với Neural Network backpropagation!
Markov Model
- State quan sát trực tiếp được
- Tham số: A, π
- A = ma trận chuyển trạng thái
- π = phân phối ban đầu
- S với observation là 1-1
Hidden Markov Model
- State bị ẩn — chỉ thấy observation
- Tham số: A, B, π
- B = ma trận emission P(o|s)
- Tính xác suất từ S qua observation
- 1 chuỗi obs → 1 bộ (A,B,π) riêng

Markov Property: Trạng thái hiện tại chỉ phụ thuộc trạng thái ngay trước đó.

P(sₜ | sₜ₋₁, sₜ₋₂, ...) = P(sₜ | sₜ₋₁)

Ví dụ: Hôm nay Nắng → Mai: 70% Nắng, 30% Mưa Hôm nay Mưa → Mai: 40% Nắng, 60% Mưa

3 bài toán HMM:

Bài toánCâu hỏiThuật toán
EvaluationP(O|HMM) = ?Forward Algorithm
DecodingChuỗi state nào tốt nhất?Viterbi
LearningTìm A, B, π tốt nhấtBaum-Welch (Forward-Backward)
Thầy nhấn mạnh điểm khác NN: Neural Network: N chuỗi dữ liệu → train → 1 mô hình. HMM: mỗi chuỗi observation train → 1 bộ tham số riêng. N chuỗi → N mô hình HMM. Forward-Backward trong HMM KHÔNG giống backpropagation trong Neural Network.

Markov Chain Calculator

Tính xác suất chuỗi trạng thái trong Markov Model.

HMM Forward Algorithm Calculator

Tính P(O|HMM) — xác suất sinh ra chuỗi observation.

Bài 8 — Bayesian Learning

Thầy dặn:
1. Phân biệt MLE (Maximum Likelihood Estimation) vs MAP (Maximum A Posteriori) — 2 bài toán KHÁC NHAU
2. MLE: chi phí tính toán LỚN hơn nhiều so với MAP (phải khảo sát toàn bộ không gian dữ liệu)
3. Biết tính Naive Bayes — bỏ số vào công thức, đổ số tính thôi
MLE — Maximum Likelihood
- Tìm θ tối đa P(D|θ)
- "Dữ liệu nào sinh ra bởi tham số nào với xác suất cao nhất?"
- Khảo sát toàn bộ không gian dữ liệu có thể có
- Chi phí tính toán RẤT LỚN
MAP — Maximum A Posteriori
- Tìm θ tối đa P(θ|D) ∝ P(D|θ)·P(θ)
- Giả sử dữ liệu có tính chất này → áp vào giải
- Giống như "chiếu xuống" không gian nhỏ hơn
- Chi phí tính toán nhỏ hơn nhiều
MLE: θ* = argmax_θ P(D|θ) → khảo sát toàn bộ MAP: θ* = argmax_θ P(D|θ) · P(θ) → giả sử prior, thu hẹp không gian

Bayes’ Theorem: P(θ|D) = P(D|θ) · P(θ) / P(D)

Thầy giải thích: Tại sao không giải MLE trực tiếp mà chuyển sang MAP? Vì không gian dữ liệu quá lớn, không duyệt hết được. MAP giả sử dữ liệu có tính chất (prior) rồi "chiếu xuống" không gian nhỏ hơn — giống như biết có 2 chiều thì chỉ cần khảo sát trên 2 chiều đó.

Naive Bayes: Giả sử các feature độc lập với nhau.

P(C|x₁,x₂,...,xₙ) ∝ P(C) · ∏ P(xᵢ|C)

Bước 1: Tính P(C) cho mỗi class (đếm / tổng) Bước 2: Tính P(xᵢ|C) cho mỗi feature trong mỗi class Bước 3: Nhân tất cả lại, so sánh → class nào lớn hơn thì chọn

Naive Bayes Calculator

Tính xác suất phân loại theo Naive Bayes. Nhập bảng đếm tần suất.

Bài 9 — Clustering (Phân cụm)

Thầy dặn:
1. Tại sao phải tính nhiều độ đo khoảng cách? → Bản chất dữ liệu có nhiều yếu tố không khảo sát hết, phải thử và sai
2. Nguyên lý phân cụm: trong cùng nhóm → gần nhau nhất, giữa các nhóm → xa nhau nhất
3. K-Means: mỗi lần khởi tạo khác nhau → centroid khác nhau (không ổn định)
4. Hierarchical Clustering: không bị lỗi khởi tạo như K-Means → ổn định hơn

Nguyên lý phân cụm:

Intra-cluster distance (trong nhóm): càng NHỎ càng tốt Inter-cluster distance (giữa nhóm): càng LỚN càng tốt

Tại sao cần nhiều độ đo? Bản chất dữ liệu có nhiều yếu tố không khảo sát hết được → phải thử và sai nhiều loại khoảng cách để tìm cái phù hợp nhất.

K-Means:

  1. Chọn ngẫu nhiên K centroids
  2. Gán mỗi điểm vào centroid gần nhất
  3. Tính lại centroid = trung bình các điểm trong cụm
  4. Lặp lại bước 2-3 đến khi hội tụ
Thầy nhấn mạnh: K-Means mỗi lần khởi tạo centroid ban đầu khác → kết quả khác. Hierarchical Clustering không bị vấn đề này vì không cần khởi tạo ngẫu nhiên.

Hierarchical Clustering:

  • Agglomerative (bottom-up): Bắt đầu mỗi điểm là 1 cụm, merge dần
  • Divisive (top-down): Bắt đầu 1 cụm lớn, chia dần

K-Means Calculator

Chạy K-Means step-by-step trên dữ liệu 2D.

Distance Calculator

So sánh các độ đo khoảng cách giữa 2 vector.

Bài 10 — Tensor & SVD

Thầy dặn:
1. Ưu điểm của Tensor: là mảng nhiều chiều, nhiều bậc
2. Phân rã tensor → giảm số biến, NHƯNG tăng tính toán
3. Tuy nhiên tính toán song song được → đáp ứng thời gian thực
4. Hỏi liên quan tới SVD (Singular Value Decomposition)

Tensor: Mảng nhiều chiều, nhiều bậc (scalar → vector → matrix → tensor bậc 3, 4…)

Scalar (bậc 0): 5 Vector (bậc 1): [1, 2, 3] Matrix (bậc 2): [[1,2],[3,4]] Tensor bậc 3: [[[1,2],[3,4]], [[5,6],[7,8]]]

Phân rã Tensor:

Ưu điểm
- Giảm số biến (dimensionality reduction)
- Tính toán song song được
- Đáp ứng thời gian thực
Nhược điểm
- Tăng tính toán (chi phí phân rã)
- Cần thuật toán phân rã phù hợp

SVD (Singular Value Decomposition):

A = U · Σ · Vᵀ

A: ma trận gốc (m×n) U: ma trận trực giao trái (m×m) Σ: ma trận đường chéo chứa singular values (m×n) V: ma trận trực giao phải (n×n)

Giảm chiều: giữ lại k singular values lớn nhất A ≈ Uₖ · Σₖ · Vₖᵀ

SVD Calculator (Ma trận 2×2)

Tính SVD cho ma trận 2×2.