1. Trang chủ
  2. » Luận Văn - Báo Cáo

đề tài nghiên cứu và xây dựng trò chơi flappy bird bằng thuật toán deep q learning

32 3 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

Nội dung

1.1.3 Ưu và nhược điểm của trí tuệ nhân tạoƯu điểm của Trí tuệ Nhân tạo AI:Tăng hiệu suất và hiệu quả: AI có khả năng tự động thực hiện các tác vụ phức tạp vàlặp đi lặp lại một cách nhan

Trang 1

TRƯỜNG ĐẠI HỌC KIẾN TRÚC HÀ NỘIKHOA CÔNG NGHỆ THÔNG TIN

-*** -ĐỒ ÁN MÔN HỌC TRÍ TUỆ NHÂN TẠO

ĐỀ TÀI: NGHIÊN CỨU VÀ XÂY DỰNG TRÒCHƠI FLAPPY BIRD BẰNG THUẬT TOÁN

DEEP Q-LEARNINGNhóm sinh viên thực hiện:Nhóm 01

Nguyễn Văn Đạt ( Nhóm Trưởng )Đào Văn Duy

Giảng viên hướng dẫn: ThS Nguyễn Thị Huệ

Hà Nội, 10/2023

MỤC LỤC

Trang 2

LỜI NÓI ĐẦU 4

DANH MỤC VIẾT TẮT 5

CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 1

1.1 Tổng quan về trí tuệ nhân tạo 1

1.1.1 Khái niệm về trí tuệ nhân tạo 1

1.1.2 Phân loại trí tuệ nhân tạo 1

1.1.3 Ưu và nhược điểm của trí tuệ nhân tạo 2

1.1.4 Ứng dụng của trí tuệ nhân tạo vào thực tế 2

1.2 Deep Learning 3

1.2.1 Khái niệm Deep Learning 3

1.2.2 Các kỹ thuật Deep Learning 3

1.2.3 Ưu và Nhược điểm của Deep Learning 5

1.2.4 Các ứng dụng của Deep Learning 6

1.3 Tổng quan về đề tài 6

1.3.1 Giới thiệu trò chơi Flappy Bird 6

1.4 Công nghệ áp dụng cho đề tài 6

1.4.1 Ngôn ngữ lập trình python 6

1.4.2 Các thư viện dùng trong đề tài 7

CHƯƠNG 2 XÂY DỰNG TRÒ CHƠI FLAPPY BIRD BẰNG THUẬT TOÁN DEEP Q-LEARNING 8

2.1 Giới thiệu tổng quan về Deep Q-Learning 8

2.1.1 Khái niệm 8

2.1.2 Mô tả thuật toán 8

2.1.3 Đặc điểm của thuật toán 9

2.1.4 Ứng dụng của thuật toán Deep Q-Learning 10

2.2 Áp dụng thuật toán vào dự án 11

CHƯƠNG 3 XÂY DỰNG VÀ TRIỂN KHAI TRÒ CHƠI 12

Trang 3

3.1 Cài đặt chương trình 12

3.1.1 Cài đặt và định nghĩa tham số, mô hình và các hàm hỗ trợ 12

3.1.2 Sử dụng hàm ‘train’ để huấn luyện mô hình Deep Q-Network 15

3.2 Những bước để cài đặt và khởi chạy chương trình 22

KẾT LUẬN 25

TÀI LIỆU THAM KHẢO 26

BẢNG PHÂN CÔNG CÔNG VIỆC 27

Trang 4

LỜI NÓI ĐẦU

Trong thời đại số hóa hiện nay, trí tuệ nhân tạo (AI) không chỉ là một lĩnh vực nghiêncứu quan trọng, mà còn là một nguồn cảm hứng sáng tạo không giới hạn Việc áp dụngcác kỹ thuật học tăng cường như Deep Q-Learning vào việc xây dựng và nghiên cứutrò chơi điện tử đã trở thành một ứng dụng thú vị và hứa hẹn Trong nghiên cứu này,chúng em sẽ khám phá quá trình nghiên cứu và phát triển trò chơi Flappy Bird, mộttrong những trò chơi phổ biến và thách thức do chính người Việt Nam chúng ta tạo ra.Flappy Bird, một trò chơi điện tử đơn giản nhưng gây nghiện, việc chúng ta cần làmtrong trò chơi chỉ là điều khiển con chim qua các ống nước, nghe tuy có vẻ dễ nhưngthật sự không ít người đã phải thất bại khi chơi tựa game này Dựa trên nền tảng này,chúng em đã áp dụng Deep Q-Learning, một phương pháp học tăng cường dựa trênmạng nơ-ron sâu, để tạo ra một hệ thống trí tuệ nhân tạo có khả năng chơi Flappy Birdmột cách tự động.

Trang 5

DANH MỤC VIẾT TẮT

Trang 6

CHƯƠNG 1 CƠ SỞ LÝ THUYẾT1.1 Tổng quan về trí tuệ nhân tạo1.1.1 Khái niệm về trí tuệ nhân tạo

Trí tuệ nhân tạo (Artificial Intelligence - AI) là một lĩnh vực của khoa học máy tính vàcông nghệ thông tin tập trung vào việc phát triển máy tính và hệ thống có khả năngthực hiện nhiệm vụ yêu cầu sự "suy nghĩ" hoặc "học hỏi" như con người AI nhằm môphỏng khả năng tư duy, nhận thức, học tập và ra quyết định của con người trong môitrường số hóa ví dụ như: làm theo những gì con người dạy, hiểu ngôn ngữ con người,biết suy nghĩ logic như con người…

Trí tuệ nhân tạo đang thay đổi cách chúng ta làm việc và tương tác với công nghệ Nóđại diện cho một trong những thách thức và cơ hội quan trọng nhất của thế kỷ 21 vàđang tiếp tục phát triển mạnh mẽ.

1.1.2 Phân loại trí tuệ nhân tạo

AI có thể chia thành 4 loại: Máy phản ứng, bộ nhớ hạn chế, Lý thuyết tâm trí, Tự nhậnthức.

Loại 1: Máy phản ứng (Reactive Machines)

Là cấp độ đơn giản nhất của AI có khả năng phân tích những động thái khả nghi nhấtcủa mình và đối thủ Sau đó, sẽ đưa ra giải pháp tốt nhất.

Loại 2: Bộ nhớ hạn chế (Limited Memory)

Máy có bộ nhớ hạn chế, có thể giữ lại một số thông tin học được từ việc quan sát các sự kiện hoặc dữ liệu trước đó AI có thể xây dựng kiến thức bằng cách sử dụng bộ nhớ đó kết hợp với dữ liệu được lập trình sẵn (dự đoán tương lai)

Loại 3: Lý thuyết tâm trí (Theory of mind)

các nhà nghiên cứu lý thuyết về tâm trí hy vọng phát triển các máy tính có khả năng bắt chước các mô hình tinh thần của con người Máy móc có thể hiểu rằng con người và động vật có những suy nghĩ và cảm xúc có thể ảnh hưởng đến hành vi của chính chúng.

Lý thuyết về máy móc tâm trí sẽ được yêu cầu sử dụng thông tin thu được từ con người và học hỏi từ nó, sau đó sẽ thông báo bằng cách máy móc giao tiếp hoặc phản ứng với một tình huống khác.

Loại 4: Tự nhận thức (Self – awareness)

Có khả năng tự nhận thức về bản thân, có thể hành xử, bộc lộ cảm xúc như con người.Đây được xem là bước phát triển cao nhất của công nghệ AI và đến thời điểm hiện tạivẫn chưa khả thi.

Trang 7

1.1.3 Ưu và nhược điểm của trí tuệ nhân tạoƯu điểm của Trí tuệ Nhân tạo (AI):

Tăng hiệu suất và hiệu quả: AI có khả năng tự động thực hiện các tác vụ phức tạp và

lặp đi lặp lại một cách nhanh chóng và chính xác hơn con người, làm tăng hiệu suất vàhiệu quả trong nhiều lĩnh vực công việc.

Xử lý dữ liệu lớn: AI có khả năng phân tích và rút trích thông tin quan trọng từ dữ liệu

lớn và không cấu trúc, giúp đưa ra quyết định thông minh dựa trên dữ liệu.

Thời gian và tài nguyên tiết kiệm: AI có thể làm việc liên tục 24/7 mà không cần nghỉngơi, giúp tiết kiệm thời gian và tài nguyên.

Dự đoán và ứng dụng trong thời gian thực: AI có khả năng dự đoán các sự kiện và

xu hướng trong tương lai, hỗ trợ trong việc ra quyết định trong thời gian thực.

Tự động hóa công việc nguy hiểm: AI có thể thực hiện các nhiệm vụ nguy hiểm vàmôi trường có hại mà không đe dọa tính mạng của con người.

Nhược điểm của Trí tuệ Nhân tạo (AI):

Thất nghiệp: Sự tự động hóa bởi AI có thể dẫn đến mất việc làm cho một số người

trong một số ngành công nghiệp, đặc biệt là trong công việc có thể thay thế bằng máytính.

Quyền riêng tư và đạo đức: Sử dụng AI để thu thập, lưu trữ và phân tích dữ liệu có

thể đặt ra câu hỏi về quyền riêng tư và đạo đức, đặc biệt khi dữ liệu cá nhân bị lạmdụng.

Sự phụ thuộc vào công nghệ: Rất nhiều khía cạnh của cuộc sống và công việc ngày

nay dựa vào AI Nếu có sự cố hoặc hỏng hó trong hệ thống AI, sẽ có tác động nghiêmtrọng đến xã hội và kinh tế.

Kỹ thuật và học tập khó khăn: Xây dựng và huấn luyện các hệ thống AI có thể phức

tạp và đòi hỏi kiến thức chuyên sâu Nó cũng đòi hỏi lượng dữ liệu lớn để huấn luyệnvà kiểm tra.

Rủi ro an ninh mạng: AI cũng có thể được sử dụng để tấn công mạng và thực hiện

các cuộc tấn công mạng phức tạp, gây nguy cơ cho an ninh thông tin.

1.1.4 Ứng dụng của trí tuệ nhân tạo vào thực tế

Ứng dụng AI trong ngành vận tải: Trí tuệ nhân tạo Al được ứng dụng trên những

phương tiện vận tải tự lái, điển hình như là ô tô Ứng dụng này góp phần mang lại lợiích kinh tế cao hơn nhiều nhờ khả năng cắt giảm chi phí đặc biệt hạn chế những tai nạnnguy hiểm đến tính mạng con người.

Trang 8

Ứng dụng trong sản xuất: Trí tuệ nhân tạo còn được ứng dụng để xây dựng những

quy trình sản xuất tối ưu hơn. Công nghệ AI còn có khả năng phân tích cao, làm cơ sởđịnh hướng cho khả năng ra quyết định trong sản xuất.

Ứng dụng trong y tế: Ứng dụng tiêu biểu của trí tuệ nhân tạo trong lĩnh vực y tế đó

chính là máy bay thiết bị bay không cần người lái được sử dụng trong những trườnghợp cứu hộ khẩn cấp Thiết bị bay không người lái có thể đạt được tốc độ nhanh hơnxe chuyên dụng đến 40% và cực kì thích hợp để sử dụng ở những nơi có địa hình hiểmtrở.

Ứng dụng trong giáo dục: Sự ra đời của trí tuệ nhân tạo đã tạo ra những thay đổi lớn

trong lĩnh vực giáo dục Các hoạt động giáo dục như là chấm điểm hay dạykèm cho học sinh có thể được tự động hóa hoàn toàn nhờ công nghệ AI Nhiều tròchơi, phần mềm giáo dục được ra đời đáp ứng nhu cầu cụ thể của từng học sinh,giúp cho học sinh cải thiện rất nhiều về tình hình học tập theo tốc độ riêng của mình.

Ứng dụng trong truyền thông: Đối với lĩnh vực truyền thông thì sự phát triển của trí

tuệ nhân tạo đã góp phần làm thay đổi cách thức tiếp cận với khách hàng mục tiêu.Nhờ ưu điểm của công nghệ AI, các công ty đã có thể cung cấp quảng cáo vào đúngthời điểm, cho đúng khách hàng tiềm năng, dựa trên việc phân tích những đặc điểm vềnhân khẩu học, thói quen hoạt động trực tuyến những nội dung khách hàng thườngxem trên quảng cáo.

Ứng dụng trong ngành dịch vụ: Công nghệ AI còn giúp ngành dịch vụ hoạt động một

cách tối ưu hơn từ đó góp phần mang đến những trải nghiệm mới mẻ hơn, tốt hơn chokhách hàng. Thông qua thu thập và phân tích dữ liệu, công nghệ AI còn nắm bắt thôngtin về hành vi sử dụng những dịch vụ của khách hàng, từ đó đã mang lại những giảipháp phù hợp nhất với nhu cầu của từng khách hàng.

1.2 Deep Learning

1.2.1 Khái niệm Deep Learning

Deep Learning là một lĩnh vực quan trọng trong Trí tuệ Nhân tạo (AI) và Machine

Learning (Học máy), nó chú trọng vào việc sử dụng mạng thần kinh sâu để học biểudiễn và trích xuất thông tin từ dữ liệu Nó là một phân nhánh của học máy, sử dụngDeep Neural Networks để học từ dữ liệu trong đó Đặc biệt Deep Learning chú trọngđến việc xây dựng các mô hình học máy với nhiều lớp ẩn ( hidden layers ) để biểu diễndữ liệu một cách trừu tượng và cần sự hiểu biết cao hơn Nó cho phép máy tính họchỏi các biểu diễn và đặc trưng phức tạp từ dữ liệu mà không cần sự can thiệp trực tiếptừ con người Điều này giúp máy tính tự động rút ra các kiến thức và thông tin từ dữliệu.

1.2.2 Các kỹ thuật Deep Learning

Trang 9

Mạng nơ-ron cổ điển: Mạng nơ-ron cổ điển (Multi-Layer Perceptron - MLP) Đây là

một kiến trúc nơ-ron đơn giản với ít nhất một lớp đầu vào, một hoặc nhiều lớp ẩn vàmột lớp đầu ra MLP thường được sử dụng cho các nhiệm vụ phân loại và dự đoán Nóhoạt động bằng cách truyền dữ liệu qua các lớp nơ-ron sử dụng trọng số và hàm kíchhoạt, sau đó điều chỉnh các trọng số thông qua quá trình đào tạo để tối ưu hóa hiệu suấtcủa mô hình.

Mạng nơron tích chập: Mạng nơron tích chập (Convolutional Neural Network

-CNN) là một kiến trúc deep learning thường được sử dụng cho xử lý hình ảnh và dữliệu không gian Nó sử dụng lớp tích chập để trích xuất đặc trưng từ dữ liệu và lớp gộp(pooling) để giảm kích thước dữ liệu CNN được thiết kế để tự động tìm hiểu các đặctrưng cấu trúc trong dữ liệu và thường có khả năng tự động nhận diện hình dạng và đốitượng trong hình ảnh.

Mạng nơ-ron hồi quy: Mạng nơ-ron hồi quy (Recurrent Neural Network - RNN) là

một kiến trúc deep learning dành cho xử lý dữ liệu chuỗi hoặc chuỗi thời gian Nó sửdụng trạng thái ẩn để lưu thông tin về các bước trước đó trong chuỗi và sử dụng thôngtin đó để hiểu ngữ cảnh và phụ thuộc vào thời gian trong dữ liệu đầu vào RNN thườngđược sử dụng cho việc dự đoán chuỗi thời gian, xử lý ngôn ngữ tự nhiên và các nhiệmvụ liên quan đến chuỗi dữ liệu.

Mạng sinh đối nghịch: Mạng sinh đối nghịch (Generative Adversarial Network

-GAN) là một kiến trúc deep learning bao gồm hai mạng nơ-ron cạnh tranh: mạng tạora dữ liệu giả mạo và mạng phân biệt để phân biệt giữa dữ liệu thật và dữ liệu giả mạo.GAN được sử dụng để tạo ra dữ liệu mới và có khả năng tạo ra hình ảnh, âm thanh vàdữ liệu khác có chất lượng cao.

Boltzmann machine: Boltzmann Machine (BM) là một kiến trúc mạng nơ-ron trong

deep learning được sử dụng cho học biểu diễn và học sâu BM là một dạng của mạngnơ-ron nhân tạo, đặc biệt là nó có khả năng học các mối quan hệ giữa các biến ngẫunhiên BM sử dụng nhiều nơ-ron để biểu diễn dữ liệu và tìm hiểu cách biểu diễn dữliệu đó theo cách tốt nhất Nó thường được sử dụng trong các ứng dụng như phân loại,lọc cộng tác, và học biểu diễn dữ liệu.

Học tăng cường sâu: Học tăng cường sâu (Deep Reinforcement Learning - DRL) là

một phương pháp trong machine learning, kết hợp deep learning và học tăng cường.DRL giúp máy tính tự động tìm hiểu cách tương tác với môi trường để đạt được mụctiêu và tối ưu hóa một hàm phần thưởng Nó đã được sử dụng trong nhiều ứng dụng,bao gồm tự động lái xe, chơi trò chơi và quản lý tài sản tài chính DRL thường sử dụngcác mô hình deep neural networks để học cách đưa ra quyết định và hành động tối ưutrong môi trường phức tạp.

Trang 10

Backpropagation: Backpropagation là một thuật toán quan trọng trong học máy và

deep learning để điều chỉnh trọng số của mạng nơ-ron Thuật toán này hoạt động bằngcách tính gradient của hàm mất mát theo các trọng số và sau đó cập nhật trọng sốngược lại (nghĩa là "backward") để giảm sai số giữa dự đoán và kết quả thực tế.Backpropagation giúp mô hình học cách điều chỉnh trọng số để cải thiện hiệu suấttrong quá trình đào tạo.

Gradient Descent: Gradient Descent là một thuật toán tối ưu hóa trong học máy được

sử dụng để điều chỉnh các tham số của mô hình để giảm thiểu hàm mất mát Thuậttoán này hoạt động bằng cách tính gradient (đạo hàm) của hàm mất mát theo các thamsố và sau đó cập nhật các tham số theo hướng ngược với gradient để tìm ra điểm tối ưucủa hàm mất mát Gradient Descent giúp mô hình học cách điều chỉnh tham số để đạtđược hiệu suất tốt hơn.

1.2.3 Ưu và Nhược điểm của Deep LearningƯu điểm của Deep Learning:

Hiệu suất cao: Deep learning có khả năng học các biểu diễn phức tạp và tạo ra các mô

hình có khả năng dự đoán và phân loại cao hơn so với nhiều phương pháp khác.

Khả năng tự động hóa: Mạng nơ-ron sâu có khả năng học từ dữ liệu mà không cần sự

can thiệp rất nhiều từ con người Điều này làm cho deep learning thích hợp cho nhiềuứng dụng trong việc xử lý dữ liệu lớn.

Phát triển liên tục: Lĩnh vực deep learning luôn tiến bộ với sự ra đời của các kiến

thức và kỹ thuật mới Điều này giúp cải thiện hiệu suất của mô hình theo thời gian.

Xử lý dữ liệu phi cấu trúc: Deep learning có khả năng xử lý dữ liệu phi cấu trúc như

hình ảnh, âm thanh, và văn bản mà trước đây khó khăn cho các phương pháp truyềnthống.

Nhược điểm của Deep Learning:

Đòi hỏi lượng dữ liệu lớn: Deep learning thường cần một lượng lớn dữ liệu đào tạo

để hoạt động hiệu quả, điều này có thể là một thách thức trong những trường hợp thiếudữ liệu.

Tính tốn kém về tính toán: Mô hình deep learning đòi hỏi sự tính toán mạnh mẽ và tài

nguyên phần cứng mạnh để đào tạo và triển khai, dẫn đến sự tốn kém về cơ cấu cầnphải đầu tư.

Khó khăn trong diễn giải: Mô hình deep learning thường khó diễn giải, và việc hiểu

cách mô hình đưa ra các dự đoán có thể là một thách thức.

Trang 11

Overfitting: Deep learning có khả năng bị overfitting (tự điều chỉnh quá mức vào dữ

liệu đào tạo), đặc biệt khi lượng dữ liệu đào tạo không đủ hoặc khi mô hình quá phứctạp.

Khả năng tự động hóa: Mặc dù là một ưu điểm, tính tự động hóa của deep learning có

thể là một nhược điểm trong những tình huống cần kiểm soát cẩn thận và giám sát từcon người.

1.2.4 Các ứng dụng của Deep Learning

Thị giác máy tính: Deep Learning đã giúp cải thiện nhiều ứng dụng liên quan đến xử

lý hình ảnh, chẳng hạn như nhận dạng khuôn mặt, phân loại ảnh, và xe tự hành.

Xử lý ngôn ngữ tự nhiên (NLP): Deep Learning đã thúc đẩy sự phát triển của các hệ

thống NLP, bao gồm dịch máy, chatbots thông minh và phân tích ngữ cảnh.

Âm thanh và giọng nói: Deep Learning đã được sử dụng để xây dựng hệ thống nhận

dạng giọng nói và phát triển ứng dụng âm thanh thông minh.

Lập trình học sâu: Deep Learning cũng có ứng dụng trong lĩnh vực tự động tạo ra mã

nguồn (code generation) và giúp tạo ra các mô hình học máy tùy chỉnh.

Học Tự Động (End-to-End Learning): Deep Learning thường tập trung vào việc học

biểu diễn và kiến thức từ dữ liệu đầu vào đến đầu ra Điều này có nghĩa rằng nóthường thực hiện các nhiệm vụ một cách tự động mà trước đây đòi hỏi nhiều bước xửlý và đặc trưng thủ công.

Học Tăng Cường (Reinforcement Learning): Deep Learning cũng có ứng dụng trong

học tăng cường, nơi các mô hình Deep Q-Learning (DQL) và các biến thể khác đượcsử dụng để học chính sách tối ưu cho các tác vụ dựa trên phần thưởng.

1.3 Tổng quan về đề tài

1.3.1 Giới thiệu trò chơi Flappy Bird

Flappy Bird là một trò chơi điện tử di động rất nổi tiếng và gây nghiện, được phát triểnbởi Nguyễn Hà Đông và phát hành vào năm 2013 Trò chơi này nhanh chóng trở thànhhiện tượng trên toàn thế giới và đã thu hút hàng triệu người chơi.

Cơ chế chơi của Flappy Bird rất đơn giản Người chơi điều khiển một chú chim nhỏbằng cách chạm vào màn hình hoặc nhấn nút, và mục tiêu của họ là điều khiển conchim vượt qua các ống nước treo cao và thấp một cách thận trọng Sự khó khăn của tròchơi nằm ở việc cần điều khiển chiều cao của con chim để tránh va chạm với các ốngnước Mỗi lần bạn vượt qua một ống, bạn được một điểm.

Tuy đơn giản trong cách chơi, Flappy Bird lại cực kỳ khó khăn và đầy thách thức.Người chơi thường phải thực hành nhiều lần để có thể đạt được số điểm cao Sự thách

Trang 12

thức cùng với đồ họa đơn giản nhưng đáng yêu đã tạo nên sức hút của trò chơi đối vớitất cả mọi người.

1.4 Công nghệ áp dụng cho đề tài1.4.1 Ngôn ngữ lập trình python

Python, với cú pháp đơn giản và dễ đọc, đã trở thành một trong những ngôn ngữ lậptrình phổ biến nhất trên thế giới Không chỉ được sử dụng rộng rãi trong phát triểnphần mềm truyền thống, Python còn đóng vai trò quan trọng trong lĩnh vực trí tuệnhân tạo (AI), khoa học dữ liệu, web development, và nhiều lĩnh vực công nghệ khác.Sức mạnh của Python không chỉ đến từ cú pháp đẹp và dễ đọc, mà còn từ sự đa dạngcủa các thư viện và frameworks mạnh mẽ mà nó cung cấp Python cho phép các nhàphát triển xây dựng các ứng dụng AI, từ học máy đến thị giác máy tính và xử lý ngônngữ tự nhiên, một cách hiệu quả và nhanh chóng.

Bên cạnh đó, Python còn có một cộng đồng đam mê và hỗ trợ rất mạnh mẽ Các tàiliệu phong phú, khóa học trực tuyến và cộng đồng trực tuyến đông đảo đều giúp choviệc học và làm việc với Python trở nên dễ dàng.

1.4.2 Các thư viện dùng trong đề tài

Thư viện pygame: pygame là một thư viện mã nguồn mở cho ngôn ngữ lập trìnhPython được sử dụng để phát triển ứng dụng và trò chơi đồ họa 2D Thư viện này cungcấp các công cụ và tính năng cho việc vẽ đồ họa, xử lý sự kiện và âm thanh, giúpngười lập trình dễ dàng tạo ra các ứng dụng tương tác và trò chơi.

Thư viện pytorch: PyTorch là một thư viện mã nguồn mở cho máy học và trí tuệ nhân

tạo (AI) sử dụng ngôn ngữ lập trình Python Nó cung cấp một cơ sở mạnh mẽ cho việcxây dựng, huấn luyện và triển khai mạng nơ-ron và mô hình học máy khác nhau.PyTorch được phát triển bởi Facebook's AI Research (FAIR) và được ưa chuộng trongcộng đồng nghiên cứu AI nhờ tính linh hoạt, tài liệu phong phú và cộng đồng hỗ trợmạnh mẽ.

Thư viện argparse: argparse là một thư viện trong Python được sử dụng để xử lý và

phân tích các tham số và tùy chọn dòng lệnh khi chạy một ứng dụng từ dòng lệnh Nógiúp bạn định nghĩa các đối số cần thiết cho ứng dụng của mình và tự động tạo ra giaodiện dòng lệnh để người dùng có thể cung cấp các đối số này khi chạy chương trình.argparse giúp làm cho việc giao tiếp với ứng dụng từ dòng lệnh trở nên dễ dàng vàhiệu quả.

Thư viện Numpy: NumPy (Numeric Python) là một thư viện mã nguồn mở quan trọng

trong ngôn ngữ lập trình Python được sử dụng để làm việc với mảng và ma trận nhiềuchiều NumPy cung cấp một loạt các hàm và phương thức để thực hiện các phép toán

Trang 13

số học và thống kê trên dữ liệu số, làm cho việc xử lý dữ liệu đa chiều trở nên hiệu quảvà nhanh chóng Thư viện này thường được sử dụng chung với các thư viện khác tronglĩnh vực khoa học dữ liệu và máy học để phân tích và xử lý dữ liệu số một cách dễdàng và hiệu quả.

Thư viện tensorboardX: TensorBoardX là một thư viện mã nguồn mở cho phép bạn

trực quan hóa dữ liệu và mô hình trong quá trình đào tạo mạng nơ-ron sử dụngTensorFlow và PyTorch trong ngôn ngữ lập trình Python Nó cung cấp một giao diệntương tác trực quan thông qua trình duyệt web, giúp bạn theo dõi quá trình đào tạo vàhiểu rõ hơn về hoạt động của mô hình của bạn bằng các biểu đồ và đồ thị.TensorBoardX là một công cụ hữu ích cho việc phân tích và tối ưu hóa mạng nơ-ronvà các quá trình học máy.

Thư viện OpenCV: OpenCV là một thư viện mã nguồn mở phát triển cho xử lý hình

ảnh và thị giác máy tính OpenCV cung cấp nhiều công cụ và chức năng cho việc xử lýhình ảnh, phát hiện đối tượng, nhận dạng khuôn mặt, theo dõi chuyển động, và nhiềuứng dụng khác liên quan đến thị giác máy tính.

CHƯƠNG 2 XÂY DỰNG TRÒ CHƠI FLAPPY BIRD BẰNG THUẬT TOÁNDEEP Q-LEARNING

2.1 Giới thiệu tổng quan về Deep Q-Learning2.1.1 Khái niệm

Deep Q-Learning (DQL) là một thuật toán trong học tăng cường (reinforcementlearning) sử dụng mạng nơ-ron sâu để học và cải thiện chiến lược hành động của mộttác tử (agent) trong một môi trường DQL dựa trên việc xây dựng và cập nhật hàm giátrị hành động (Q-value function) để tối ưu hóa các hành động tại từng trạng thái.

2.1.2 Mô tả thuật toán

Thuật toán Deep Q-learning bao gồm:

Hàm Giá Trị Hành Động (Q-Value Function):

Mục tiêu của DQL là học một hàm giá trị hành động Q(s, a) cho mỗi trạng thái s vàhành động a Hàm này đo lường giá trị của việc thực hiện hành động a trong trạng tháis.

Mạng Nơ-ron Sâu (Deep Neural Network):

DQL sử dụng một mạng nơ-ron sâu để xấp xỉ và cập nhật hàm giá trị hành động Q.Mạng này có thể bao gồm nhiều tầng ẩn (hidden layers) để biểu diễn các hàm phứctạp.

Cập Nhật Hàm Giá Trị Hành Động:

Trang 14

DQL sử dụng thuật toán Q-Learning để cập nhật hàm giá trị hành động Cụ thể, nó sửdụng phương trình Bellman để cập nhật giá trị Q cho mỗi cặp trạng thái-hành động.Công thức cập nhật Q (s, a) là: Q(s, a) = Q(s, a) + α * [R + γ * max(Q(s', a')) - Q(s, a)]Trong đó:

Mô Phỏng Tương Tác Với Môi Trường:

Tác tử tương tác với môi trường bằng cách thực hiện hành động và nhận phần thưởngtừ môi trường.

DQL sử dụng dữ liệu từ các tương tác này để cập nhật giá trị Q và cải thiện chiến lượchành động.

Exploration vs Exploitation : DQL đối mặt với vấn đề khám phá (exploration) và

khai thác (exploitation) Để đảm bảo khám phá môi trường, DQL thường sử dụng cơchế epsilon-greedy để chọn hành động ngẫu nhiên một phần thời gian và chọn hànhđộng tốt nhất dựa trên giá trị Q còn lại.

Huấn Luyện Bằng Dữ Liệu Kinh Nghiệm : DQL lưu trữ các trạng thái, hành động,

phần thưởng và trạng thái tiếp theo vào bộ nhớ và sử dụng dữ liệu này để huấn luyệnmạng nơ-ron sâu.

Các Tham Số Quan Trọng : Các tham số quan trọng trong DQL bao gồm tốc độ học

tập (learning rate), hệ số giảm (discount factor), và các tham số của mạng nơ-ron sâunhư số lớp ẩn, kích thước batch, và thời gian cập nhật mạng.

Hội Tụ Và Điều Khiển Khi Cần Thiết : DQL có thể cần hàng triệu vòng lặp để hội tụ

đối với các môi trường phức tạp Điều này yêu cầu quản lý các tham số và kiểm soátquá trình huấn luyện.

DQL đã đạt được thành công trong nhiều nhiệm vụ học tăng cường và là một trongnhững công cụ quan trọng trong lĩnh vực trí tuệ nhân tạo.

2.1.3 Đặc điểm của thuật toán

Thuật toán Deep Q-Learning (DQL) có một số đặc điểm quan trọng sau:

Kết hợp học tăng cường và học máy sâu (Deep Learning): DQL kết hợp hai lĩnh vực

chính là học tăng cường và học máy sâu Nó sử dụng mạng nơ-ron sâu (Deep Neural

Trang 15

Network) để xấp xỉ hàm giá trị hành động (Q-function) để ước tính giá trị tối ưu củacác hành động trong một môi trường.

Sử dụng hàm giá trị hành động value): DQL dựa vào hàm giá trị hành động

(Q-value) để đo lường giá trị của việc thực hiện một hành động cụ thể trong một trạng tháicụ thể Mục tiêu của DQL là học và cập nhật Q-value để đạt được giá trị Q tối ưu chomọi trạng thái và hành động.

Phương pháp giải quyết vấn đề chuỗi thời gian (Temporal Credit Assignment):

DQL sử dụng nguyên tắc "học tăng cường" để tìm hiểu cách ước tính giá trị của hànhđộng hiện tại dựa trên các hành động và trạng thái trước đó trong một chuỗi thời gian.

Kỹ thuật mẫu (Experience Replay): DQL sử dụng kỹ thuật Experience Replay để lưu

trữ và sử dụng lại các trải nghiệm trước đó Điều này giúp cải thiện ổn định của quátrình học bằng cách ngẫu nhiên chọn các trải nghiệm từ bộ nhớ và tránh trường hợpquá trình học bị quá nghiêm ngặt.

Mục tiêu cố định (Fixed Target): DQL sử dụng một mạng nơ-ron mục tiêu cố định để

ước tính Q-value tối ưu trong mục tiêu Mạng nơ-ron này được cập nhật chậm hơnmạng chính (mạng chính được đào tạo để dự đoán Q-value) để làm cho quá trình họcổn định hơn.

Học phần phần (Off-Policy Learning): DQL là một thuật toán học phần phần, cónghĩa là nó có thể học từ dữ liệu trải nghiệm thu thập từ bất kỳ chiến lược hành độngnào, không cần biết chiến lược đó là tốt hay không.

Ứng dụng rộng rãi: DQL đã được áp dụng rộng rãi trong nhiều ứng dụng như trò chơi

điện tử, robot tự hành, quản lý tài sản, quản lý chuỗi cung ứng và nhiều lĩnh vực khác.

2.1.4 Ứng dụng của thuật toán Deep Q-Learning

Thuật toán Deep Q-Learning (DQL) là một phần quan trọng của lĩnh vực học tăngcường và học máy sâu (deep reinforcement learning) DQL kết hợp học tăng cườngvới mạng nơ-ron sâu để học và tối ưu hóa hành vi của một tác nhân trong một môitrường để đạt được một mục tiêu cụ thể DQL đã được áp dụng rộng rãi trong nhiềuứng dụng khác nhau, bao gồm:

Trò chơi điện tử: DQL đã giúp máy tính đánh bại con người trong nhiều trò chơi điện

tử phức tạp như Go, Chess và Dota 2 Nó đã tạo ra các hệ thống trí tuệ nhân tạo (AI)mạnh mẽ cho các trò chơi.

Robot tự hành: DQL có thể được sử dụng để đào tạo robot tự hành trong các nhiệm

vụ như lái xe tự động, điều hướng trong môi trường không gian và thậm chí là điềukhiển robot trong các nhà máy.

Trang 16

Quản lý tài sản: Trong lĩnh vực tài chính, DQL có thể được áp dụng để xác định chiến

lược giao dịch tối ưu dựa trên dữ liệu thị trường và tối ưu hóa lợi nhuận.

Tối ưu hóa ứng dụng: DQL có thể được sử dụng để tối ưu hóa các quy trình và ứng

dụng trong các lĩnh vực như quản lý tài nguyên, quản lý năng lượng và quản lý chuỗicung ứng.

Quá trình quyết định: Trong quản lý doanh nghiệp và tài chính, DQL có thể giúp tối

ưu hóa quá trình ra quyết định dựa trên các biến số phức tạp và dữ liệu lớn.

Trò chơi trực tuyến và cá cược: DQL cũng có thể được áp dụng trong các ứng dụng

cá cược trực tuyến và trong việc tối ưu hóa chiến lược cược.

Hệ thống kiểm soát: DQL có thể được sử dụng để kiểm soát và tối ưu hóa các hệ

thống phức tạp như hệ thống điều khiển nhiệt độ, hệ thống quản lý lưu lượng giaothông, và nhiều hệ thống khác.

Y học và dược phẩm: Trong nghiên cứu y học, DQL có thể được sử dụng để tối ưu

hóa liệu pháp và lựa chọn điều trị dựa trên dữ liệu lâm sàng.

2.2 Áp dụng thuật toán vào dự án

- Dưới đây là cách chúng em áp dụng thuật toán Deep Q – learning vào trò chơi

Flappy Bird để AI có thể tự động chơi game.

Bước 1: Chuẩn bị môi trường

Đầu tiên, chúng ta xác định trạng thái (state), hành động (action), phần thưởng(reward), và trạng thái tiếp theo (next state) của môi trường Flappy Bird

Bước 2: Tạo mạng Nơ-ron Q-Network

DQL sử dụng một mạng nơ-ron để xấp xỉ hàm Q-value Chúng ta tạo một Q-networkvới đầu ra tương ứng với số hành động có thể thực hiện Mạng nơ-ron này đã đượcđịnh nghĩa trong tệp ‘deep_q_network.py’.

Bước 3: Khởi tạo bộ nhớ lặp lại (Replay Memory)

DQL sử dụng bộ nhớ lặp lại để lưu trữ trạng thái trước đó và hành động, cho phépchúng ta lấy ngẫu nhiên các mẫu để huấn luyện mô hình

Bước 4: Huấn luyện mô hình DQL

Trong vòng lặp huấn luyện, chúng ta sẽ thực hiện các bước sau:+ Lấy trạng thái hiện tại từ môi trường.

+ Dự đoán Q-value cho mỗi hành động từ mạng nơ-ron.+ Thực hiện hành động dựa trên chiến lược epsilon-greedy.+ Lấy trạng thái tiếp theo sau khi thực hiện hành động.

Ngày đăng: 28/05/2024, 21:47

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

TÀI LIỆU LIÊN QUAN

w