Calculus for Backpropagation
Giải tích cho lan truyền ngược
Mạng nơ-ron học như đầu bếp nếm canh
Đầu bếp múc một thìa canh, nếm, rồi quyết định: mặn hơn hay nhạt hơn bao nhiêu? Nếu quá nhạt một chút, thêm nhúm muối. Nếu quá mặn, đổ thêm nước. Việc “bao nhiêu” quan trọng không kém việc “hướng nào” — nêm tay nặng sẽ hỏng nồi canh.
Đó chính là đạo hàm: câu trả lời cho câu hỏi “thay đổi nhỏ này làm kết quả thay đổi bao nhiêu?” Và quy tắc chuỗi chính là cách đầu bếp truy ngược xem mỗi bước nấu (thêm muối → đun sôi → rắc hành) đóng góp bao nhiêu vào vị canh cuối cùng.
Bước nấu
Thêm muối, đun sôi, rắc hành — mỗi bước là một hàm.
Nếm vị
So với “vị mong muốn” — ra một con số: loss.
Truy ngược
Bước nào nên sửa bao nhiêu? Chain rule trả lời.
Mạng nơ-ron có 100 lớp. Bạn muốn biết weight w ở LỚP ĐẦU TIÊN ảnh hưởng loss ra sao. Làm sao tính hiệu quả nhất?
Hình minh họa
Dữ liệu x chảy qua ba đoạn ống g → h → f. Mỗi đoạn có một đạo hàm cục bộ — thay đổi nhỏ ở đầu vào của đoạn đó làm đầu ra của đoạn đó thay đổi bao nhiêu. Bấm vào một nút giao để xem chi tiết.
Đạo hàm cục bộ: ∂h/∂g = 2g = 8.00
Ý nghĩa: g tăng 1 → h tăng 2g. Đây là một mảnh của câu trả lời cuối. Chain rule nhân tất cả các mảnh lại.
Kéo thanh x và quan sát: đạo hàm ∂h/∂g = 2g thay đổi theo g, trong khi ∂f/∂h = 1 giữ nguyên. Tích của chúng là gradient tổng.
Kéo thanh để di chuyển điểm trên parabol L(w) = (w − 3)² + 1. Đường tiếp tuyến màu cam cho biết độ dốc tại điểm đó — đúng bằng giá trị đạo hàm.
w
1.00
L(w)
5.00
dL/dw
-4.00
Độ dốc âm → loss đang giảm về bên phải → cần tăng w.
Giờ ta rút gọn mạng nơ-ron thành ba giai đoạn: vào → lớp ẩn → đầu ra → loss. Bấm “Tiếp tục” để thấy từng mảnh đạo hàm cục bộ xuất hiện, rồi cách chúng nhân lại với nhau.
Bước 1 — Lớp vào
x → a₁
Giá trị đầu vào x chạy qua lớp đầu tiên: a₁ = w₁·x + b₁. Đạo hàm cục bộ của a₁ theo x chính là w₁ — hệ số của lớp này.
Cho f(g(x)) với g(x) = 3x và f(g) = g². Áp dụng chain rule, df/dx tại x = 2 bằng bao nhiêu?
Trong một mạng 5 lớp, mọi đạo hàm cục bộ đều bằng 0.3. Gradient của loss theo weight ở lớp đầu tiên (tính qua chain rule) có độ lớn bao nhiêu?
Giải thích
Bạn đã thấy bằng hình: mỗi lớp là một “đoạn ống” có đạo hàm cục bộ. Giờ ta viết lại bằng ba công thức — mỗi công thức đi kèm một câu “nó nghĩa là gì bằng tiếng Việt đời thường”.
Quy tắc chuỗi cho hai lớp hàm
Nếu y = f(g(x)), đạo hàm tổng bằng tích đạo hàm cục bộ.
“Muốn biết y thay đổi bao nhiêu khi x đổi một tí, hãy xem g thay đổi bao nhiêu khi x đổi, rồi y thay đổi bao nhiêu khi g đổi, cuối cùng nhân lại.”
Đạo hàm riêng — một biến mỗi lần
Khi loss L phụ thuộc nhiều weight, ∂L/∂wᵢ chỉ hỏi: “giữ các weight khác yên, đổi riêng wᵢ thì L đổi bao nhiêu?”
“Trong một phòng có 5 người, câu hỏi ‘nếu chỉ một mình bạn thay đổi, nhóm sẽ thay đổi ra sao?’ là đạo hàm riêng.”
Gradient — gom tất cả đạo hàm riêng thành một vector
Mỗi thành phần ứng với một weight. Vector này chỉ hướng loss tăng nhanh nhất — ta đi NGƯỢC nó.
“Tưởng tượng bạn đứng trên sườn đồi sương mù. Gradient là ngón tay chỉ hướng dốc lên. Gradient descent là: đi ngược ngón tay đó, từng bước nhỏ.”
Công cụ đã đủ. Bước kế tiếp là ráp chúng lại thành một thuật toán huấn luyện hoàn chỉnh — xem Gradient — mũi tên chỉ đường xuống dốc để thấy gradient descent hoạt động trên một mặt 2D có thể tương tác.
- Đạo hàm trả lời: 'thay đổi nhỏ này làm kết quả thay đổi bao nhiêu'. Trong ML, đó là dL/dw.
- Đạo hàm riêng giữ mọi biến khác yên, chỉ lắc một biến. Gradient là vector gom mọi đạo hàm riêng lại.
- Quy tắc chuỗi nhân các đạo hàm cục bộ xuyên qua mạng — là nền tảng của backpropagation.
- Mỗi lớp chỉ cần biết đạo hàm cục bộ của mình. Backprop ráp các mảnh lại bằng phép nhân, không cần thần thánh.
Kiểm tra hiểu biết
Đạo hàm dL/dw = -4 nghĩa là gì theo cách dễ hiểu nhất?