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ᵀyw̃ = (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