TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN
-------***-------
BÀI TẬP LỚN
HỌC PHẦN TRÍ TUỆ NHÂN TẠO
ĐỀ TÀI:
Ứng dụng mạng nơ ron vào thiết kế Trí Tuệ Nhân Tạo học chơi
Flappy Bird
Họ và tên sinh viên: Mai Vĩnh Minh
Lớp tín chỉ: Kinh tế chính trị Mác - Lênin(220)__07
Mã SV: 11206102
Hà Nội, 17 tháng 4 năm 2022
0
lOMoARcPSD|16991370
MỤC LỤC
TỔNG QUAN ĐỀ TÀI
Giới thiệu đề tài
Công cụ xây dựng
Mục tiêu
Phân tích
NỘI DUNG TÌM HIỂU
Trí tuệ nhân tạo
AI
Machine learning
Reinforcement learning
Mạng nơ ron
Giải thuật NEAT
Ứng dụng NEAT vào Flappy Bird
LẬP TRÌNH
Lập trình trò chơi Flappy bird
Cài đặt và ứng dụng giải thuật NEAT
Kết quả
1
lOMoARcPSD|16991370
I. TỔNG QUAN VỀ ĐỀ TÀI
1. Giới thiệu đề tài
Khi xã hội ngày càng phát triển, những công nghệ, máy móc đã thể
hiện được sự đột phá về tính ứng dụng trong các vấn đề hàng ngày. Trí tuệ
nhân tạo (còn được gọi là Artificial Intelligence - AI) cũng trên đà đó mà
phát triển ngày càng mạnh mẽ trong nhiều lĩnh vực khác nhau trong khoa
học và đời sống của con người, Để kiểm nghiệm mức độ thông minh của Trí
tuệ nhân tạo, các nhà khoa học thường thử kiểm nghiệm thông qua các trò
chơi, từ đó họ có thể đo lường và so sánh các sản phẩm AI để tìm ra sản
phẩm nào tốt hơn. Trong nhiều thập kỷ qua, con người ngày càng phát triển
ra nhiều thuật toán trong Trí tuệ nhân tạo đối đầu với con người trong nhiều
trò chơi khác biệt nhau về quy tắc và thử thách như là cờ vua, cờ vây, poker,
… Qua những hoạt động thử nghiệm trên, các nhà khoa học sẽ thu được dữ
liệu và sử dụng để phát triển các ứng dụng sau này. Chính vì vậy,, em đã
chọn đề tài huẩn luyện Trí tuệ nhân tạo chơi game Flappy Bird làm đề tài
Bài tập lớn của mình.
2. Công cụ xây dựng
Em sử dụng Integrated Development Environment là Pycharm và lập
trình chủ yếu bằng ngôn ngữ lập trình python. Ngoài ra, em sử dụng thư viện
pygame để lập trình giao diện trò chơi và thư viện neat-python để áp dụng
thuật toán NEAT huẩn luyện cho Trí tuệ nhân tạo của mình.
3. Mục tiêu
Tạo ra một Trí tuệ nhân tạo có khả năng tự học hỏi sau mỗi lần thua
và ngày càng trở nên giỏi hơn cho tới mức không thể thua nữa.
4. Phân tích
2
lOMoARcPSD|16991370
Về trò chơi Flappy bird:
Flappy Bird (tạm dịch là Chú chim vỗ cánh) là một trò chơi điện tử
trên điện thoại do anh Nguyễn Hà Đông phát triển, và do dotGEARS, một
studio phát triển game quy mô nhỏ, hoạt động độc lập có trụ sở tại Việt Nam
phát hành vào năm 2013. Trò chơi được trình bày theo phong cách side-
scroller (phong cách game với các đối tượng được nhìn thấy ở mặt bên
(side-view) và di chuyển từ cạnh trái sang cạnh phải của màn hình), trong đó
người chơi điều khiển một chú chim, cố gắng vượt qua các hàng ống màu
xanh lá cây mà không chạm vào chúng. Mục tiêu của trò chơi là điều khiển
một chú chim bay qua những cái ống. Nếu chú chim chạm vào chướng ngại
vật thì trò chơi sẽ kết thúc. Mỗi khi chú chim vượt qua một cặp ống thì
người chơi nhận được một điểm.
Về thuật toán AI phù hợp:
Thuật toán NEAT là viết tắt của NeuroEvolution of Augmented
Topologies. Nó là một phương pháp để phát triển mạng nơ-ron nhân tạo
bằng một thuật toán di truyền. NEAT thực hiện ý tưởng hiệu quả nhất bằng
cách bắt đầu quá trình phát triển với các mạng nhỏ, đơn giản và cho phép
chúng ngày càng trở nên phức tạp qua nhiều thế hệ.
3
lOMoARcPSD|16991370
II. NỘI DUNG TÌM HIỂU
1. Trí tuệ nhân tạo
AI - Artificial Intelligence hay còn gọi là Trí tuệ nhân tạo là một
ngành khoa học, kỹ thuật chế tạo máy móc thông minh, đặc biệt là các
chương trình máy tính thông minh. AI được thực hiện bằng cách nghiên cứu
cách suy nghĩ của con người, cách con người học hỏi, quyết định và làm
việc trong khi giải quyết một vấn đề nào đó, và sử dụng những kết quả
nghiên cứu này như một nền tảng để phát triển các phần mềm và hệ thống
thông minh, từ đó áp dụng vào các mục đích khác nhau trong cuộc sống. Nói
một cách dễ hiểu thì AI là việc sử dụng, phân tích các dữ liệu đầu vào nhằm
đưa ra sự dự đoán rồi đi đến quyết định cuối cùng.
Trí tuệ nhân tạo khác với việc lập trình logic trong các ngôn ngữ lập
trình là ở việc ứng dụng các hệ thống học máy (machine learning) để mô
phỏng trí tuệ của con người trong các xử lý mà con người làm tốt hơn máy
tính. Cụ thể, trí tuệ nhân tạo giúp máy tính có được những trí tuệ của con
người như: biết suy nghĩ và lập luận để giải quyết vấn đề, biết giao tiếp do
hiểu ngôn ngữ, tiếng nói, biết học và tự thích nghi,…
2. Machine learning
Machine learning (ML) hay máy học là một nhánh của trí tuệ nhân tạo
(AI), nó là một lĩnh vực nghiên cứu cho phép máy tính có khả năng cải thiện
chính bản thân chúng dựa trên dữ liệu mẫu (training data) hoặc dựa vào kinh
nghiệm (những gì đã được học). Machine learning có thể tự dự đoán hoặc
đưa ra quyết định mà không cần được lập trình cụ thể.
Quá trình học bắt đầu bằng các quan sát hoặc dữ liệu. Ví dụ, để tìm
kiếm các mẫu trong dữ liệu và đưa ra quyết định tốt hơn trong tương lai dựa
trên các ví dụ mà chúng tôi cung cấp. Mục đích chính là cho phép các máy
4
lOMoARcPSD|16991370