# 🎯 Policy Gradient cho người mới: từ toán nền tảng đến đồ án REINFORCE

By Everwise Intern · Generated by Everwise

Khóa học nhanh, đi từ nền tảng toán tối thiểu (kỳ vọng, gradient, log-derivative trick) đến việc tự cài đặt thuật toán REINFORCE từ đầu, kèm kỹ thuật giảm variance (baseline, advantage) và hoàn thiện một đồ án Policy Gradient chạy được trên môi trường đơn giản.

- **Level:** Beginner
- **Goal:** Build a project
- **Language:** Vietnamese
- **Focus:** [Nền tảng toán: gradient, kỳ vọng, log-derivative trick](/courses?q=N%E1%BB%81n%20t%E1%BA%A3ng%20to%C3%A1n%3A%20gradient%2C%20k%E1%BB%B3%20v%E1%BB%8Dng%2C%20log-derivative%20trick), [Cài đặt REINFORCE và các kỹ thuật giảm variance (baseline, advantage)](/courses?q=C%C3%A0i%20%C4%91%E1%BA%B7t%20REINFORCE%20v%C3%A0%20c%C3%A1c%20k%E1%BB%B9%20thu%E1%BA%ADt%20gi%E1%BA%A3m%20variance%20(baseline%2C%20advantage))
- **Practice:** Capstone project
- **Time:** ~3.1h
- **Voice:** Một gia sư kiên nhẫn giải thích từ đầu cho người mới, không bỏ qua bước nào

## Bạn sẽ đạt được gì

Sau khóa học này, bạn sẽ có thể:

- Viết được thuật toán Policy Gradient (REINFORCE) từ đầu bằng Python, không dùng thư viện RL có sẵn.
- Giải thích được vì sao log-derivative trick (thủ thuật đạo hàm log) biến bài toán tối ưu phần thưởng thành một công thức cập nhật policy (chính sách) có thể cài đặt được.
- Thêm baseline (đường cơ sở) và advantage (lợi thế) vào công thức cập nhật để giảm variance (phương sai) khi huấn luyện.
- Huấn luyện agent trên một môi trường đơn giản, vẽ biểu đồ phần thưởng theo thời gian và đọc được biểu đồ đó để biết quá trình học có tiến bộ hay không.
- Tự đánh giá kết quả đồ án: nhận ra dấu hiệu học ổn định, dấu hiệu variance quá cao, và biết chỉnh gì tiếp theo.

Điểm quan trọng: bạn không chỉ đọc công thức. Bạn sẽ tự gõ từng dòng code và chạy được nó.

## Khóa học này dành cho ai

Khóa học dành cho người mới bắt đầu (beginner). Không yêu cầu kiến thức nền trước về RL hay về toán xác suất nâng cao.

Bạn chỉ cần:

- Biết Python cơ bản: biến, vòng lặp, hàm, list.
- Sẵn sàng làm quen lại với đạo hàm và kỳ vọng (expectation) ở mức trực giác, không cần giải tích nặng.

Nếu bạn từng thấy các ký hiệu gradient và kỳ vọng nhưng chưa chắc mình hiểu, đây đúng là chỗ dành cho bạn. Khóa học cố tình đi chậm, giải thích từ đầu, không bỏ qua bước nào.

## Lộ trình khóa học

Khóa học có 8 bài, chia thành 2 module.

**Module 1: Nền tảng toán cho Policy Gradient**

1. **Ôn nhanh: kỳ vọng, gradient và quy tắc chuỗi.** Nhắc lại ba công cụ toán bạn sẽ dùng suốt khóa, bằng ngôn ngữ trực giác trước rồi mới tới ký hiệu.
2. **Log-derivative trick: vì sao đạo hàm của log xác suất lại hữu ích.** Đây là mảnh ghép then chốt: nó cho phép ta lấy gradient của một kỳ vọng mà không cần biết môi trường hoạt động ra sao.
3. **Từ mục tiêu phần thưởng đến công thức cập nhật policy.** Ghép các mảnh lại thành công thức REINFORCE hoàn chỉnh và hiểu ý nghĩa từng thành phần.
4. **Checkpoint: nền tảng toán của Policy Gradient.** Bài kiểm tra ngắn để chắc bạn đã nắm phần toán trước khi sang code.

**Module 2: Đồ án: cài đặt REINFORCE và giảm variance**

5. **Dựng khung đồ án và viết vòng lặp REINFORCE đầu tiên.** Chuyển công thức ở Module 1 thành code chạy được: chọn hành động, thu phần thưởng, cập nhật policy.
6. **Giảm variance với baseline và advantage.** Thêm hai kỹ thuật giúp quá trình học bớt "rung lắc" và ổn định hơn.
7. **Huấn luyện, vẽ biểu đồ và đánh giá kết quả đồ án.** Chạy huấn luyện đủ lâu, vẽ đường phần thưởng, và đọc biểu đồ để kết luận agent có học được không.
8. **Checkpoint: cài đặt REINFORCE và giảm variance.** Bài kiểm tra cuối, gắn với chính đồ án bạn vừa xây.

## Cách khóa học vận hành

Khóa học trộn bốn loại bài:

- **Bài lý thuyết:** giải thích khái niệm và công thức, có sơ đồ và hình vẽ minh họa.
- **Bài thực hành:** viết code từng bước, mỗi bước đều giải thích vì sao làm vậy.
- **Bài đồ án:** mỗi bài thêm một mảnh vào cùng một chương trình duy nhất, không phải bài tập rời rạc.
- **Bài checkpoint:** câu hỏi ngắn để tự kiểm tra trước khi đi tiếp.

Tổng thời lượng ước tính khoảng **230 phút cho 8 bài**, tức trung bình gần 30 phút mỗi bài. Bạn có thể chia nhỏ tùy lịch.

Cách học gợi ý:

- **Đi tuần tự từ bài 1 đến bài 8.** Các bài được xếp theo thứ tự phụ thuộc: bài sau dùng kiến thức bài trước. Riêng phần toán ở Module 1 là nền cho toàn bộ code ở Module 2, nên đừng nhảy cóc qua nó.
- **Có thể đọc lướt nếu bạn đã vững.** Nếu bạn đã biết gradient và kỳ vọng, bài 1 có thể đọc nhanh. Nếu đã quen REINFORCE, bạn vẫn nên làm bài 5 đến 7 vì đó là phần đồ án.
- **Làm checkpoint trước khi sang module tiếp theo.** Nếu checkpoint chưa đạt, quay lại bài lý thuyết tương ứng thay vì đi tiếp.

## Đồ án của khóa học

Đồ án xuyên suốt khóa có tên **"REINFORCE từ con số 0"**. Đây là một chương trình duy nhất bạn xây dần qua từng bài, không phải các bài tập rời rạc ghép lại.

Sản phẩm cuối cùng là một agent học tăng cường chạy được trên một môi trường đơn giản, bao gồm:

- Một policy (chính sách) sinh xác suất chọn hành động.
- Vòng lặp thu thập kinh nghiệm và cập nhật theo công thức REINFORCE.
- Baseline và advantage để giảm variance.
- Một script huấn luyện có vẽ biểu đồ phần thưởng theo thời gian.
- Một phần đánh giá ngắn: agent có học được không, và dựa vào đâu bạn kết luận như vậy.

Các bài nuôi đồ án theo thứ tự:

- **Bài 1 đến 3** cung cấp phần toán: kỳ vọng, gradient, log-derivative trick, và công thức cập nhật. Đây là bản thiết kế giấy của đồ án.
- **Bài 5** là lúc đồ án thành code: vòng lặp REINFORCE đầu tiên chạy được.
- **Bài 6** nâng cấp đồ án với baseline và advantage.
- **Bài 7** huấn luyện, vẽ biểu đồ và đánh giá đồ án.
- **Bài 4 và bài 8** là hai checkpoint kiểm tra bạn đã nắm đủ để giữ đồ án đi đúng hướng.

Nói cách khác: đến cuối khóa, bạn không còn một tập ghi chú về Policy Gradient, mà có một chương trình chạy được và hiểu vì sao nó chạy được.

## Contents

- **🧮 Nền tảng toán cho Policy Gradient**
  - [📐 Ôn nhanh: kỳ vọng, gradient và quy tắc chuỗi](https://everwise.study/courses/policy-gradient-cho-nguoi-moi-tu-toan-nen-tang-den-do-an-reinforce/quick-review-expectation-gradient-chain-rule.md)
  - [🔑 Log-derivative trick: vì sao đạo hàm của log xác suất lại hữu ích](https://everwise.study/courses/policy-gradient-cho-nguoi-moi-tu-toan-nen-tang-den-do-an-reinforce/log-derivative-trick-explained.md) (sign-in required)
  - [🧭 Từ mục tiêu phần thưởng đến công thức cập nhật policy](https://everwise.study/courses/policy-gradient-cho-nguoi-moi-tu-toan-nen-tang-den-do-an-reinforce/policy-gradient-theorem-intuition.md)
  - [✅ Checkpoint: nền tảng toán của Policy Gradient](https://everwise.study/courses/policy-gradient-cho-nguoi-moi-tu-toan-nen-tang-den-do-an-reinforce/checkpoint-policy-gradient-math.md)
- **🛠️ Đồ án: cài đặt REINFORCE và giảm variance**
  - [📉 Giảm variance với baseline và advantage](https://everwise.study/courses/policy-gradient-cho-nguoi-moi-tu-toan-nen-tang-den-do-an-reinforce/variance-reduction-baseline-advantage-project.md)
  - [📊 Huấn luyện, vẽ biểu đồ và đánh giá kết quả đồ án](https://everwise.study/courses/policy-gradient-cho-nguoi-moi-tu-toan-nen-tang-den-do-an-reinforce/train-plot-evaluate-capstone-project.md)
  - [✅ Checkpoint: cài đặt REINFORCE và giảm variance](https://everwise.study/courses/policy-gradient-cho-nguoi-moi-tu-toan-nen-tang-den-do-an-reinforce/checkpoint-reinforce-and-variance-reduction.md)
- [Course cheatsheet](https://everwise.study/courses/policy-gradient-cho-nguoi-moi-tu-toan-nen-tang-den-do-an-reinforce/cheatsheet.md) (premium content)
