# 4️⃣ Backpropagation (giải thích dễ hiểu)

<figure><img src="/files/3NR6xBiqj5CgofeRBhot" alt=""><figcaption></figcaption></figure>

#### 1. Backpropagation là gì?

Backpropagation (lan truyền ngược) là **thuật toán cốt lõi** giúp mạng nơ-ron:

* biết mình sai ở đâu,
* biết phải điều chỉnh trọng số nào,
* và học dần dần qua từng lần huấn luyện.

Nói ngắn gọn:

> **Forward**: mô hình dự đoán\
> **Backward**: mô hình sửa lỗi

Không có backpropagation:

> Deep Learning **không thể học**.

***

#### 2. Vì sao cần lan truyền ngược?

Trong một mạng nơ-ron nhiều tầng:

* sai số xuất hiện ở **tầng cuối**
* nhưng nguyên nhân có thể đến từ **các tầng đầu**

Câu hỏi quan trọng là:

> “Sai số này do neuron nào gây ra nhiều nhất?”

Backpropagation trả lời câu hỏi đó bằng cách:

* truyền sai số từ output
* ngược về các tầng trước
* phân bổ “trách nhiệm” cho từng trọng số

***

#### 3. Hai pha trong quá trình huấn luyện

Mỗi vòng huấn luyện (iteration) gồm **2 pha rõ ràng**.

**3.1 Forward pass (lan truyền xuôi)**

* Dữ liệu đi từ input → output
* Mỗi neuron:
  * nhân trọng số
  * cộng bias
  * qua activation function
* Mô hình tạo ra dự đoán
* Tính **loss**

***

**3.2 Backward pass (lan truyền ngược)**

* Bắt đầu từ loss
* Tính gradient của loss theo từng tham số
* Truyền gradient ngược về các tầng trước
* Chuẩn bị cập nhật trọng số

📌 Backward pass là nơi **chain rule** được sử dụng.

***

#### 4. Gradient – thông tin quan trọng nhất

Gradient cho biết:

* nếu thay đổi trọng số một chút
* thì loss sẽ thay đổi bao nhiêu

Ý nghĩa:

* gradient lớn → tham số ảnh hưởng nhiều
* gradient nhỏ → tham số ảnh hưởng ít

Backpropagation giúp:

> tính gradient cho **hàng triệu tham số** một cách hiệu quả

***

#### 5. Cập nhật trọng số (Weight Update)

Sau khi có gradient:

* optimizer (SGD, Adam, …) sẽ:
  * điều chỉnh trọng số
  * theo hướng **giảm loss**

Quá trình này:

* lặp lại nhiều lần
* trên nhiều batch dữ liệu

👉 Mỗi lần cập nhật:

> mô hình học **một chút**

***

#### 6. Vai trò của Learning Rate

Learning rate quyết định:

* bước cập nhật **lớn hay nhỏ**
* Quá lớn → học không ổn định
* Quá nhỏ → học rất chậm

📌 Learning rate **không thuộc backpropagation**,\
nhưng ảnh hưởng trực tiếp đến hiệu quả học.

***

#### 7. Backpropagation không phải “trí thông minh”

Cần hiểu đúng:

* Backpropagation **không suy nghĩ**
* Không hiểu dữ liệu
* Không biết “đúng” hay “sai” theo nghĩa con người

Nó chỉ:

> áp dụng toán học\
> để giảm loss một cách có hệ thống

***

#### 8. Vấn đề thường gặp khi backpropagation

Một số khó khăn phổ biến:

* vanishing gradient (gradient quá nhỏ)
* exploding gradient (gradient quá lớn)
* học chậm hoặc không hội tụ

Các giải pháp:

* activation function phù hợp (ReLU)
* normalization
* optimizer tốt hơn

📌 Đây là lý do Deep Learning cần **nhiều kỹ thuật hỗ trợ**.

***

#### 9. Trực giác tổng quát

Bạn có thể hình dung backpropagation như:

* giáo viên chấm bài
* chỉ ra lỗi
* học sinh sửa dần từng lỗi nhỏ

Không sửa hết trong một lần,\
mà **sửa dần qua nhiều vòng**.

***

#### 10. Sau page này, bạn cần nắm được gì?

Sau khi đọc xong page này, bạn nên:

* hiểu vai trò của backpropagation
* phân biệt forward và backward pass
* hiểu vì sao Deep Learning cần nhiều dữ liệu và thời gian

👉 Từ đây trở đi, bạn đã **hiểu được cách mạng nơ-ron học**.

Ở group tiếp theo, chúng ta sẽ trả lời câu hỏi:

> **Khi nào mạng nơ-ron được gọi là “Deep”?**

<figure><img src="/files/3wUZ5V026qQokCHXvvke" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://deeplearningcoban.gitbook.io/deeplearningcoban.com/neural-network-co-ban/backpropagation-giai-thich-de-hieu.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
