MÔN 03 / CALCULUS & OPTIMIZATION
Giải tích & tối ưu
Từ độ dốc của đường cong đến cách mô hình học. Nhìn hình để hiểu đạo hàm, lần theo chain rule và tự viết gradient descent — rồi kiểm những sai số máy tính dễ bỏ sót.
Đi theo từng bài
6 bài học- 01PDF ↗
Đạo hàm
Phóng to đường cong để thấy tiếp tuyến; suy ra tốc độ thay đổi và hiểu giới hạn của sai phân số.
- 02PDF ↗
Hàm mũ và log
Từ tăng trưởng và phân rã theo tỉ lệ đến softmax, log-likelihood và cách tính ổn định.
- 03PDF ↗
Chain rule và backpropagation
Nhân độ nhạy dọc mỗi đường, cộng tại chỗ phân nhánh; tự lần ngược gradient qua một mạng nhỏ.
- 04PDF ↗
Gradient và điểm yên ngựa
Từ lát cắt và đường đồng mức đến gradient, Hessian và những hướng cong của bề mặt loss.
- 05PDF ↗
Gradient descent
Nhìn bước đi trong thung lũng để hiểu learning rate, momentum, Adam và tự cài hồi quy tuyến tính.
- 06PDF ↗
Số học máy tính
Từ các nấc rời rạc của float đến triệt tiêu, số điều kiện và mixed precision.
Mục tiêu, tài liệu tham khảo & bài tập tổng kết
1.5 tháng · điều kiện trước: môn 2 · ít nội dung hơn môn 2 rất nhiều
1. Đạt được gì
- Tự viết backpropagation cho một mạng 2 lớp, bằng tay, không framework.
- Nói được: "chain rule qua nhiều lớp chính là nhân một chuỗi ma trận Jacobian" — và từ đó giải thích được vì sao gradient vanishing xảy ra.
- Trả lời được vì sao
e^xxuất hiện ở cả decay trí nhớ lẫn softmax — cùng một lý do.
2. Nội dung theo thứ tự
| Thứ tự | Học gì |
|---|---|
| 1 | Đạo hàm = tốc độ thay đổi tức thời (ẩn dụ backend: rate() của Prometheus, không phải counter cộng dồn) |
| 2 | Hàm mũ e^x và log — vì sao f′ = f cùng f(0)=1 xác định duy nhất e^x |
| 3 | Chain rule |
| 4 | Đạo hàm riêng và gradient |
| 5 | Cực trị, điểm yên ngựa (saddle point) |
| 6 | Gradient descent |
| 7 | Jacobian, Hessian (chỉ cần biết là gì) |
| 8 | Optimizer: SGD → momentum → Adam (sơ lược, học kỹ ở môn 7) |
| 9 | ⭐ Số học máy tính — float, triệt tiêu tai hoạ, số điều kiện, bf16 |
📖 Sáu bài học chi tiết
| # | Bài | Ý cốt lõi |
|---|---|---|
| 1 | Đạo hàm | Tốc độ thay đổi tức thời — và giới hạn của sai phân số |
| 2 | e^x và log |
f′=f, f(0)=1 → e^x; nối softmax, decay |
| 3 | Chain rule → backprop ⭐ | Backprop là chain rule lặp lại · capstone mini-autograd |
| 4 | Gradient và điểm yên ngựa | Gradient, độ cong và yên ngựa — vì sao gradient nhỏ chưa đủ kết luận đã tối ưu |
| 5 | Gradient descent | Learning rate: quá lớn phân kỳ, quá nhỏ chậm — và vì sao |
| 6 | Số học máy tính ⭐ | 0.1+0.2 ≠ 0.3 · cộng không kết hợp → đổi GPU đổi kết quả |
Bài 6 là bài ít giáo trình nào dạy nhưng lại giết nhiều giờ debug nhất. Nó cũng là chỗ quy tắc 1 có hình hài cụ thể: lỗi Chinchilla 2024 (L-BFGS-B lấy trung bình thay vì tổng Huber-loss) là một lỗi số học, không phải lỗi toán.
⏱️ Ngân sách thời gian. 6 bài học của môn 3 cộng lại chỉ ~21 giờ. Nhưng 1.5 tháng × 8-12h/tuần = 52-78 giờ. Nghĩa là bài học chỉ chiếm ~25-30% ngân sách. Phần còn lại: 3Blue1Brown (~3.5h kể cả xem lại) · MML ch.5 + ch.7 và bài tập · tự cài mini-autograd (bài 3) · tự cài gradient descent (bài 5) · tính tay trên giấy. Đọc hết 6 bài mà chưa tự cài hai thứ in đậm thì chưa xong môn 3.
Chain rule là trái tim của toàn bộ deep learning. Backpropagation không phải thuật toán mới — nó là chain rule áp dụng lặp lại qua các lớp. Khi hiểu điều này, "mạng nơ-ron học được" thôi nghe huyền bí.
3. Nguồn
📺 Bản đồ xem video: 3blue1brown-huong-dan-xem.md — 10 tập dùng, 5 tập bỏ (kèm điều kiện lật lại), và vì sao NN ch.2 xem hai lần.
| Thứ tự | Nguồn | Dùng thế nào |
|---|---|---|
| 1 | 3Blue1Brown — Essence of Calculus | Xem tập về đạo hàm, tập về e^x, tập về chain rule. Bỏ qua tập tích phân nâng cao |
| 2 | 3Blue1Brown — Neural Networks (4 tập) | Cầu nối hoàn hảo giải tích → mạng nơ-ron. Tập 3-4 giải thích backprop bằng hình. Xem trước khi đọc MML ch.5 |
| 3 | MML book ch.5 (Vector Calculus) | Phần hình thức: gradient, Jacobian, chain rule nhiều biến, automatic differentiation |
| 4 | MML book ch.7 (Continuous Optimization) | Gradient descent, momentum, ràng buộc, hàm lồi |
Không cần: giải tích thực/phức, chuỗi Taylor nâng cao, phương trình vi phân riêng phần, tô-pô.
4. Áp dụng vào đâu
| Khái niệm | Dùng ở đâu |
|---|---|
| Chain rule | Backpropagation — toàn bộ deep learning |
| Gradient | Hướng cập nhật trọng số |
e^x |
softmax (biến điểm số thành xác suất); decay trí nhớ e^(−t/S) (Ebbinghaus) |
log |
log-likelihood; cross-entropy; tránh tràn số khi nhân nhiều xác suất nhỏ |
| Điểm yên ngựa | Vì sao tối ưu không gian nhiều chiều khó theo cách khác với trực giác 2D |
| Hessian | Độ cong, giới hạn bước học và khó khăn của GD; Adam không trực tiếp tính Hessian |
5. Capstone
Gradient descent bằng tay cho hồi quy tuyến tính — ~30 dòng numpy:
1. tự viết hàm loss (MSE)
2. tự viết đạo hàm của loss theo từng trọng số ← không dùng autograd
3. vòng lặp cập nhật: w = w - lr * grad
4. vẽ đường loss giảm dần qua từng vòng lặp
Điều kiện qua môn: loss giảm đơn điệu, và bạn giải thích được điều gì xảy ra khi lr quá lớn (bằng hình, không bằng "nó phân kỳ").
Bài phụ, nối với môn 2: giải phương trình vi phân tách biến dR/dt = −R/S bằng tay ra R(t) = R₀·e^(−t/S) — đây là đường cong Ebbinghaus, công thức decay trí nhớ.
6. Tự kiểm "tận cùng"
- Vì sao
f′=fcùngf(0)=1xác định duy nhấte^x? Nếu bỏ điều kiện ban đầu thì còn những nghiệm nào? Vì sao hàm mũ xuất hiện khi tốc độ thay đổi tỉ lệ với hiện trạng? - Chain rule qua
Llớp = nhânLma trận Jacobian. Từ đó suy ra vì sao gradient vanishing/exploding xảy ra — và vì sao residual connection (x + f(x)) chữa được. - Vì sao ta tối ưu log-likelihood thay vì likelihood trực tiếp? Nêu hai lý do (một về số học, một về giải tích).
- Trong mô hình Hessian ngẫu nhiên đối xứng của bài 4, vì sao dấu eigenvalue thường hỗn hợp khi chiều tăng? Vì sao không thể suy thẳng kết quả đó thành tần suất yên ngựa mà quá trình huấn luyện một mạng thật gặp?
- Gradient descent đi theo hướng dốc nhất. Vì sao hướng dốc nhất lại là
−∇fchứ không phải hướng khác? softmaxdùnge^x. Nếu đổi sang2^xthì hỏng gì, giữ được gì?
Câu 2 là ranh giới thật: trả lời được nó nghĩa là bạn hiểu backprop ở mức có thể sửa nó, không chỉ chạy nó.