Tải bản đầy đủ (.docx) (14 trang)

Đồ án huấn luyện AI chơi game mario

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.02 MB, 14 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

BÁO CÁO ĐỒ ÁN
MÔN HỌC
ĐỒ ÁN 1
Đề tài: Huấn luyện AI chơi game Mario

❖ Giảng viên hướng dẫn ❖
Ths. Huỳnh Tuấn Anh

❖ Lớp ❖
SE121.L21.PMCL

❖ Sinh viên thực hiện ❖
Hoàng Phan Lê - 17520677


Tp. Hồ Chí Minh, tháng 06 năm 2021
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................


.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
......................., ngày ............. tháng ………. năm 2021
Người nhận xét
(Ký tên và ghi rõ họ tên)


LỜI CẢM ƠN
Trong quá trình làm bài báo cáo, em đã nhận được sự giúp đỡ, đóng góp ý
kiến và chỉ bảo nhiệt tình của thầy cơ, gia đình và bạn bè.
Em xin gửi lời cảm ơn chân thành đến thầy Huỳnh Tuấn Anh - giảng viên
khoa Công nghệ phần mềm - Trường ĐH CNTT- ĐHQG Tp HCM người đã tận
tìnhướng dẫn, góp ý và chỉ bảo em trong suốt quá trình làm báo cáo.

Ngoài ra, em cũng xin gửi lời cảm ơn đến những thầy cô giáo trong trường
ĐH CNTT- ĐHQG Tp HCM nói chung, các thầy cơ trong Khoa Cơng nghệ phần
mềm nói riêng đã dạy dỗ cho em kiến thức về lập trình, qua đó em có được cơ sở
lý thuyết vững vàng và từ đó hoàn thành tốt đồ án.
Cuối cùng, em xin chân thành cảm ơn gia đình và bạn bè, đã ln tạo điều
kiện, quan tâm, giúp đỡ, động viên em trong suốt quá trình hoàn thành đồ án.

Thành phố Hồ Chí Minh, ngày 30 tháng 06 năm 2021


Table of Contents
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN.......................................................................2
LỜI CẢM ƠN................................................................................................................................3
I.


Tổng Quan..............................................................................................................................4
1.1.

Giới thiệu đề tài.................................................................................................................4

1.1.1.

Tổng quan..................................................................................................................4

1.1.2.

Giới thiệu bài toán.....................................................................................................5

1.2.

Mục tiêu,phương pháp thực hiện,đóng góp......................................................................6

1.2.1.1.

Mục tiêu.................................................................................................................6

1.2.1.2.

Phương pháp thực hiện..........................................................................................6

1.2.1.3.

Đóng góp................................................................................................................6


II. Thực nghiệm:.........................................................................................................................6
1.

2.

Giải thuật di truyền...............................................................................................................6
1.1

Định nghĩa:....................................................................................................................6

1.2

Áp dụng vơ bài tốn:.....................................................................................................6

Mạng nơ-ron nhân tạo...........................................................................................................6
2.1

Định nghĩa:....................................................................................................................7

2.2

Áp dụng vơ bài tốn:.....................................................................................................7

3.

Giải thích về state:................................................................................................................7

4.

Đọc các giá trị RAM.............................................................................................................7


5

Bản đồ RAM:........................................................................................................................9

6.

Các cơng thức.....................................................................................................................10

7.

6.1

Tìm cơng thức biểu diễn trạng thái:............................................................................10

6.2

Tìm cơng thức chung...................................................................................................10

Mã giả tổng kết các phần thực nghiệm (Giải thuật di truyền và mạng nơ-ron)..................12

III

Kết quả đạt được...............................................................................................................13

IV

Tổng kết.............................................................................................................................14

1.


Kiến thức.............................................................................................................................14

2.

Khó khăn.............................................................................................................................14

3.

Hướng Phát triển.................................................................................................................14


I.

Tổng Quan
1.1. Giới thiệu đề tài
1.1.1. Tổng quan
- Những năm gần đây, khi mà khả năng tính toán của các máy tính
được nâng lên một tầm cao mới và lượng dữ liệu khổng lồ được
thu thập bởi các hãng công nghệ lớn, Machine Learning đã tiến
thêm một bước dài và một lĩnh vực mới được ra đời gọi là Deep
Learning (Học Sâu - thực sự tôi không muốn dịch từ này ra tiếng
Việt). Deep Learning đã giúp máy tính thực thi những việc tưởng
chừng như không thể vào 10 năm trước: phân loại cả ngàn vật thể
khác nhau trong các bức ảnh, tự tạo chú thích cho ảnh, bắt chước
giọng nói và chữ viết của con người, giao tiếp với con người, hay
thậm chí cả sáng tác văn hay âm nhạc,khai phá dữ liệu.
- Từ đó chúng ta có thể ứng dụng nó vào việc dự đốn. Ví dụ, bạn
có thể dự đoán giá của căn hộ dựa trên các dữ liệu về giá các căn
hộ bạn đã có.

- Nhưng vấn đề là cần phải dự đốn để có hiểu xuất nhanh nhất,đúng
nhất và ít tài nguyên nhất từ đó các thuật toán tối ưu được ra đời để
giúp thực hiện các bài toán như trên như : Giải thuật di truyền,
mạng nơ-ron nhân tạo,..
1.1.2. Giới thiệu bài toán
- Ứng dụng của AI và Machine Learning đã được chứng minh rộng
tãi khắp thế giới, tính thực tiễn và đóng góp của nó đã góp phần
đóng góp nhiều vơ các giai đoạn sản xuất. Có thể nói đến thành tựu
gần đây nhất về việc Nhận diện người bị mắc Covid-19 qua tiếng
ho hoặc khả năng quét khuôn mặt Nhắc nhở đeo khẩu trang đã
giúp rất nhiều vào các công cuộc cần có sự có mặt của con người.
- Các trò chơi nổi tiếng ngày nay cũng đã áp dụng AI. Ví dụ điển
hành về việc áp dụng AI vơ game đó là trò chơi FIFA 22, quét các
điểm ảnh để tạo ra nhân vật có các cử chỉ giống như ngoài đời,
đem tới tính thực tế cho người chơi.
- Vì thế em đã chọn đề tài Huấn luyện AI chơi game Super Mario.
Tìm và áp dụng các giải thuật để Nhân vật Mario có thể tự hoàn
thành các map


1.2.Mục tiêu,phương pháp thực hiện,đóng góp
1.2.1.1. Mục tiêu
 Hiểu Được giải thuật di truyền, mạng nơ-ron nhân tạo
 Tìm hiểu về cơ chế chơi game để có thể áp dụng cho bài
toán
 Thu thập và training bộ dữ liệu để đưa ra kết quả
1.2.1.2. Phương pháp thực hiện
 Sử dụng ngơn ngữ python và các thư viện
numpy,pandas ,matplotlib
1.2.1.3. Đóng góp

 Hệ thống lại kiến thức giải thuật di truyền và mạng nơron nhân tạo
 Tìm hiểu và áp dụng các thuật toán vào bài toán
 Chạy training bộ dữ liệu thu được và đánh giá kết quả

II.

Thực nghiệm:
1. Giải thuật di truyền
1.1Định nghĩa: Giải thuật di truyền là một kỹ thuật của khoa học máy
tính nhằm tìm kiếm giải pháp thích hợp cho các bài toán tối ưu tổ hợp.
Giải thuật di truyền là một phân ngành của giải thuật tiến hóa vận
dụng các nguyên lý của tiến hóa như di truyền, đột biến, chọn lọc tự
nhiên, và trao đổi chéo.
1.2Áp dụng vơ bài tốn:
- Giải thuật di truyền áp dụng rất tốt và việc tìm kiếm khơng gian
chiều cao. Việc áp dụng sẽ được giải thích sau
- Công thức: Chúng ta sẽ có hàm f là hàm chứa biến x ánh xạ lên y
2. Mạng nơ-ron nhân tạo


2.1 Định nghĩa: Mạng neural nhân tạo hay thường gọi ngắn gọn là
mạng neural là một mơ hình tốn học hay mơ hình tính tốn được xây
dựng dựa trên các mạng neural sinh học. Nó gồm có một nhóm các
neural nhân tạo nối với nhau, và xử lý thông tin bằng cách truyền theo
các kết nối và tính giá trị mới tại các nút.
II.2
Áp dụng vơ bài tốn:
- Chúng ta sẽ quyết định hành động (action) của nhân vật Mario dựa
trên trạng thái (state). Vậy nên ta sẽ có cơng thức: action = f(state).
Trong đó state là input và action là output

3. Giải thích về state:
- Ta có: action = f(state). Vậy chúng ta sẽ tìm biến state như thế nào?

o Game được chơi trên nền tảng Nintendo Entertainment
System (NES). Phân rã map World 1-1 thành ma trận các
khổi block 13x16
o Nói ngắn gọn về cơ chế chơi: Mario (block màu xanh) luôn
di chuyển và nhảy về bên phải. Em đã kéo gọn màn hình
game thành miền màu hờng. Từ đó có thể lập ra các tập hợp
trạng thái ( state ). Và giờ chúng ta sẽ chỉ thảo luận về miền
màu hờng và các khối block trong miền đó.
4. Đọc các giá trị RAM
4.1 RAM là nơi chứa dữ liệu. Trong game Super Mario, chúng ta sẽ
sử dụng dữ liệu đó để mơ tả các trạng thái (state). Và đây là cách
truy cập giá trị RAM:


4.2 Chúng ta đã truy cập được tệp dữ liệu RAM map World 1-1. Và
cũng có thể lấy ra được vị trí hiện tại của Mario 0x006D:

4.3 Lấy các giá trị RAM của enemies:

4.4 Các khối block có thể nhận dải giá trị : [0x00,0xFF]. Trong miền
màu hồng tổng cộng có 70 khối block nhận giá trị 0 -> 255
4.5 Quan sát các giá trị RAM có trong bản đồ:


5 Từ bản đồ RAM ta có thể thấy:
5.1 Block rỗng có giá trị 0
5.2 Giá trị được khoanh màu xanh 170 (0xAA) chính là nhân vật

Mario
5.3 Enemies và các block tĩnh có mang các giá trị, điều này khiến
chúng ta phải tìm block là enemy
5.4 5 con enemies có thể xuất hiện đồng thời trên màn hình, code để
tìm enemies sẽ trông như thế này:


Đoạn code này sẽ giúp chúng ta tìm enemies có màn hình và lấy ra vị trị của nó
6. Các cơng thức
6.1Tìm cơng thức biểu diễn trạng thái:
- Một khối block có thể có 3 giá trị: enemy, empty, safe. Biểu diễn
thành {−1,0,1}. Trạng thái được tạo thành bởi tập hợp các block và
3n là tập khả các trạng thái khả thi
6.2 Tìm cơng thức chung
- Để Mario có thể đi qua hết map, ta phải xác định các loại khoảng
cách: bản độ, với enemy, giữa các khung hình,…


Code:


7. Mã giả tổng kết các phần thực nghiệm (Giải thuật di truyền và mạng nơ-ron)


III

Kết quả đạt được

Mario có thể hoàn thành các world khi cho thời gian train


Mario nhận diện enemy và nhảy lên block để tiêu diệt


Mario nhận diện vật thể safe và nhảy qua block

IV

Tổng kết
o
o
o
o
o
o
o
o
o
o

-

1. Kiến thức
Hiểu về giải thuật di truyền, mạng nơ-ron nhân tạo
Training và hướng mario đi hết bản đồ
Sử dụng được một số thư viện để sử dụng cho machine
learning
2. Khó khăn
Do áp dụng nhiều thuật tốn có thể gây nhiễu
Do chưa xử lý tốt bộ dữ liệu dẫn đến sai lệch lớn
Tính toán áp dụng vào bài toán chưa được tốt

Chưa áp dụng để tính cho tất cả các map trong game
3. Hướng Phát triển
Sử dụng bài toán vào tất cả map trong game
Tính tốn sẽ khơng chỉ giúp Mario qua màn, mà còn giúp
Mario đi hết màn với số điểm cao nhất
Lập thêm các nút ở lớp trong của mạng nơ-ron nhân tạo

*link tham khảo:
/> />


×