# 🔗 Đạo hàm hàm hợp và chain rule

By Better Wise

> Sign in to view the full content of this lesson.

## Từ một độ dốc đến chuỗi phụ thuộc

Bài trước ta đọc $f'(x)$ như độ dốc tiếp tuyến: $x$ nhích 1 đơn vị thì $y$ nhích $f'(x)$ đơn vị. Nhưng trong model, loss hiếm khi phụ thuộc trực tiếp vào trọng số. Nó phụ thuộc theo chuỗi: $w \to z \to \hat{y} \to L$. Chain rule chính là công cụ trả lời câu hỏi thực chiến: "nếu tôi nhích $w$ một chút, loss đổi bao nhiêu?"

Sau bài này bạn sẽ:

- Phát biểu được chain rule cho hàm hợp hai và nhiều tầng.
- Tính tay đạo hàm của hàm hợp 2 đến 3 lớp, có kiểm tra lại.
- Áp chain rule vào loss của hồi quy tuyến tính để ra $\partial L/\partial w$.
- Nhận ra lỗi phổ biến nhất: quên nhân đạo hàm của hàm trong.

## Chain rule: thay đổi lan qua từng mắt xích

Nếu $y = f(u)$ và $u = g(x)$ thì

$$
\frac{dy}{dx} = f'(u) \cdot g'(x) = \frac{dy}{du}\cdot\frac{du}{dx}
$$

Đọc bằng trực giác: nếu $u$ thay đổi gấp 2 lần mỗi khi $x$ đổi, và $y$ thay đổi gấp 3 lần mỗi khi $u$ đổi, thì $y$ thay đổi gấp 6 lần mỗi khi $x$ đổi. **Chain rule chỉ là phép nhân dồn các tốc độ thay đổi trung gian.**

**Ví dụ tính tay:** $y = (3x+1)^2$.

1. Đặt hàm trong: u = 3x + 1, suy ra y = u^2
2. Đạo hàm lớp ngoài: dy/du = 2u
3. Đạo hàm lớp trong: du/dx = 3
4. Nhân lại: dy/dx = 2u · 3 = 6(3x + 1)

Kiểm tra bằng cách khai triển: $y = 9x^2 + 6x + 1$, đạo hàm là $18x + 6 = 6(3x+1)$. Khớp.

**Bài tập 1.** Tính đạo hàm của $y = (2x - 5)^3$.

**Xem đáp án**

$u = 2x - 5$, $dy/du = 3u^2$, $du/dx = 2$, nên $dy/dx = 6(2x-5)^2$.

## Đưa vào loss: từ trọng số đến sai số

Đây là chỗ chain rule kiếm cơm. Với hồi quy tuyến tính một biến: $\hat{y} = wx + b$ và $L = (\hat{y} - y)^2$.

$$
\frac{\partial L}{\partial w} = \frac{\partial L}{\partial \hat{y}} \cdot \frac{\partial \hat{y}}{\partial w} = 2(\hat{y} - y)\cdot x
$$

Ý nghĩa: $2(\hat{y}-y)$ là "model đang lệch bao nhiêu", còn $x$ là "trọng số này ảnh hưởng mạnh cỡ nào tới dự đoán". Nhân hai thứ đó lại chính là mức độ $w$ đang gây ra lỗi.

**Ví dụ số:** $x = 2$, $y = 3$, $w = 0.5$, $b = 0$ cho $\hat{y} = 1$. Khi đó $\partial L/\partial w = 2(1-3)\cdot 2 = -8$. Gradient âm nghĩa là tăng $w$ sẽ làm loss giảm, đúng chiều ta muốn đi.

**Bài tập 2.** Với $x = 1$, $y = 4$, $w = 1$, $b = 1$, tính $\partial L/\partial w$ và cho biết nên tăng hay giảm $w$.

**Xem đáp án**

$\hat{y} = 1\cdot 1 + 1 = 2$, nên $\partial L/\partial w = 2(2-4)\cdot 1 = -4$. Gradient âm, vậy tăng $w$ sẽ giảm loss.

## Bảng đạo hàm cho các hàm hay gặp trong model

| $f(u)$ | $f'(u)$ |
| --- | --- |
| $u^n$ | $n u^{n-1}$ |
| $e^u$ | $e^u$ |
| $\ln u$ | $1/u$ |
| $\sigma(u)$ (sigmoid) | $\sigma(u)(1-\sigma(u))$ |
| $\tanh u$ | $1 - \tanh^2 u$ |
| ReLU | $1$ nếu $u>0$, $0$ nếu $u<0$ |

**Ví dụ sigmoid:** $L = (\sigma(wx+b) - y)^2$ với $x=1$, $w=0$, $b=0$, $y=1$. Ta có $z = 0$, $\sigma(0) = 0.5$, $\partial L/\partial \hat{y} = 2(0.5-1) = -1$, $\sigma'(0) = 0.25$. Nhân lại: $\partial L/\partial w = -1 \cdot 0.25 \cdot 1 = -0.25$.

Chain rule phát biểu: nếu y = f(u) và u = g(x) thì dy/dx = _____.
Với L = (ŷ - y)² và ŷ = wx + b, ta có ∂L/∂w = _____.
Đạo hàm của sigmoid σ(u) là _____.
Đạo hàm của ln(u) là _____, còn đạo hàm của e^u là _____.

## Lan truyền ngược qua nhiều lớp

Xếp hai lớp: $a_1 = w_1 x$, $a_2 = w_2 a_1$, $L = (a_2 - y)^2$. Muốn biết $w_1$ ảnh hưởng thế nào, ta nhân dồn cả chuỗi:

$$
\frac{\partial L}{\partial w_1} = 2(a_2 - y)\cdot w_2 \cdot x
$$

**Ví dụ số:** $x=1$, $w_1=2$, $w_2=0.5$, $y=3$ cho $a_1=2$, $a_2=1$, nên $\partial L/\partial w_1 = 2(1-3)\cdot 0.5 \cdot 1 = -2$.

Để ý: cùng một loss, nhưng gradient của lớp đầu bị nhân thêm $w_2 = 0.5$ nên nhỏ đi. Nếu nhiều lớp đều có trọng số nhỏ, gradient lớp đầu teo dần. Đây là mầm mống của vanishing gradient, ta sẽ gặp lại ở các bài sau.

**Bài tập 3.** Giữ nguyên ví dụ trên nhưng đổi $w_2 = 2$. Tính $\partial L/\partial w_1$ và so sánh độ lớn với kết quả cũ.

**Xem đáp án**

$a_1 = 2$, $a_2 = 4$, $\partial L/\partial w_1 = 2(4-3)\cdot 2 \cdot 1 = 4$. Gradient lớn gấp đôi về độ lớn so với trường hợp $w_2=0.5$ (dấu khác vì $a_2$ đã vượt $y$).

## Những chỗ dễ sai khi nhân đạo hàm

- **Quên lớp trong.** $\frac{d}{dx}(2x-5)^3$ không phải $3(2x-5)^2$ mà là $6(2x-5)^2$. Đây là lỗi số một.
- **Viết chuỗi phụ thuộc trước khi tính.** Ghi ra $w \to z \to \hat{y} \to L$ rồi mới nhân, tránh nhảy cóc.
- **Giữ đúng dấu.** Loss bình phương luôn sinh ra $2(\hat{y}-y)$, đừng bỏ hệ số 2 hay đảo dấu.
- **Kiểm tra bằng xấp xỉ số.** Chọn một $x$ cụ thể, so kết quả với $\frac{f(x+h)-f(x)}{h}$ với $h$ nhỏ như $10^{-4}$. Lệch là sai.
- **Nhìn độ lớn gradient.** Tích nhiều số nhỏ thì gradient teo, tích nhiều số lớn thì gradient nổ. Đây là lý do learning rate phải chọn cẩn thận.

## Chốt lại và bước tiếp theo

- Chain rule: đạo hàm hàm hợp bằng tích các đạo hàm trung gian, $dy/dx = f'(u)\cdot g'(x)$.
- Trong model, nó biến câu hỏi "loss phụ thuộc $w$ thế nào" thành một phép nhân dồn qua từng tầng.
- Với $L = (\hat{y}-y)^2$ và $\hat{y} = wx+b$, kết quả cần nhớ là $\partial L/\partial w = 2(\hat{y}-y)x$.
- Luôn kiểm tra lại bằng xấp xỉ số khi tính tay.

Bài tiếp theo ta mở rộng đúng ý tưởng này sang hàm nhiều biến: mỗi trọng số có một đạo hàm riêng, gom chúng lại thành vector gradient, thứ mà gradient descent sẽ dùng trực tiếp.

Front: Chain rule phát biểu thế nào với y = f(u) và u = g(x)?
Back: dy/dx = f'(u) · g'(x) = (dy/du) · (du/dx).

Front: Vì sao chain rule là nền tảng của backpropagation?
Back: Vì loss là hàm hợp nhiều lớp, gradient phải nhân dồn đạo hàm của từng lớp.

Front: Đạo hàm của y = (3x + 1)^2 theo x?
Back: 6(3x + 1), tức 18x + 6.

Front: Đạo hàm của e^u theo u?
Back: e^u.

Front: Đạo hàm của ln(u)?
Back: 1/u.

Front: Đạo hàm của sigmoid σ(u)?
Back: σ(u)(1 − σ(u)).

Front: Đạo hàm của tanh(u)?
Back: 1 − tanh²(u).

Front: Với L = (ŷ − y)² và ŷ = wx + b, ∂L/∂w bằng gì?
Back: 2(ŷ − y)·x.

Front: Lỗi phổ biến nhất khi áp dụng chain rule?
Back: Quên nhân với đạo hàm của hàm trong.

Front: Cách kiểm tra nhanh một đạo hàm tính tay?
Back: So với xấp xỉ số (f(x+h) − f(x))/h với h rất nhỏ.

Front: Với a1 = w1·x, a2 = w2·a1, L = (a2 − y)², dL/dw1 bằng gì?
Back: 2(a2 − y)·w2·x.

Front: Đạo hàm của ReLU tại u > 0?
Back: 1 (và bằng 0 khi u < 0).

Front: Gradient của lớp đầu bị nhân bởi gì trong mạng nhiều lớp?
Back: Bởi trọng số của các lớp phía sau, nên dễ teo hoặc nổ.

---

## Contents

Part of [📉 Khóa 3: Toán cho Machine Learning — đạo hàm, gradient và tối ưu hóa huấn luyện](https://everwise.study/courses/khoa-3-toan-cho-machine-learning-dao-ham-gradient-va-toi-uu-hoa-huan-luyen.md)

- **📐 Đạo hàm, độ dốc và gradient**
  - [📈 Độ dốc và ý nghĩa hình học của đạo hàm](https://everwise.study/courses/khoa-3-toan-cho-machine-learning-dao-ham-gradient-va-toi-uu-hoa-huan-luyen/do-doc-va-y-nghia-hinh-hoc-cua-dao-ham.md)
  - [🔗 Đạo hàm hàm hợp và chain rule](https://everwise.study/courses/khoa-3-toan-cho-machine-learning-dao-ham-gradient-va-toi-uu-hoa-huan-luyen/dao-ham-ham-hop-va-chain-rule.md) (sign-in required) — this lesson
  - [🧭 Đạo hàm riêng và vector gradient](https://everwise.study/courses/khoa-3-toan-cho-machine-learning-dao-ham-gradient-va-toi-uu-hoa-huan-luyen/dao-ham-rieng-va-vector-gradient.md)
  - [✅ Checkpoint: Đạo hàm và gradient](https://everwise.study/courses/khoa-3-toan-cho-machine-learning-dao-ham-gradient-va-toi-uu-hoa-huan-luyen/checkpoint-dao-ham-va-gradient.md)
- **📉 Gradient descent và hồi quy tuyến tính**
  - [✍️ Gradient descent tính tay từng bước](https://everwise.study/courses/khoa-3-toan-cho-machine-learning-dao-ham-gradient-va-toi-uu-hoa-huan-luyen/gradient-descent-tinh-tay-tung-buoc.md)
  - [🎚️ Learning rate, dao động và phân kỳ](https://everwise.study/courses/khoa-3-toan-cho-machine-learning-dao-ham-gradient-va-toi-uu-hoa-huan-luyen/learning-rate-dao-dong-va-phan-ky.md)
  - [⛰️ Cực trị, saddle point và điểm dừng](https://everwise.study/courses/khoa-3-toan-cho-machine-learning-dao-ham-gradient-va-toi-uu-hoa-huan-luyen/cuc-tri-saddle-point-va-diem-dung.md)
  - [🛠️ Project: Hồi quy tuyến tính với gradient descent](https://everwise.study/courses/khoa-3-toan-cho-machine-learning-dao-ham-gradient-va-toi-uu-hoa-huan-luyen/project-hoi-quy-tuyen-tinh-voi-gradient-descent.md)
  - [✅ Checkpoint: Gradient descent và hồi quy tuyến tính](https://everwise.study/courses/khoa-3-toan-cho-machine-learning-dao-ham-gradient-va-toi-uu-hoa-huan-luyen/checkpoint-gradient-descent-va-hoi-quy-tuyen-tinh.md)
- [Course cheatsheet](https://everwise.study/courses/khoa-3-toan-cho-machine-learning-dao-ham-gradient-va-toi-uu-hoa-huan-luyen/cheatsheet.md) (premium content)
