Trong Reinforcement Learning, một hệ thống đối tượng, tương tác với môi trườngđược cho và phải tìm ra cách để tối đa hóa sự phần thưởng của nó thông qua các lầntương tác tiếp theo.. Nótư
Trang 1ĐỒ ÁN MÔN HỌC HỌC PHẦN: Trí Tuệ Nhân Tạo
Chủ đề: Tìm hiểu về Reinforcement Learning và ứng dụng
trong trò chơi
Giảng viên hướng dẫn: TS.Vũ Thanh Hiền
Sinh viên thực hiện:
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TPHCM KHOA CÔNG NGHỆ THÔNG TIN
Trang 2LỜI CẢM ƠN
Lời nói đầu tiên em xin chân thành cảm ơn Trường đại học Công nghệ TP.HCM nóichung và Khoa Công nghệ Thông tin nói riêng đã tạo điều kiện cho chúng em học tập
và thực hiện thành công bản báo cáo đồ án môn học này
Chúng em xin chân thành cảm ơn thầy đã dành thời gian và tận tâm giúp đỡ nhómtrong quá trình làm báo cáo đồ án Thầy đã trang bị cho nhóm em những kiến thức cầnthiết và hướng dẫn cách tiếp cận vấn đề một cách khoa học và có hệ thống.Thời gianlàm báo cáo đồ án không phải lúc nào cũng dễ dàng, và nhóm đã gặp phải nhiều khókhăn và thách thức Nhưng nhờ sự hướng dẫn tận tâm của thầy, nhóm đã có thể vượtqua những khó khăn đó và hoàn thành đồ án một cách thành công.Nhóm em xin bày
tỏ lòng biết ơn đối với những góp ý và phản hồi chân thành từ thầy Những ý kiến đókhông chỉ giúp nhóm cải thiện báo cáo đồ án mà còn giúp nhóm hiểu rõ hơn về chủ đề
và phát triển khả năng nghiên cứu của mình
Nhóm em không thể quên nhắc đến sự đóng góp của thầy trong việc mở rộng tầm nhìncủa em Thầy đã giới thiệu những nguồn tài liệu quan trọng và đưa ra những ý tưởngmới mẻ, giúp nhóm em có cái nhìn toàn diện hơn về đề tài.Cuối cùng, em thay mặtnhóm xin gửi lời cảm ơn sâu sắc và biết ơn thầy đã tạo điều kiện cho chúng em đểhoàn thành đồ án một cách tốt nhất Em rất biết ơn vì sự đồng hành và sự tin tưởngcủa thầy Kính chúc thầy sức khỏe dồi dào và thành công trong sự nghiệp giảng dạy
Trân trọng gửi đến thầy, ngày 29 tháng 10 năm 2023.
Trang 3MỤC LỤC
PHẦN I – TỔNG QUAN VỀ REINFORCEMENT LEARNING .5
1.1 Reinforcement Learning là một nhánh của Machine Learning 5
1.2 Reinforcement Learning là gì? 6
1.3 Các thuật ngữ thông dụng 7
1.3.1 Agent 7
1.3.2 Environment 7
1.3.3 Action 7
1.3.4 Observation 8
1.3.5 State 8
1.3.6 Policy 8
1.3.7 Reward 8
1.3.8 Episode 9
*Khai thác và khám phá 9
1.4 Ưu điểm của việc Reinforcement Learning 9
1.5 Nhược điểm của Reinforcement Learning 10
II PHÂN LOẠI CÁC THUẬT TOÁN REINFORCE LEARNING 2.1 Q-Learning 10
2.2 SARSA: State–action–reward–state–action learning 11
2.3 Deep Reinforcement Learning 13
2.3.1 Deep Q-learning 15
2.3.2 Deep Q-Networks (DQN) 16
2.3.3 So sánh Deep Q-learning với Q learning 18
III ỨNG DỤNG TRONG TRÒ CHƠI 19
Trang 4MỞ ĐẦU
Reinforcement Learning là một lĩnh vực phát triển trong Machine Learning, nó đượckhai thác để tạo ra kết quả đáng kinh ngạc trong các bài toán phức tạp và đa dạng,trong đó bao gồm cả trò chơi điện tử Với sự tiến bộ về công nghệ, ngày càng có nhiềutrò chơi được phát triển, tạo nên nhu cầu ngày một cao hơn trong việc sản xuất các tròchơi đòi hỏi trí tuệ thông minh cao hơn Đó chính là lý do cho việc sử dụngReinforcement Learning trong các ứng dụng trò chơi
Trong Reinforcement Learning, một hệ thống đối tượng, tương tác với môi trườngđược cho và phải tìm ra cách để tối đa hóa sự phần thưởng của nó thông qua các lầntương tác tiếp theo Người chơi được xem xét là một đối tượng của hệ thống này Nótương tác với môi trường bằng cách thực hiện các hành động và trích xuất thông tinđịnh tính trong môi trường đó để liên tục cập nhật và tái điều chỉnh việc tính toánphần thưởng tối ưu cho một hệ thống nhất định
Trong lĩnh vực trò chơi điện tử, Reinforcement Learning cho phép xây dựng các hệthống trí thông minh nhân tạo để thay thế người chơi trong quá trình chơi Những hệthống này có khả năng tự một cách hợp lý học hỏi từ kinh nghiệm của chúng, và chơitrò chơi với đối thủ nhân tạo thông minh như những người chơi thực sự
Vì vậy, kỹ thuật Reinforcement Learning là một lựa chọn lý tưởng để xây dựng cáctrò chơi với trí thông minh nhân tạo và tạo ra những trải nghiệm tuyệt vời cho ngườichơi
Trang 5PHẦN I – TỔNG QUAN VỀ REINFORCEMENT
LEARNING
1.1 Reinforcement Learning là một nhánh của Machine Learning
Hiểu đơn giản machine learning (học máy) là kỹ thuật giúp cho máy tính có thể tự học
và đưa ra quyết định mà không cần phải cài đặt các quy tắc, luật lệ Machine learningđang là lĩnh vực công nghệ được quan tâm nhiều nhất hiện nay Nó ngày càng đượcứng dụng vào thực tế cuộc sống, từ các ứng dụng mạng xã hội, thương mại điện tử haymarketing… tạo ra những giá trị to lớn cho các dịch vụ này
Mối liên hệ giữa AI, Machine learning và Deep learning (Ảnh: intel)
Các thuật toán học máy thường được phân thành 3 loại lớn: supervised learning(học có giám sát), unsupervised learning (học không giám sát) và reinforcementlearning (học tăng cường) Nếu như supervised learning là học tập từ một tệp các dữliệu được gắn nhãn để suy luận ra quan hệ giữa đầu vào và đầu ra, thì unsupervisedlearning không được cung cấp các dữ liệu được gắn nhãn ấy, thay vào đó chỉ đượccung cấp dữ liệu mà thuật toán tìm cách mô tả dữ liệu và cấu trúc của chúng Loại thứ
3 là reinforcement learning - phương pháp tập trung vào việc làm thế nào để cho mộttác tử trong môi trường có thể hành động sao cho lấy được phần thưởng nhiều nhất cóthể Khác với học có giám sát, học tăng cường không có cặp dữ liệu gán nhãn trướclàm đầu vào và cũng không có đánh giá các hành động là đúng hay sai
“Reinforcement learning là đào tạo các mô hình học máy để đưa ra một chuỗi các quyết định Tác tử học cách đạt được mục tiêu trong một môi trường không chắc chắn, có thể là phức tạp.”
Đến đây ta có thể thấy, reinforcement learning là một nhánh của machine learning
Trang 61.2 Reinforcement Learning là gì ?
Reinforcement Learning là việc đào tạo các mô hình Machine Learning để đưa
ra một chuỗi các quyết định Trong Reinforcement Learning, trí tuệ nhân tạo (AI) đốimặt với một tình huống giống như trò chơi Máy tính sử dụng thử và sai (trial anderror) để đưa ra giải pháp cho vấn đề Để khiến máy làm những gì lập trình viênmuốn, các máy (agent) sẽ nhận được phần thưởng (reward) hoặc hình phạt (penalty)cho những hành động(action) mà nó thực hiện Mục tiêu của nó là tối đa hóa tổngphần thưởng
Bằng cách tận dụng sức mạnh của tìm kiếm và nhiều thử nghiệm,
Reinforcement Learning hiện là cách hiệu quả nhất để gợi ý sự sáng tạo của máy móc.Trái ngược với con người, trí thông minh nhân tạo có thể thu thập kinh nghiệm từ
Trang 7hàng nghìn gameplays song song nếu một thuật toán Reinforcement Learning được chạy trên cơ sở hạ tầng máy tính đủ mạnh.
1.3 Các thuật ngữ thông dụng
- Trong reinforcement learning có rất nhiều các thuật ngữ khác nhau Sau đây chúng tacùng liệt kê các thuật ngữ thông dụng và tìm hiểu ý nghĩa của từng thuật ngữ đó nhé !
1.3.1 Agent
- Trong reinforcement learning có một thuật ngữ gọi là agent - được định nghĩa
là “anything that can be viewed as perceiving its environment through sensors andacting upon that environment through actuators” (máy quan sát môi trường và sinh rahành động tương ứng)
Trang 91.3.6 Policy
- Chính sách là yếu tố xác định cách thức hoạt động của agent tại một thời điểm nhấtđịnh Nói cách khác, chính sách là một ánh xạ từ các trạng thái (state) của môi trườngđến các hành động sẽ được thực hiện khi ở trong các trạng thái đó Chính sách là cốtlõi của agent trong việc xác định hành vi Trong một số trường hợp, chính sách có thể
là một hàm hoặc bảng tra cứu đơn giản Trong một số trường hợp khác, chính sách cóthể liên quan đến tính toán mở rộng, ví dụ như quá trình tìm kiếm
1.3.7 Reward
- Ở mỗi hành động, môi trường gửi đến cho agent một phần thưởng xác định Mụctiêu của agent là tối đa hóa tổng phần thưởng mà nó nhận được trong một thời giandài Tín hiệu phần thưởng (reward signal) giúp xác định đâu là sự kiện tốt và xấu đốivới agent, đồng thời nó cũng là cơ sở chính để thay đổi chính sách Nếu một hànhđộng được lựa chọn bởi chính sách mang đến phần thưởng thấp, thì chính sách đó cóthể bị thay đổi Agent sẽ lựa chọn các hành động khác trong các tình huống tương tự ởtương lai
và giúp nó đạt được phần thưởng Agent sẽ xem tất cả các hành động có thể xảy racho một trạng thái nhất định, sau đó lựa chọn hành động dựa trên giá trị tối đa củanhững hành động đó Đây gọi là khai thác (exploit) vì chúng ta sử dụng thông tin cósẵn để đưa ra một quyết định (make a decision)
- Ngoài ra, agent thay vì chọn các hành động dựa trên phần thưởng tối đa trong tươnglai, nó có thể chọn hành động một cách ngẫu nhiên Hành động ngẫu nhiên rất quan
Trang 10trọng vì nó cho phép agent thăm dò và khám phá các trạng thái mới mà không đượclựa chọn trong quá trình khai thác Tóm lại, agent phải khai thác những gì mà nó đãtrải qua để nhận được phần thưởng, nhưng cũng phải khám phá để đưa ra lựa chọnhành động tốt hơn trong tương lai.
1.4 Ưu điểm của việc Reinforcement Learning
Nó có thể giải quyết các vấn đề phức tạp và bậc cao hơn Ngoài ra, các giảipháp thu được sẽ rất chính xác
Lý do cho sự hoàn hảo của nó là nó rất giống với kỹ thuật học tập của conngười
Mô hình này sẽ trải qua một quá trình đào tạo nghiêm ngặt có thể mất thờigian Điều này có thể giúp sửa chữa bất kỳ lỗi nào
Do khả năng học hỏi của nó, nó có thể được sử dụng với các mạng thần kinh.Điều này có thể được gọi là Reinforcement Learning sâu
Là mô hình học hỏi liên tục nên một sai lầm được thực hiện trước đó sẽ khó cóthể xảy ra trong tương lai
Có thể xây dựng nhiều mô hình giải quyết vấn đề khác nhau bằng cách sử dụngphương pháp Reinforcement Learning
Khi nói đến việc tạo mô phỏng, phát hiện đối tượng trong ô tô tự động, rô bốt,v.v., Reinforcement Learning đóng một vai trò lớn trong các mô hình
Phần tốt nhất là ngay cả khi không có dữ liệu đào tạo, nó sẽ học được thôngqua kinh nghiệm mà nó có được từ việc xử lý dữ liệu đào tạo
Đối với các vấn đề khác nhau, có vẻ phức tạp đối với chúng tôi, nó cung cấpcác mô hình hoàn hảo để giải quyết chúng
1.5 Nhược điểm của Reinforcement Learning
Việc sử dụng các mô hình Reinforcement Learning để giải quyết các vấn đề đơn giản hơn sẽ không đúng Lý do là, các mô hình thường giải quyết các vấn
đề phức tạp
Chúng ta sẽ lãng phí sức mạnh xử lý và không gian không cần thiết bằng cách
sử dụng nó cho các vấn đề đơn giản hơn
Reinforcement Learning cần nhiều dữ liệu để cung cấp cho mô hình tính toán Các mô hình này yêu cầu nhiều dữ liệu đào tạo để phát triển các kết quả chính xác Điều này tiêu tốn thời gian và nhiều sức mạnh tính toán
Khi nói đến việc xây dựng mô hình trên các ví dụ thực tế, chi phí bảo trì rất cao Giống như để chế tạo các phương tiện không người lái, rô bốt, chúng tôi sẽyêu cầu bảo trì rất nhiều cho cả phần cứng và phần mềm Việc đào tạo quá nhiều có thể dẫn đến quá tải các trạng thái của mô hình Điều này sẽ dẫn đến
mô hình để nhận được kết quả Điều này có thể xảy ra nếu quá nhiều dung lượng bộ nhớ hết trong quá trình xử lý dữ liệu huấn luyện
Trang 11II PHÂN LOẠI CÁC THUẬT TOÁN REINFORCE LEARNING 2.1 Q-Learning
- Q-learning là một thuật toán học tăng cường (reinforcement learning) tự động họccách làm quyết định trong một môi trường không biết trước Thuật toán này được sửdụng để tìm hiểu và tối ưu hành động của một tác nhân (agent) để đạt được mục tiêuhoặc tối đa hóa phần thưởng (reward) trong một môi trường tương tác
- Ý tưởng chính của Q-learning là xây dựng một hàm giá trị Q, thể hiện giá trị dựđoán của tác nhân khi thực hiện một hành động trong một trạng thái cụ thể Hàm giátrị Q được cập nhật thông qua quá trình học dựa trên phần thưởng nhận được từ môitrường sau khi thực hiện một hành động
- Thuật toán Q-learning sử dụng một bảng (Q-table) hoặc một hàm Q để lưu trữ vàcập nhật các giá trị Q Qua mỗi bước, tác nhân quan sát trạng thái hiện tại, chọn hànhđộng dựa trên chiến lược nhất định (thường là chiến lược khám phá-khai thác), thựchiện hành động và nhận phần thưởng từ môi trường Sau đó, giá trị Q tương ứng vớicặp (trạng thái, hành động) được cập nhật dựa trên quy tắc cập nhật Q-learning
- Quá trình học tiếp tục cho đến khi hàm giá trị Q hội tụ đạt đến một giá trị tối ưu, chophép tác nhân đưa ra các hành động tối ưu trong môi trường đã biết Q-learning là mộttrong những thuật toán quan trọng trong lĩnh vực học tăng cường và đã được áp dụngthành công trong nhiều bài toán thực tế như điều khiển robot, trò chơi, và quản lý tàinguyên
- Thuật toán Q-Learning:
Khởi tạo Q(s, a) cho tất cả các cặp trạng thái-hành động với giá trị ban đầu
Lặp lại cho mỗi tương tác với môi trường:
Chọn hành động a dựa trên chiến lược khám phá hoặc dựa trên giá trị Q hiệntại
Thực hiện hành động a trong môi trường và nhận lại phần thưởng r và trạngthái tiếp theo s'
Cập nhật giá trị Q cho cặp trạng thái-hành động hiện tại (s, a) bằng công thứccập nhật Q-Learning:
Q(s, a) = Q(s, a) + α * [r + γ * max(Q(s', a')) - Q(s, a)]
Cập nhật trạng thái hiện tại s = s'
Kết thúc khi đạt được điều kiện dừng
Trong đó:
Q(s, a) là giá trị Q cho cặp trạng thái-hành động hiện tại (s, a)
α (alpha) là tỷ lệ học tập, điều chỉnh mức độ cập nhật giá trị Q
r là phần thưởng nhận được khi thực hiện hành động a trong trạng thái s
Trang 12 γ (gamma) là hệ số giảm giá, điều chỉnh tầm quan trọng của các phần thưởngtrong tương lai.
s' là trạng thái tiếp theo sau khi thực hiện hành động a
a' là hành động tốt nhất được chọn dựa trên giá trị Q
Điều kiện dừng: Một điều kiện dừng phổ biến trong Q-Learning có thể là số lần lặp lạihoặc số tương tác với môi trường đã đạt đủ mức Ví dụ: "Lặp lại cho một số lượngtương tác với môi trường đã xác định trước" hoặc "Lặp lại cho một số lượng lớn bướcthời gian đã xác định trước"
Ngoài ra, điều kiện dừng có thể được xác định dựa trên mức độ hội tụ của giá trị Q Vídụ: "Dừng khi giá trị Q không thay đổi đáng kể sau mỗi lần cập nhật" hoặc "Dừng khigiá trị Q hội tụ đủ mức"
Quá trình dừng của thuật toán Q-Learning thường được xác định dựa trên bài toán cụthể và yêu cầu của ứng dụng
2.2 SARSA: State–action–reward–state–action learning
- SARSA là thuật toán Reinforcement learning thuộc nhóm gradient free, cụ thể hơnSARSA là một thuật toán TD phổ biến được sử dụng để tìm hiểu về chính sách củahàm Q Kỹ thuật Q-Learning là một kỹ thuật Off-Policy và sử dụng cách tiếp cậntham lam để tìm hiểu giá trị Q Mặt khác, kỹ thuật SARSA là On-Policy và sử dụnghành động được thực hiện bởi chính sách hiện tại để tìm hiểu giá trị Q Sự khác biệtnày có thể nhìn thấy trong sự khác biệt của các câu lệnh cập nhật cho mỗi kỹ thuật mà
ta sẽ tìm hiểu dưới đây Phương trình cập nhật Q trong SARSA(0) gần giống vớiphương trình cập nhật V trong TD(0)
Thuật toán SARSA:
Khởi tạo Q(s, a) cho tất cả các cặp trạng thái-hành động với giá trị ban đầu
Lặp lại cho mỗi tương tác với môi trường:
Chọn hành động a dựa trên chiến lược khám phá hoặc dựa trên giá trị Q hiệntại
Thực hiện hành động a trong môi trường và nhận lại phần thưởng r và trạngthái tiếp theo s'
Chọn hành động a' trong trạng thái s' dựa trên chiến lược khám phá
Cập nhật giá trị Q cho cặp trạng thái-hành động hiện tại (s, a) bằng công thứccập nhật SARSA:
Q(s, a) = Q(s, a) + α * [r + γ * Q(s', a') - Q(s, a)]
Cập nhật trạng thái hiện tại s = s' và hành động hiện tại a = a'
Kết thúc khi đạt được điều kiện dừng.-State-Action tượng trưng cho bộ tuple (s, a, r, s', a')
Trong đó