Trong bài tiểu luận này, chúng em sẽ trình bày về việc áp dụng Học tăng cường để dạy cho một con rắn chơi game săn mồi.. Trong bài tiểu luận này, chúng em sẽ trình bày về việc thiết kế m
Trang 1TIỂU LUẬN
ÁP DỤNG HỌC TĂNG CƯỜNG ĐỂ DẠY AI CHƠI
RẮN SĂN MỒI
Trang 2TIỂU LUẬN
ÁP DỤNG HỌC TĂNG CƯỜNG ĐỂ DẠY AI CHƠI
RẮN SĂN MỒI
Trang 3Mang trong mình kiến thức của giáo viên, những lời truyền đạt và kinh nghiệm của giáo viên và những người đi trước chúng em xin chân thành cám ơn đối với đội ngũ giáo viên của khoa Công Nghệ Thông Tin của trường Đại Học Nguyễn Tất Thành vì đã truyền đạt cho em những kiến thức quý báu cho chúng em trong suốt học kì vừa qua Nhờ có lời dạy bảo và hướng dẫn của giáo viên mà em đã hoàng thành được bài đồ án kết thúc môn này.
Bài đồ án này em đã thực hiện nó trong vòng 2 tuần Trong quá trình làm có nhiều lúc em còn bỡ ngỡ và gặp nhiều khó khăn và thiếu sót nhưng dần dần hoàng thành được bài đồ án này Bài đồ án này cũng quá đơn giản để có thể làm đồ án kết thúc môn nhưng e
đã dành rất nhiều công sức và tâm huyết của bản thân để hoàng thành nó Em mong sẽ được thầy cô thông cảm cho chúng em và nhận được những ý kiến đóng góp quý báu từ thầy cô để em có thể hoàn thiện kiến thức của bản thân và phát triển hơn trong tương lai Một lần nữa chúng em xin cám ơn đối với đội ngũ giáo viên của trường và của khoa rất nhiều ạ.
Trang 4TRƯỜNG ĐẠI HỌC NGUYỄN TẤT THÀNH
TRUNG TÂM KHẢO THÍ HỌC KỲ … … NĂM HỌC …… - ….… KỲ THI KẾT THÚC HỌC PHẦN
PHIẾU CHẤM THI TIỂU LUẬN/ĐỒ ÁN
Môn thi:Hệ thống thông minh Lớp học phần:20DTH1C
Nhóm sinh viên thực hiện :
1.Mai Gia Hưng Tham gia đóng góp:
2.Trần Tiến Đạt Tham gia đóng góp:
3 Lê Nguyễn Tường Vy Tham gia đóng góp:
4 .Tham gia đóng góp:
5 Tham gia đóng góp:
6 Tham gia đóng góp:
7 Tham gia đóng góp:
8 Tham gia đóng góp:
Ngày thi: Phòng thi:
Đề tài tiểu luận/báo cáo của sinh viên :
Phần đánh giá của giảng viên (căn cứ trên thang rubrics của môn học):
Tiêu chí (theo
Điểm tối đa
Điểm đạt được
Cấu trúc của
Nội dung
- Các nội dung thành phần
5
- Lập luận
2
- Kết luận
0.5 Trình bày
1
Giảng viên chấm thi
11
Trang 5LỜI MỞ ĐẦU
Trong những năm gần đây, trí tuệ nhân tạo (AI) đã phát triển rất nhanh chóng
và ứng dụng trong nhiều lĩnh vực khác nhau, từ công nghiệp đến y tế, giáo dục, tài chính và nhiều lĩnh vực khác Trong đó, lĩnh vực của Học tăng cường
(Reinforcement Learning - RL) đã trở nên ngày càng phổ biến, nhờ khả năng của
nó trong việc giải quyết các bài toán tối ưu hóa và quyết định trong môi trường động, không chắc chắn.
Trong bài tiểu luận này, chúng em sẽ trình bày về việc áp dụng Học tăng cường để dạy cho một con rắn chơi game săn mồi Đây là một ví dụ minh họa cho việc ứng dụng RL vào thực tiễn, giúp chúng ta hiểu rõ hơn về các khái niệm cơ bản của Học tăng cường và cách nó hoạt động.
Trong bài tiểu luận này, chúng em sẽ trình bày về việc thiết kế một môi trường cho trò chơi rắn săn mồi, cùng với cách tiếp cận để xử lý và tạo ra dữ liệu huấn luyện, cũng như cách thiết kế mô hình RL để giúp cho con rắn của chúng ta có thể
tự học cách di chuyển và săn mồi một cách thông minh Chúng em cũng sẽ đề cập đến một số kỹ thuật khác nhau của RL, bao gồm giải thuật Q-learning, Deep Q- Network (DQN) và nhiều hơn nữa.
Bài tiểu luận này mong muốn giúp độc giả hiểu rõ hơn về Học tăng cường và cách áp dụng nó vào thực tiễn Ngoài ra, bài viết cũng hy vọng sẽ cung cấp cho độc giả một cái nhìn tổng quan về việc ứng dụng AI vào các bài toán thực tế Chúng em
hy vọng rằng bài viết này sẽ hữu ích và thú vị cho các bạn.
Trang 6MỤC LỤC
LỜI MỞ ĐẦU 3
DANH MỤC BẢNG, HÌNH 4
KÍ HIỆU CÁC CỤM TỪ VIẾT TẮT 5
CHƯƠNG 1 7
Tổng quan đề tài 7
1 Tổng quan đề tài 7
2 Lý do chọn đề tài 7
3 Mục tiêu nghiên cứu 8
4 Đối tượng nghiên cứu 8
CHƯƠNG 2 9
Cơ sở lý thuyết 9
1 Giới thiệu về học máy(Machine Learning) 9
2 Giới thiệu về Học sâu (Deep Learning) 10
3 Học tăng cường(Reinforcement Learning) 11
4 PyTorch 11
5 Pygame 12
CHƯƠNG 3 12
Các nghiên cứu liên quan 12
1 Các nghiên cứu trong nước 12
2 Các nghiên cứu ngoài nước 13
3 Các thuật toán sử dụng trong bài báo cáo 14
CHƯƠNG 4 14
Xây dựng mô hình 14
1 Chuẩn bị 14
2 Quy trình 15
3 Mô hình 16
4 Tính toán giá trị Q 17
5 Lựa chọn hành động tối ưu 18
6 Huấn luyện và cập nhật mô hình 18
CHƯƠNG 5 19
Các bước thực hiện 19
1 Thiết lập môi trường game Snake 20
2 Khởi tạo mô hình Neural Network và thuật toán Q-learning 24
3 Huấn luyện mô hình 25
4 Kiểm tra và đánh giá mô hình 26
CHƯƠNG 6 28
Kết luận và hướng phát triển 28
1 Kết luận 28
Trang 7DANH MỤC BẢNG, HÌNH
Hình 1.học máy(Machine Learning)……… 9 Hình2 Học sâu (Deep Learning)………10 Hình3 Học tăng cường………11
Trang 9CHƯƠNG 1 Tổng quan đề tài
1 Tổng quan đề tài.
Bài tiểu luận sẽ tập trung vào ứng dụng của kỹ thuật Học tăng cường (Reinforcement Learning) để dạy cho trí tuệ nhân tạo (Artificial Intelligence) chơi trò chơi rắn săn mồi (Snake game) Học tăng cường là một phương pháp học máy (Machine Learning) mà ở đó một tác nhân (agent) học cách tương tác với một môi trường (environment) để đạt được mục tiêu cụ thể (objective) Trong trường hợp này, mục tiêu của trí tuệ nhân tạo là phải điều khiển con rắn di chuyển và ăn mồi một cách hiệu quả, tránh va chạm với các tường hoặc chính nó.
Bài tiểu luận sẽ giới thiệu về mô hình học tăng cường được áp dụng cho trò chơi rắn săn mồi, bao gồm các thành phần như quyết định hành động, bộ nhớ và chiến lược học tối
ưu Ngoài ra, bài tiểu luận sẽ cũng giới thiệu về một số kỹ thuật và thủ thuật để tăng tính hiệu quả của trí tuệ nhân tạo trong trò chơi rắn săn mồi.
Với những kiến thức về học tăng cường và kinh nghiệm về trò chơi rắn săn mồi, đồng thời sử dụng các thư viện học máy và các ngôn ngữ lập trình phổ biến như Python, bài tiểu luận sẽ trình bày chi tiết quá trình áp dụng Học tăng cường để dạy AI chơi rắn săn mồi, đồng thời đánh giá hiệu quả của kỹ thuật này.
2 Lý do chọn đề tài.
Trang 10Bài tiểu luận chọn đề tài áp dụng Học tăng cường để dạy AI chơi rắn săn mồi vì đây
là một ví dụ minh họa cho việc áp dụng Học tăng cường trong thực tế Học tăng cường là một phương pháp học máy quan trọng và được ứng dụng rộng rãi trong nhiều lĩnh vực như trò chơi điện tử, robot tự động, tự động hóa sản xuất, tài chính, y tế, vv.
Ngoài ra, trò chơi rắn săn mồi là một trò chơi phổ biến và thú vị, được chơi rộng rãi trên nhiều nền tảng và được nhiều người yêu thích Việc áp dụng Học tăng cường để dạy cho trí tuệ nhân tạo chơi trò chơi này không chỉ thú vị mà còn giúp ta hiểu rõ hơn về cách thức và tiến trình mà một hệ thống Học tăng cường hoạt động.
Với những kiến thức và kinh nghiệm về Học tăng cường cùng các thư viện học máy
và ngôn ngữ lập trình phổ biến, bài tiểu luận sẽ trình bày chi tiết quá trình áp dụng Học tăng cường để dạy cho trí tuệ nhân tạo chơi trò chơi rắn săn mồi, từ đó đánh giá hiệu quả của kỹ thuật này.
3 Mục tiêu nghiên cứu
Nghiên cứu này tập trung vào sử dụng mô hình ResNet để phân loại đối tượng trong ảnh với độ chính xác cao và thực hiện các thí nghiệm để đánh giá hiệu quả của mô hình Ngoài ra, mục tiêu của nghiên cứu là tìm hiểu sâu hơn về cấu trúc và cách hoạt động của
mô hình ResNet trong xử lý ảnh.
4 Đối tượng nghiên cứu
Đối tượng nghiên cứu của bài tiểu luận này là trí tuệ nhân tạo được áp dụng vào trò chơi rắn săn mồi Cụ thể, đối tượng nghiên cứu là các phương pháp và kỹ thuật học tăng cường được áp dụng để dạy cho trí tuệ nhân tạo chơi trò chơi rắn săn mồi.
Trang 11CHƯƠNG 2
Cơ sở lý thuyết
1 Giới thiệu về học máy(Machine Learning)
Học máy (Machine Learning) là một lĩnh vực thuộc trí tuệ nhân tạo (AI) mà tập trung vào việc phát triển các phương pháp và thuật toán để giúp máy tính học hỏi và tự động cải thiện hiệu suất trên một tập dữ liệu Thay vì cung cấp cho máy tính các quy tắc
cụ thể để thực hiện một nhiệm vụ cụ thể, học máy cho phép máy tính học hỏi từ các ví dụ
và dữ liệu đã cho và tự động điều chỉnh các tham số của mô hình để tối ưu hóa hiệu suất Các ứng dụng của học máy rất đa dạng, từ phân loại hình ảnh, dự báo giá cổ phiếu đến tự động lái xe.
Hình 1.học máy(Machine Learning)
Trang 122 Giới thiệu về Học sâu (Deep Learning)
Học sâu (Deep Learning) là một phương pháp học máy (Machine Learning) được xây dựng trên các mạng neuron nhân tạo (Artificial Neural Networks) có khả năng học và
tự điều chỉnh thông qua các lớp ẩn sâu.
Mục tiêu của học sâu là để giải quyết các bài toán phức tạp, có đầu vào là các dữ liệu lớn và đa dạng như hình ảnh, âm thanh, văn bản, hoặc video Học sâu được sử dụng rộng rãi trong nhiều lĩnh vực như xử lý ngôn ngữ tự nhiên, nhận dạng giọng nói, phân loại hình ảnh, tự động lái xe và nhận dạng đối tượng trong video.
Học sâu được xây dựng trên cơ sở các thuật toán học máy như: hồi quy tuyến tính (linear regression), phân loại (classification), rừng ngẫu nhiên (random forests), máy vector hỗ trợ (support vector machines) và bộ phân loại naive Bayes Tuy nhiên, học sâu cho phép mô hình hóa các mối quan hệ phức tạp hơn trong dữ liệu thông qua các lớp ẩn sâu giúp nó trở nên mạnh mẽ hơn và độ chính xác cao hơn so với các phương pháp học máy truyền thống.
Hình 2 Học sâu (Deep Learning)
Trang 133 Học tăng cường(Reinforcement Learning)
Học tăng cường là một lĩnh vực trong Machine Learning mà mô hình được học cách tương tác với môi trường để đạt được mục tiêu nhất định thông qua các hành động và phản hồi Nó liên quan đến việc tìm hiểu cách các tác nhân thông minh tương tác với môi trường thông qua các hành động để tối đa hóa một khoản phần thưởng nào đó.
Trong học tăng cường, mô hình tương tác với một môi trường đưa ra trạng thái hiện tại và nhận lại phản hồi về việc thực hiện một hành động Mục tiêu của mô hình là học cách thực hiện các hành động đó để tối đa hóa phần thưởng trong môi trường Mô hình đưa ra các hành động dựa trên một chính sách, được học thông qua các phương pháp như Q-Learning hoặc Policy Gradient.
Học tăng cường được ứng dụng rộng rãi trong các lĩnh vực như trò chơi điện tử, robot, quản lý tự động và nhiều ứng dụng khác trong đời sống hàng ngày.
Hình 3 Học tăng cường
4 PyTorch
Trang 14hoạt và hiệu quả cho việc xây dựng các mô hình học máy PyTorch được thiết kế để dễ sử dụng, có tính mở rộng cao và có thể chạy trên nhiều nền tảng khác nhau Nó cũng cung cấp một cách tiếp cận thân thiện với các nhà phát triển cho việc triển khai các mô hình học máy phức tạp và tinh chỉnh các mô hình đang có.
5 Pygame
Pygame là một thư viện Python cho phép người dùng tạo các trò chơi và ứng dụng
đa phương tiện tương tác Nó cung cấp các công cụ để xử lý đồ họa, âm thanh và các sự kiện của người dùng như bàn phím và chuột Pygame là một thư viện mã nguồn mở và hoàn toàn miễn phí, được phát triển bởi một cộng đồng lập trình viên Python Pygame cũng được sử dụng rộng rãi trong giáo dục để giảng dạy lập trình cho các học sinh và sinh viên.
CHƯƠNG 3 Các nghiên cứu liên quan
Trang 15Bài báo "Sử dụng học tăng cường trong điều khiển robot di động" của Tạ Quang Trường và Đặng Thanh Hải tập trung vào việc sử dụng học tăng cường để giải quyết vấn
đề điều khiển robot di động Bài báo đề xuất một phương pháp mới để học tăng cường dựa trên thuật toán Q-Learning và xây dựng một mô hình mạng nơ-ron để phân loại hành động Kết quả thực nghiệm cho thấy phương pháp đề xuất có hiệu quả cao hơn so với các phương pháp truyền thống khác.
Học tăng cường trong hệ thống điều khiển robot bằng tay
Bài báo "Học tăng cường trong hệ thống điều khiển robot bằng tay" của Nguyễn Thành Nam và đồng nghiệp tập trung vào việc sử dụng học tăng cường để cải thiện hệ thống điều khiển robot bằng tay Bài báo đề xuất sử dụng phương pháp Q-Learning và một mô hình mạng nơ-ron để học tập hành động của robot Kết quả thực nghiệm cho thấy phương pháp đề xuất có hiệu quả cao hơn so với các phương pháp truyền thống khác.
2 Các nghiên cứu ngoài nước
Playing Atari with Deep Reinforcement Learning
Tác giả: Volodymyr Mnih, et al.
Nội dung chính: Bài báo này giới thiệu một phương pháp mới sử dụng mạng nơ-ron sâu (deep neural networks) kết hợp với học tăng cường (reinforcement learning) để giải quyết bài toán chơi game Atari Phương pháp này đã đạt được kết quả rất tốt và vượt qua được các phương pháp khác như học có giám sát (supervised learning) và học không giám sát (unsupervised learning) Các kết quả của nghiên cứu này đã mở ra những tiềm năng mới cho việc áp dụng học tăng cường trong các lĩnh vực khác như tự động lái xe, robot tự học
và hệ thống hỗ trợ quyết định.
End-to-end training of deep visuomotor policies
Tác giả: Sergey Levine, et al.
Nội dung chính: Bài báo này giới thiệu một phương pháp mới cho việc huấn luyện mạng nơ-ron sâu (deep neural networks) để thực hiện các tác vụ visuomotor (kết hợp giữa thông tin thị giác và chuyển động) Phương pháp này sử dụng học tăng cường (reinforcement learning) để huấn luyện mạng nơ-ron sâu để học cách điều khiển robot thực hiện các tác
Trang 16Kết quả thực nghiệm cho thấy phương pháp này đạt được kết quả rất tốt và có thể áp dụng cho nhiều tác vụ khác nhau trong robot học.
3 Các thuật toán sử dụng trong bài báo cáo
Trong dự án này, chúng ta sử dụng thuật toán Q-learning để đào tạo mô hình trí tuệ nhân tạo chơi game rắn Q-learning là một thuật toán học tăng cường đơn giản, mà mô hình của chúng ta sử dụng để tìm hiểu cách chơi game tốt hơn.
Ngoài ra, chúng ta cũng sử dụng một số thư viện Python như PyTorch và Pygame để thực hiện việc đào tạo và hiển thị trò chơi PyTorch là một thư viện học máy mã nguồn
mở được phát triển bởi Facebook, cho phép ta tạo và huấn luyện các mô hình học máy Pygame là một thư viện Python được sử dụng để phát triển các trò chơi.
CHƯƠNG 4 Xây dựng mô hình
1 Chuẩn bị
Để dạy AI chơi trò chơi Rắn bằng thuật toán học tăng cường, chúng ta cần chuẩn bị
dữ liệu phù hợp để mô hình có thể học tập và cải thiện sau mỗi vòng lặp.
Bước đầu tiên để chuẩn bị dữ liệu cho mô hình là xây dựng trò chơi Rắn và ghi lại các trạng thái của trò chơi Để làm được điều này, chúng ta sử dụng thư viện Pygame để tạo ra một cửa sổ trò chơi và điều khiển con rắn bằng các phím mũi tên trên bàn phím Sau mỗi lần di chuyển, chúng ta lưu lại trạng thái của trò chơi bao gồm tọa độ của con rắn, tọa độ của thức ăn và trạng thái của các ô trên bản đồ.
Sau khi đã có dữ liệu về trạng thái của trò chơi, chúng ta cần tính toán giá trị phần
Trang 17tính bằng số điểm được ghi được khi con rắn ăn được thức ăn Nếu con rắn đâm vào tường hoặc đâm vào cơ thể của mình, giá trị phần thưởng sẽ là âm.
Sau khi tính toán giá trị phần thưởng, chúng ta sử dụng thuật toán Q-learning để học cách đưa ra các hành động tối ưu trong trò chơi Rắn Trong Q-learning, chúng ta tính toán giá trị Q cho mỗi cặp trạng thái và hành động, sau đó cập nhật giá trị Q sau mỗi lần chơi Việc cập nhật giá trị Q được thực hiện bằng cách sử dụng công thức sau:
Trong đó Q(s, a) là Q-value khi thực hiện action a tại state s;
r(s, a) là reward nhận được;
s' là state kế tiếp
γ là hệ số discount, đảm bảo càng "xa" đích Q-value càng nhỏ
2 Quy trình
Để xây dựng mô hình học tăng cường (reinforcement learning), chúng ta cần:
+ Xây dựng môi trường game: trong bài viết này, chúng ta sử dụng Pygame để tạo ra môi trường chơi rắn.
+ Xây dựng mô hình Q-network: đây là một mạng nơ-ron nhân tạo (neural network) sử dụng để ước tính giá trị Q của các hành động tại một trạng thái xác định Trong bài viết này, chúng ta sử dụng một mạng nơ-ron tuyến tính đơn giản với hai lớp tuyến tính.
+ Xác định các siêu tham số và hàm mất mát: Trong bài viết này, chúng ta sử dụng giảm dần tốc độ học (learning rate) và một hàm mất mát (MSE loss).
+ Xác định thuật toán huấn luyện: Trong bài viết này, chúng ta sử dụng thuật toán