Skip to content
Phạm Khánh Minh Mẫn / syllabus
← Giáo trình

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.

Đường cong hình bát và các bước gradient descent tiến dần về đáy, từ độ dốc đến cập nhật tham số.f(x)x ← x − lr · f′(x)
Đo độ dốc. Chọn bước đi. Lặp lại.
6 bài học6 PDF ghi tayĐọc tự do · không cần đăng nhập

Đi theo từng bài

6 bài học

  1. 01

    Đạ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ố.

    Đọc bài · PDF ghi tay
    PDF ↗
  2. 02

    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.

    Đọc bài · PDF ghi tay
    PDF ↗
  3. 03

    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ỏ.

    Đọc bài · PDF ghi tay
    PDF ↗
  4. 04

    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.

    Đọc bài · PDF ghi tay
    PDF ↗
  5. 05

    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.

    Đọc bài · PDF ghi tay
    PDF ↗
  6. 06

    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.

    Đọc bài · PDF ghi tay
    PDF ↗
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ì

  1. Tự viết backpropagation cho một mạng 2 lớp, bằng tay, không framework.
  2. 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.
  3. Trả lời được vì sao e^x xuấ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"

  1. Vì sao f′=f cùng f(0)=1 xác định duy nhất e^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?
  2. Chain rule qua L lớp = nhân L ma 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.
  3. 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).
  4. 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?
  5. Gradient descent đi theo hướng dốc nhất. Vì sao hướng dốc nhất lại là −∇f chứ không phải hướng khác?
  6. softmax dùng e^x. Nếu đổi sang 2^x thì 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ó.