Lesson 02 — Linear Regression
y = Xw + b · MSE loss · Closed-form (Normal Equation) vs Gradient Descent · Ridge & Lasso · R²
1. Interactive scatter + fit (closed-form tự động)
Kéo các điểm xanh để di chuyển. Đường đỏ là đường hồi quy tốt nhất tính lại tức thời bằng normal equation. Theo dõi w, b, MSE, R² ở bên dưới.
n = 5
Data point (kéo được)
Đường hồi quy ŷ = b + w·x
Residual yᵢ - ŷᵢ
b (intercept) = 0.00
w (slope) = 0.00
đường: ŷ = 0 + 0·x
MSE = 0.000
RMSE = 0.000
R² = 0.000
Cách tính: XᵀX · w̃ = Xᵀy → w̃ = (XᵀX)⁻¹ Xᵀy. Với n=5 ma trận 2×2, ngay khi bạn nhả chuột là tính xong.
2. Gradient descent animation trên loss landscape
Cùng dataset hiện tại. Loss landscape là một paraboloid L(b, w) — luôn lồi. Bấm Chạy GD để xem trajectory `(b, w)` chạy về điểm tối ưu (★ đỏ). Đổi η để thấy: quá lớn → dao động; quá nhỏ → chậm.
epoch = 0
L thấp
L cao
Trajectory GD
Closed-form ★
b hiện tại = 0.00
w hiện tại = 0.00
grad_b = 0.00
grad_w = 0.00
Loss = 0.000
Optimal b* = 0.00
Optimal w* = 0.00
||(b,w) - (b*,w*)|| = 0.000
Công thức: ∇L = (2/n)·Xᵀ(Xw - y) → w ← w - η·∇L.
Quan sát mũi tên gradient (đen) chỉ về hướng tăng L; bước nhảy `-η·∇L` ngược chiều.
3. Closed-form vs GD — cùng dataset, hai phương pháp khớp
Mục tiêu: chứng minh GD (chạy đủ epoch) ra đúng nghiệm normal equation. Hai cột dưới đây tính độc lập trên cùng dataset.
800
0.050
| Đại lượng | Closed-form (Normal Eq.) | Gradient Descent | Sai khác |Δ| |
|---|---|---|---|
| b (intercept) | — | — | — |
| w (slope) | — | — | — |
| MSE | — | — | — |
| Thời gian (ms) | — | — | — |
Khi `epochs` còn nhỏ, GD chưa hội tụ → sai khác lớn. Tăng epochs → sai khác về 0 (lên đến floating-point error).
Closed-form O(d³) chỉ chạy 1 phép tính ⇒ luôn nhanh hơn ở `d` nhỏ.
4. Ridge / Lasso — slider λ và sparse weights
Dataset 6 feature (tạo synth): chỉ 2 feature thực sự có ý nghĩa, 4 feature còn lại là noise. Ridge và Lasso đều shrink trọng số khi λ tăng — nhưng Lasso đẩy hẳn về 0, Ridge chỉ co lại.
Số feature thật = 2 (idx 0, 1) — còn lại là noise
Ridge (L2)
||w||₂² = 0.000
||w||₀ (số phần tử ≠ 0) = 6
MSE train = 0.000
Lasso (L1)
||w||₁ = 0.000
||w||₀ (số phần tử ≠ 0) = 6
MSE train = 0.000
Tăng λ từ 0.01 → 100. Quan sát: Ridge mọi cột vẫn dương nhỏ; Lasso các cột noise (idx 2-5) sụp về 0 trước, các cột tín hiệu thật (0, 1) vẫn sống — đây là feature selection tự động.
5. Tổng kết
- Linear regression tìm hyperplane `ŷ = Xw + b` tốt nhất theo MSE.
- MSE không phải tuỳ chọn — nó đến từ MLE với Gaussian noise (Tầng 5 Lesson 07).
- Closed-form `w* = (XᵀX)⁻¹ Xᵀy` chính xác, `O(d³)`. GD `O(epochs·n·d)` — bắt buộc khi `d` lớn.
- Loss lồi → mọi điểm khởi tạo GD đều hội tụ về cùng nghiệm closed-form.
- Ridge (L2): shrink đều, có closed-form. Lasso (L1): shrink + sparse, không closed-form.
- Linear regression = NN 0 hidden layer + linear activation — là building block cho mọi model phức tạp hơn.