1. Trang chủ
  2. » Cao đẳng - Đại học

Báo cáo phân tích tìm hiểu về học tăng cường và Ứng dụng

41 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm hiểu về Học tăng cường và Ứng dụng
Tác giả Hoàng Xuân Tuyền
Người hướng dẫn Nguyễn Quốc Tuấn
Trường học Trường Đại học Giao thông Vận tải
Chuyên ngành Công nghệ thông tin
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 41
Dung lượng 1,67 MB
File đính kèm hoc may.zip (2 MB)

Nội dung

Học máy và học tăng cường là hai lĩnh vực đang nhận được sự quan tâm rất lớn của cộng đồng khoa học máy tính. Cả hai lĩnh vực này đều liên quan đến khả năng tự học và tự cải thiện của máy tính, từ đó giúp cải thiện hiệu quả công việc và đời sống của con người. Trong báo cáo này, chúng ta sẽ tìm hiểu về học tăng cường - một phương pháp học máy đặc biệt, nơi mà mô hình học tập sẽ phải tương tác với môi trường bên ngoài và phải học từ những phản hồi mà môi trường đưa ra. Chúng ta cũng sẽ khám phá một số thuật toán trong học tăng cường và cách sử dụng các công cụ, ngôn ngữ lập trình, thư viện và framework để triển khai các mô hình học tăng cường. Nội dung của tài liệu sẽ được chia thành 3 chương. Chương đầu tiên là giới thiệu về học máy, bao gồm khái niệm cơ bản và các loại thuật toán học máy. Tiếp theo, chương 2 sẽ giới thiệu về học tăng cường và các thuật toán trong học tăng cường. Chương 3 sẽ tiến hành áp dụng một mô hình học tăng cường vào giải quyết một bài toán cụ thể. Cuối cùng sẽ đi đến kết luận về mô hình vừa thực hiện và những điều có thể cải thiện trong tương lai. Em hy vọng tài liệu này có thể đem lại cho người đọc một cái nhìn tổng quan và cơ bản về học tăng cường cũng như các công cụ liên quan, từ đó có thể tiếp cận và nghiên cứu sâu hơn về lĩnh vực này

Trang 1

KHOA CÔNG NGHỆ THÔNG TIN -o0o -

ĐỒ ÁN TỐT NGHIỆP

ĐỀ TÀI TÌM HIỂU VỀ HỌC TĂNG CƯỜNG VÀ ỨNG DỤNG

Giảng viên hướng dẫn : Nguyễn Quốc Tuấn

Sinh viên thực hiện : Hoàng Xuân Tuyền

Mã sinh viên : 191241113

Hà Nội, 05/2023

Trang 2

LỜI CẢM ƠN

Đầu tiên em xin được gửi lời cảm ơn chân thành nhất đến Ban Chủ nhiệm Khoa và quý thầy cô đã dành thời gian và công sức để hướng dẫn, hỗ trợ và đánh giá báo cáo tốt nghiệp của em

Trong suốt quá trình thực hiện báo cáo này, em đã nhận được sự chỉ dẫn tận tâm từ quý thầy cô Những gợi ý, nhận xét và phản hồi quý báu từ quý thầy cô đã giúp em cải thiện nội dung và phương pháp nghiên cứu của báo cáo Em cảm kích sự kiên nhẫn và nhất quán của quý thầy cô trong việc hỗ trợ em hoàn thành báo cáo một cách chất lượng và đúng thời hạn

Em cũng muốn bày tỏ lòng biết ơn đến các giảng viên và nhân viên khoa đã tạo môi trường học tập thuận lợi và trang bị cho em những kiến thức và kỹ năng quan trọng Nhờ vào sự tận tâm và chuyên môn của quý thầy cô, em đã có cơ hội tiếp cận với những nguồn

tư liệu và công nghệ hiện đại, từ đó phát triển khả năng nghiên cứu và phân tích của mình Cuối cùng, em xin gửi lời cảm ơn đến gia đình, bạn bè và những người thân yêu đã luôn đồng hành, động viên và ủng hộ em trong suốt quá trình học tập Sự yêu thương và sự tin tưởng của các bạn là nguồn động lực quan trọng giúp em vượt qua khó khăn và đạt được thành công trong việc hoàn thành báo cáo tốt nghiệp

Trang 3

1.1 Giới thiệu về học máy 7 1.1.1 Khái niệm về học máy 7 1.1.2 Các loại thuật toán học máy 7 1.2 Các công cụ và ngôn ngữ lập trình sử dụng 8 1.2.1 Ngôn ngữ lập trình Python 8 1.2.2 Một số thư viện và framework 8

2.1 Các kiến thức cơ bản trong học tăng cường 13 2.1.1 Markov Decision Process 13 2.1.2 Phần thưởng và phản hồi 14 2.1.3 Hệ số chiết khấu 14 2.1.4 Hàm chính sách 15 2.1.5 Hàm giá trị trạng thái 16 2.1.5 Hàm giá trị hành động - trạng thái (hàm Q) 16 2.1.6 Phương trình Bellman 17 2.2 Một số thuật toán trong học tăng cường 18

Trang 4

3.1 Giới thiệu về bài toán 32 3.2 Xây dựng mô hình Deep Q Network cho Pacman 33 3.2.1 Môi trường đào tạo 33 3.2.2 Mô hình mạng Deep Q Network 33 3.2.3 Rank Based Prioritized Experience Replay 34 3.2.4 Epsilon decay 35 3.2.5 Cập nhật mạng Q 35 3.2.6 Kết quả thực nghiệm 35

Trang 5

DANH MỤC BẢNG BIỂU

Bảng 2.2: Bảng giá trị trạng thái sau khi cập nhật 17

Bảng 2.3: Bảng giá trị trạng thái ban đầu 20

Bảng 2.4: Bảng xác suất chuyển đổi và phần thưởng 20

Bảng 2.6: Bảng giá trị trạng thái sau cập nhật 22

Bảng 2.7: Bảng giá trị trạng thái sau lần lặp thứ nhất 22

Bảng 2.8: Bảng giá trị trạng thái sau lần lặp thứ 2 22

Bảng 2.9: Bảng giá trị trạng thái sau lần lặp thứ 3 23

Bảng 2.12: Bảng Q cho trạng thái đầu tiên 26

Bảng 2.13: Bảng Q sau bước cập nhật đầu tiên 26

Bảng 2.14: Bảng Q sau vài bước cập nhật 27

Trang 6

DANH MỤC HÌNH ẢNH

Hình 2.1: Mô hình chu trình quyết định Markov 1 3

Hình 2.2: Minh họa bài toán tìm đường 1 5

Hình 2.3: Sơ đồ khối thuật toán lặp giá trị 19

Hình 2.5: Sơ đồ khối thuật toán Q learning 24

Hình 2.6: Ma trận trạng thái game Frozen Lake 2 5

Hình 2.7: Ma trận trạng thái hiện tại 2 7

Hình 2.8: Q learning và Deep Q Network 2 9

Hình 2.9: Sơ đồ hoạt động của Deep Q Network 30

Hình 3.1: Giao diện của Pacman trên OpenGym 32

Hình 3.2: Mô hình luồng xử lý của một Q network 33

Hình 3.4: Biểu đồ thể hiện giá trị Loss qua từng lần cập nhật mô hình 36

Hình 3.5: Biểu đồ thể hiện phần thưởng qua mỗi tập 37

Hình 3.6 : Kết quả thực nghiệm trên môi trường thực tế 38

Trang 7

MỞ ĐẦU

Học máy và học tăng cường là hai lĩnh vực đang nhận được sự quan tâm rất lớn của cộng đồng khoa học máy tính Cả hai lĩnh vực này đều liên quan đến khả năng tự học và tự cải thiện của máy tính, từ đó giúp cải thiện hiệu quả công việc và đời sống của con người Trong báo cáo này, chúng ta sẽ tìm hiểu về học tăng cường - một phương pháp học máy đặc biệt, nơi mà mô hình học tập sẽ phải tương tác với môi trường bên ngoài và phải học từ những phản hồi mà môi trường đưa ra Chúng ta cũng sẽ khám phá một số thuật toán trong học tăng cường và cách sử dụng các công cụ, ngôn ngữ lập trình, thư viện và framework để triển khai các mô hình học tăng cường

Nội dung của tài liệu sẽ được chia thành 3 chương Chương đầu tiên là giới thiệu về học máy, bao gồm khái niệm cơ bản và các loại thuật toán học máy Tiếp theo, chương 2

sẽ giới thiệu về học tăng cường và các thuật toán trong học tăng cường Chương 3 sẽ tiến hành áp dụng một mô hình học tăng cường vào giải quyết một bài toán cụ thể Cuối cùng

sẽ đi đến kết luận về mô hình vừa thực hiện và những điều có thể cải thiện trong tương lai

Em hy vọng tài liệu này có thể đem lại cho người đọc một cái nhìn tổng quan và cơ bản về học tăng cường cũng như các công cụ liên quan, từ đó có thể tiếp cận và nghiên cứu sâu hơn về lĩnh vực này

Trang 8

CHƯƠNG 1: TỔNG QUAN VỀ HỌC MÁY

1.1 Giới thiệu về học máy

1.1.1 Khái niệm về học máy

Học máy là một công nghệ phát triển từ lĩnh vực trí tuệ nhân tạo Các thuật toán học máy là các chương trình máy tính có khả năng học hỏi về cách hoàn thành các nhiệm

vụ và cách cải thiện hiệu suất theo thời gian

Học máy vẫn đòi hỏi sự đánh giá của con người trong việc tìm hiểu dữ liệu cơ sở và lựa chọn các kĩ thuật phù hợp để phân tích dữ liệu Đồng thời, trước khi sử dụng, dữ liệu phải sạch, không có sai lệch và không có dữ liệu giả

Các mô hình học máy yêu cầu lượng dữ liệu đủ lớn để "huấn luyện" và đánh giá mô hình Trước đây, các thuật toán học máy thiếu quyền truy cập vào một lượng lớn dữ liệu cần thiết để mô hình hóa các mối quan hệ giữa các dữ liệu Sự tăng trưởng trong dữ liệu lớn (big data) đã cung cấp các thuật toán học máy với đủ dữ liệu để cải thiện độ chính xác của mô hình và dự đoán

1.1.2 Các loại thuật toán học máy

Học có giám sát (Supervised learning): là một phương pháp học máy sử dụng một tập dữ liệu huấn luyện được gắn nhãn để dự đoán kết quả trên các tập dữ liệu mới Thuật toán học có giám sát phân loại dữ liệu dựa trên đầu vào và nhãn của chúng Các ví dụ về học có giám sát bao gồm phân loại và hồi quy

Học không giám sát (Unsupervised learning): là phương pháp học máy không có dữ liệu huấn luyện được gắn nhãn Thuật toán học không giám sát tìm kiếm mối liên hệ giữa các đặc trưng của dữ liệu và tạo ra các nhóm dữ liệu mới Các ví dụ về học không giám sát bao gồm phân cụm và giảm chiều dữ liệu

Học bán giám sát (Semi-supervised learning): là phương pháp học máy kết hợp giữa học có giám sát và học không giám sát Nó sử dụng một số lượng nhỏ dữ liệu huấn luyện được gắn nhãn kết hợp với dữ liệu không được gắn nhãn để tạo ra một mô hình dự đoán cho các tập dữ liệu mới

Học tăng cường (Reinforcement learning): là phương pháp học máy tập trung vào việc học cách ra quyết định tối ưu thông qua việc tương tác liên tục với một môi trường Thuật toán học tăng cường đưa ra quyết định dựa trên các phản hồi từ môi trường để đạt được mục tiêu tối đa Các ví dụ về học tăng cường bao gồm tự động lái xe và robot tự động

Trang 9

1.2 Các công cụ và ngôn ngữ lập trình sử dụng

1.2.1 Ngôn ngữ lập trình Python

Python là một ngôn ngữ lập trình được sử dụng rộng rãi trong các ứng dụng web, phát triển phần mềm, khoa học dữ liệu và máy học (Machine Learning - học máy) Các nhà phát triển sử dụng Python vì nó hiệu quả, dễ học và có thể chạy trên nhiều nền tảng khác nhau Phần mềm Python được tải xuống miễn phí, tích hợp tốt với tất cả các loại hệ thống và tăng tốc độ phát triển

Những lợi ích của Python bao gồm:

- Các nhà phát triển có thể dễ dàng đọc và hiểu một chương trình Python vì ngôn ngữ này có cú pháp cơ bản giống tiếng Anh

- Python giúp cải thiện hiệu suất làm việc của các nhà phát triển vì vậy với những ngôn ngữ khác, họ có thể sử dụng ít dòng mã hơn để viết một chương trình Python

- Python có một thư viện tiêu chuẩn lớn, chứa nhiều dòng mã có thể tái sử dụng cho hầu hết mọi nhiệm vụ Nhờ đó, các nhà phát triển sẽ không cần phải viết mã từ đầu

- Các nhà phát triển có thể dễ dàng sử dụng Python với các ngôn ngữ lập trình phổ biến khác như Java, C và C++

- Cộng đồng Python tích cực hoạt động bao gồm hàng triệu nhà phát triển nhiệt tình

hỗ trợ trên toàn thế giới Nếu gặp phải vấn đề, bạn sẽ có thể nhận được sự hỗ trợ nhanh chóng từ cộng đồng

- Trên Internet có rất nhiều tài nguyên hữu ích nếu bạn muốn học Python Ví dụ: bạn

có thể dễ dàng tìm thấy video, chỉ dẫn, tài liệu và hướng dẫn dành cho nhà phát triển

- Python có thể được sử dụng trên nhiều hệ điều hành máy tính khác nhau, chẳng hạn như Windows, macOS, Linux và Unix

1.2.2 Một số thư viện và framework

Có rất nhiều các thư viện và framework hỗ trợ cho việc học tăng cường sử dụng ngôn ngữ lập trình Python, dưới đây là một vài ví dụ :

- OpenAI Gym: OpenAI Gym là một thư viện mã nguồn mở cung cấp một số môi trường học tăng cường phổ biến để thử nghiệm các thuật toán học tăng cường Nó cung cấp một API để tương tác với các môi trường và giúp người dùng xây dựng và đánh giá các thuật toán học tăng cường

- Tensorflow: TensorFlow là một framework phổ biến để xây dựng mô hình học máy và học tăng cường Nó cung cấp một API để xây dựng các mô hình học tăng cường, bao gồm các lớp mạng nơ-ron và các thuật toán tối ưu

Trang 10

- PyTorch: PyTorch là một framework mã nguồn mở với một số tính năng dành cho học tăng cường Nó cung cấp các công cụ xây dựng mô hình học tăng cường, bao gồm các lớp mạng nơ-ron và các thuật toán tối ưu

- Keras-RL: Keras-RL là một thư viện học tăng cường dựa trên Keras, một framework học máy phổ biến Nó cung cấp các thuật toán học tăng cường như Deep Q-Learning, Gradient Policy và Actor-Critic

- Ray RLlib: Ray RLlib là một thư viện học tăng cường dựa trên Ray, một framework mã nguồn mở để xây dựng hệ thống phân tán Nó cung cấp một loạt các thuật toán học tăng cường và hỗ trợ cho việc phân phối tập dữ liệu và đào tạo mô hình trên nhiều nút tính toán

Một vài ưu nhược điểm của các framework, thư viện:

- OpenAI Gym: Gym là một thư viện mã nguồn mở phổ biến và được sử dụng rộng rãi trong cộng đồng học tăng cường Nó cung cấp một số môi trường học tăng cường chuẩn và API để tương tác với chúng Gym rất dễ sử dụng và cung cấp một cách tiếp cận trực quan cho học tăng cường Tuy nhiên, Gym chỉ cung cấp các môi trường đơn giản, không đủ để thử nghiệm các thuật toán học tăng cường phức tạp

- Tensorflow và PyTorch: TensorFlow và PyTorch đều là các framework học máy phổ biến và được sử dụng rộng rãi Cả hai đều cung cấp một số tính năng học tăng cường, bao gồm các lớp mạng nơ-ron và các thuật toán tối ưu TensorFlow có thể được sử dụng để xây dựng các mô hình học tăng cường lớn và phức tạp hơn, trong khi PyTorch có cách tiếp cận đơn giản hơn cho việc xây dựng mô hình học tăng cường Tuy nhiên, cả hai đều yêu cầu người dùng có kiến thức về lập trình và học tăng cường để sử dụng hiệu quả

- Keras-RL: Keras-RL là một thư viện học tăng cường dựa trên Keras, một framework học máy phổ biến Nó cung cấp một số thuật toán học tăng cường phổ biến và có cách tiếp cận đơn giản hơn so với các framework học tăng cường khác Tuy nhiên, Keras-RL không cung cấp nhiều tính năng tùy chỉnh và không thể được

sử dụng để xây dựng các mô hình học tăng cường phức tạp

- RLLib là một framework học tăng cường mã nguồn mở được phát triển bởi Anyscale

- RLLib cung cấp cho người dùng một loạt các thuật toán học tăng cường khác nhau, cho phép người dùng chọn thuật toán phù hợp với vấn đề của họ

- RLLib cho phép người dùng mở rộng các thuật toán hiện có hoặc thêm các thuật toán mới vào framework

- RLLib tương thích với các thư viện học máy phổ biến như TensorFlow và PyTorch

Trang 11

- RLLib hỗ trợ nhiều loại mô hình, bao gồm mô hình Markov Decision Process (MDP), mô hình Partially Observable MDP (POMDP) và mô hình trò chơi

- RLLib được thiết kế để tối ưu hóa việc huấn luyện các mô hình học tăng cường, giúp giảm thời gian đào tạo và tăng hiệu suất

- Tuy vậy, việc sử dụng RLLib khá là khó khăn vì nó yêu cầu người dùng có kiến thức chuyên sâu về học tăng cường để sử dụng hiệu quả Tài liệu của

nó không được đầy đủ và chi tiết, do đó người dùng cần tìm hiểu thêm từ các nguồn bên ngoài để sử dụng framework hiệu quả RLLib đòi hỏi một phần cứng mạnh để xử lý các mô hình học tăng cường phức tạp và để đạt được hiệu suất tốt trong quá trình huấn luyện

Dưới đây là bảng so sánh các framework và thư viện dựa trên một số các tiêu chí:

- Độ phổ biến: Được đánh giá dựa trên số lượt tải về và mức độ sử dụng trong cộng đồng

- Dễ sử dụng: Được đánh giá dựa trên độ khó trong việc học và sử dụng các tính năng của thư viện hoặc framework

- Tính linh hoạt: Được đánh giá dựa trên khả năng tùy biến và kết hợp với các công nghệ khác

- Hiệu suất: Được đánh giá dựa trên khả năng xử lý và tính toán nhanh chóng

- Tính phân phối: Được đánh giá dựa trên khả năng phân phối và thực thi trên các thiết bị phân tán

- Tính tùy chỉnh: Được đánh giá dựa trên khả năng tùy chỉnh và mở rộng các tính năng của thư viện hoặc framework

Bảng 1.1 : Bảng so sánh các framework Thư

viện/Framework

Độ phổ biến

Dễ sử dụng

Tính linh hoạt

Hiệu suất cao

Tính phân phối

Tính tùy chỉnh

OpenAi Gym Cao Trung

Trang 12

TensorFlow Cao Trung

bình

Cao Cao Hỗ trợ Trung bình

PyTorch Cao Cao Cao Cao Hỗ trợ Cao

1.2.3 OpenAI

OpenAI là một tổ chức nghiên cứu trí tuệ nhân tạo (AI) được thành lập vào năm

2015 bởi một số nhà khoa học nổi tiếng như Elon Musk, Sam Altman và Greg Brockman

Tổ chức này chuyên nghiên cứu và phát triển các công nghệ AI tiên tiến nhằm đóng góp cho sự tiến bộ của con người

OpenAI cung cấp nhiều công cụ hỗ trợ xây dựng mô hình học tăng cường, trong đó có:

- OpenAI Gym: Đây là một thư viện học tăng cường mã nguồn mở cung cấp nhiều môi trường mô phỏng các tác vụ khác nhau OpenAI Gym giúp người dùng xây dựng và đánh giá các thuật toán học tăng cường trên nhiều bài toán khác nhau

- OpenAI Baselines: Đây là một bộ công cụ giúp người dùng xây dựng và đánh giá các thuật toán học tăng cường phổ biến nhất Các thuật toán này bao gồm Deep Q-Network (DQN), Proximal Policy Optimization (PPO), và nhiều hơn nữa

- OpenAI RoboSumo: Đây là một nền tảng giả lập robot với mục đích hỗ trợ đào tạo học tăng cường cho robot thực tế Nền tảng này cung cấp nhiều công cụ hỗ trợ cho việc xây dựng mô hình học tăng cường cho robot, bao gồm việc điều khiển robot, thu thập dữ liệu và huấn luyện mô hình

- OpenAI Spinning Up: Đây là một bộ tài liệu hướng dẫn đầy đủ về lý thuyết và thực hành học tăng cường Bộ tài liệu này giúp người dùng hiểu rõ hơn về cách hoạt động của các thuật toán học tăng cường và hướng dẫn người dùng cách xây dựng và đánh giá các mô hình học tăng cường

Ngoài ra, OpenAI còn cung cấp nhiều công cụ và sản phẩm khác như OpenAI Codex, GPT-3 và DALL-E, giúp người dùng tạo ra các ứng dụng trí tuệ nhân tạo khác nhau

1.2.4 OpenAI gym

OpenAI Gym là một framework phổ biến cho việc thiết kế và đánh giá các thuật toán học tăng cường Nó cung cấp một bộ sưu tập các môi trường (environments) mô phỏng các tác vụ học tăng cường khác nhau, cho phép người dùng thử nghiệm và đánh giá các thuật toán học tăng cường trên các tác vụ này

Một số ưu điểm của OpenAI Gym bao gồm:

- Cung cấp một bộ sưu tập đa dạng các môi trường học tăng cường, từ các tác vụ đơn giản như trò chơi Atari đến các tác vụ phức tạp như điều khiển robot

Trang 13

- Dễ sử dụng và cài đặt Các môi trường được đóng gói trong các gói Python và có thể được cài đặt bằng pip

- Cung cấp một API đơn giản cho việc tương tác với môi trường, bao gồm các phương thức để lấy trạng thái hiện tại của môi trường, thực hiện hành động và nhận lại phần thưởng

- Có cộng đồng sử dụng rộng lớn, với nhiều tài liệu và ví dụ

Tuy nhiên, OpenAI Gym cũng có một số hạn chế như:

- Các môi trường được định nghĩa sẵn và không thể tùy chỉnh Người dùng không thể

dễ dàng tạo ra các môi trường riêng cho nhu cầu của mình

- Các môi trường đôi khi quá đơn giản, không phù hợp cho các tác vụ học tăng cường phức tạp hơn

- Không hỗ trợ việc huấn luyện mô hình học tăng cường phân tán, điều này giới hạn khả năng mở rộng cho các bài toán lớn

Kết luận, OpenAI Gym là một framework học tăng cường phổ biến và dễ sử dụng, nhưng có những hạn chế về tính linh hoạt và khả năng tùy chỉnh

1.2.5 PyTorch

PyTorch là một thư viện mã nguồn mở được phát triển bởi Facebook để xây dựng và huấn luyện các mô hình máy học, bao gồm cả mô hình học tăng cường PyTorch có các tính năng mạnh mẽ như tính đơn giản và dễ học, hỗ trợ tính toán động (dynamic computation), tạo ra các mô hình máy học với hiệu suất cao, hỗ trợ trên nhiều nền tảng khác nhau và có một cộng đồng lớn

Tuy nhiên, những hạn chế của PyTorch bao gồm:

- Tốn thời gian để xây dựng các mô hình phức tạp

- Yêu cầu tài nguyên phần cứng mạnh mẽ hơn so với một số thư viện khác

- Cần phải có kiến thức sâu về lập trình để sử dụng hiệu quả

Kết luận, PyTorch là một trong những thư viện quan trọng và phổ biến trong lĩnh vực học máy và học tăng cường, và được sử dụng rộng rãi trong các ứng dụng thực tế

Trang 14

CHƯƠNG 2: TÌM HIỂU VỀ HỌC TĂNG CƯỜNG 2.1 Các kiến thức cơ bản trong học tăng cường

2.1.1 Markov Decision Process

Khái niệm: Chu trình Markov là một chu trình ngẫu nhiên mô tả một dãy các trạng thái có thể xảy ra, trong đó xác suất xảy ra của mỗi trạng thái sẽ chỉ phụ thuộc vào trạng thái xảy ra ngay trước nó, đồng thời xác suất chuyển đổi từ trạng thái này sang trạng thái khác là không đổi theo thời gian

Hình 2.1 : Mô hình chu trình quyết định Markov

Một mô hình Markov được thể hiện bởi 5 yếu tố:

- S : tập các trạng thái một agent có thể đạt được

- A : tập các hành động mà một agent có thể thực hiện để tiến hành chuyển đổi state

- ( 𝑃 ) : Khả năng chuyển đổi trạng thái s → s ’ bằng các thực hiện hành động ‘ a’

Trang 15

2.1.2 Phần thưởng và phản hồi

Trong học tăng cường, agent sẽ tương tác với môi trường bằng cách thực hiện các hành động để tiến hành việc chuyển đổi từ trạng thái hiện tại sang trạng thái kế tiếp, dựa trên trạng thái kế tiếp mà agent sẽ nhận được phần thưởng tương ứng

Một agent sẽ cố gắng tối đa hóa tổng phần thưởng (phần thưởng tích lũy) mà nó nhận được thay vì phần thưởng trước mắt Phần thưởng tích lũy mà nó nhận được được gọi là phản hồi Công thức tính tổng giá trị tích lũy như sau:

Còn nhiệm vụ liên tục là nhiệm vụ chỉ có trạng thái bắt đầu và không có trạng thái kết thúc Một ví dụ cho trạng thái này là việc huấn luyện một robot hỗ trợ cá nhân, nó sẽ không có trạng thái kết thúc

Đối với loại nhiệm vụ theo tập, tổng phần thưởng có thể được tính bằng công thức:

với T là trạng thái cuối cùng của một episode

Áp dụng công thức trên cho việc tính toán tổng phần thưởng mà agent thu được khi thực hiện một nhiệm vụ liên tục, công thức sẽ như sau:

Trang 16

Hình 2.2 : Minh họa bài toán tìm đường

Đối với mỗi một hành động chuyển đổi sang trạng thái mới, chúng ta sẽ cho agent được một điểm, như vậy, với mục đích là để tối ưu hóa phần thưởng cho mình, thay vì thực hiện tìm đường đi ngắn nhất và tới đích, agent sẽ đi lòng vòng nhằm không ngừng tăng phần thưởng cho mình Bởi lý do trên, ta cần một giá trị để nói cho agent biết nên ưu tiên phần thưởng của tương lai hay phần thưởng ngay trước mắt, bằng cách sử dụng một hệ

số chiết khấu (hay discount factor) có giá trị từ 0 tới 1 𝛾

Đối với = 0, agent sẽ ưu tiên phần thưởng của trạng thái ngay sau nó: 𝛾

Nếu = 0 agent sẽ không học được gì khi chỉ nhắm tới phần thưởng trước mắt, = 𝛾 𝛾

1 thì agent sẽ không ngừng tìm kiếm phần thưởng trong tương lai, điều này có thể dẫn tới

vô hạn Vì thế nên được nằm trong khoảng từ 0.2 đến 0.8 𝛾

2.1.4 Hàm chính sách

Hàm chính sách (policy function) là một hàm số đưa ra hành động được đề xuất của tác nhân dựa trên trạng thái hiện tại của môi trường Nói cách khác, hàm chính sách là một ánh xạ từ trạng thái của môi trường sang các hành động mà tác nhân có thể thực hiện trong trạng thái đó

Trong học tăng cường, tác nhân sử dụng hàm chính sách để quyết định hành động tiếp theo dựa trên trạng thái hiện tại của môi trường Mục tiêu của tác nhân là tối đa hoặc tối thiểu hóa một hàm mục tiêu (objective function) dựa trên phần thưởng (reward) nhận được từ môi trường Hàm mục tiêu này thường được gọi là hàm giá trị (value function) và

có thể được định nghĩa dựa trên các hàm chính sách khác nhau

Trang 17

Ví dụ cho 1 chính sách có thể kể đến như:

- Tác nhân luôn đi bên phải

- Tác nhân luôn đi bên trái

- Tác nhân đi bên phải với xác suất 0.5 và đi bên trái với xác suất 0.5

- Tác nhân đi bên phải với xác suất 0.2 và đi bên trái với xác suất 0.8

2.1.5 Hàm giá trị trạng thái

Hàm giá trị trạng thái cho biết giá trị kỳ vọng của tổng phần thưởng mà tác nhân sẽ

nhận được từ thời điểm hiện tại khi bắt đầu từ một trạng thái cụ thể s và tuân theo một chính sách π xác định, ký hiệu là V(s)

Giả sử ta có 2 trạng thái và cả 2 trạng thái đều cùng thực hiện một chính sách π Dựa vào giá trị của 2 trạng thái này chúng ta có thể biết được trạng thái nào là tốt hơn khi

thực hiện chính sách π thông qua bảng sau:

Hàm giá trị hành động-trạng thái cho biết giá trị kỳ vọng của tổng phần thưởng mà

tác nhân sẽ nhận được khi nó bắt đầu từ một trạng thái cụ thể s , thực hiện một hành động

a và sau đó tuân theo một chính sách π xác định cho đến khi kết thúc

Trang 18

Hàm Q thể hiện phần thưởng kỳ vọng bắt đầu từ trạng thái s với hành động a thuộc chính sách π Thay giá trị của 𝑅 ta có:

Bảng 2.2 : Bảng giá trị trạng thái sau khi cập nhật

State Action Value

Phương trình Bellman cho phép tính toán giá trị của một trạng thái hoặc cặp trạng thái-hành động dựa trên giá trị của các trạng thái hoặc cặp trạng thái-hành động khác liên quan đến chúng Phương trình này có thể được sử dụng để tính toán giá trị tối ưu của một

hệ thống động hoặc để học các chiến lược tối ưu trong học tăng cường

Phương trình Bellman cho hàm giá trị:

- 𝑉 π( 𝑠 ) là giá trị của trạng thái s theo chính sách π

- π(s,a) là xác suất để thực hiện hành động a tại trạng thái s theo chính sách π

- 𝑃 là xác suất để đạt được trạng thái s' khi thực hiện hành động a tại trạng thái s

Trang 19

- γ là hệ số chiết khấu, 0 <= γ <= 1, dùng để định rõ giá trị của các phần thưởng ở tương lai so với phần thưởng hiện tại

- 𝑉 π( 𝑠 ' ) là giá trị của trạng thái tiếp theo s' theo chính sách π

Phương trình Bellman cho hàm Q:

- 𝑄 π( 𝑠 , 𝑎 ) là giá trị của hàm giá trị hành động 𝑄 π tại trạng thái s và hành động a

- 𝑃 xác suất chuyển trạng thái từ trạng thái s đến trạng thái s' khi thực hiện hành

động a tại trạng thái s và chuyển đến trạng thái s'

- 𝛾 là hệ số chiết khấu (discount factor), nằm trong khoảng [0, 1], ảnh hưởng đến sự quan tâm của chúng ta đối với các phần thưởng trong tương lai Giá trị của 𝛾 càng lớn, chúng ta càng quan tâm nhiều đến phần thưởng trong tương lai và ngược lại

- 𝑄 π( 𝑠 ' , 𝑎 ' ) là giá trị của hàm giá trị hành động 𝑄 π tại trạng thái tiếp theo s' và một hành động a' được chọn theo chính sách π

Phương trình tối ưu Bellman (Optimal Bellman Equation) là phương trình cho hàm giá trị tối ưu của một trạng thái s, ký hiệu là V*(s) Phương trình này cho biết rằng giá trị tối ưu của một trạng thái sẽ được cập nhật bằng giá trị tối ưu của trạng thái tiếp theo mà chúng ta có thể đạt được từ trạng thái hiện tại, cộng với phần thưởng tối ưu có thể đạt được từ trạng thái hiện tại

2.2 Một số thuật toán trong học tăng cường

Trong phần này, chúng ta sẽ tìm hiểu về một số thuật toán trong học tăng cường Bắt đầu từ các thuật toán đơn giản như lặp giá trị, lặp chính sách, sau đó tới Q learning và cuối cùng sẽ là Deep Q Network

2.2.1 Lặp giá trị

Lặp giá trị là một thuật toán học tăng cường, sử dụng phương pháp quy hoạch động

để giải phương trình tối ưu Bellman Lặp giá trị yêu cầu chúng ta phải biết trước mô hình

Trang 20

của bài toán, nó bao gồm các xác suất chuyển đổi giữa các trạng thái, xác suất thực hiện các hành động và phần thưởng liên quan

Ý tưởng: Trong lặp giá trị, chúng ta sẽ bắt đầu với một hàm giá trị ngẫu nhiên Hàm này dĩ nhiên không thể là một hàm tối ưu, vì vậy chúng ta sẽ tiến hành cải thiện nó lặp đi lặp lại cho tới khi đạt tới điểm hội tụ, các giá trị trạng thái sẽ không có nhiều biến động

Hình 2.3: Sơ đồ khối thuật toán lặp giá trị

Ví dụ: Cho một ma trận như hình bên dưới, agent sẽ bắt đầu từ trạng thái A, mục tiêu

sẽ là đi tới trạng thái C mà không đi qua trạng thái B, tập hành động bao gồm 0 - trái/phải

Ngày đăng: 15/06/2024, 01:02

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w