SlideShare a Scribd company logo
1 of 25
lOMoAR cPSD|16991370
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
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
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
0
lOMoAR cPSD|16991370
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
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ả
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
1
lOMoAR cPSD|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
lOMoAR cPSD|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
lOMoAR cPSD|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
lOMoAR cPSD|16991370
tính tự động học mà không cần sự can thiệp hay trợ giúp của con người
và điều chỉnh các hành động tương ứng.
3. Học tăng cường (Reinforcement learning)
Reinforcement learning là một lĩnh vực con của học máy, nghiên cứu
cách thức một agent trong một môi trường nên chọn thực hiện các hành động
nào để cực đại hóa một khoản thưởng (reward) nào đó về lâu dài. Các thuật
toán học tăng cường cố gắng tìm một chiến lược ánh xạ các trạng thái của thế
giới tới các hành động mà agent nên chọn trong các trạng thái đó.
4. Mạng nơ ron (Neural network)
Khái niệm:
Mạng nơ-ron nhân tạo là một chuỗi những thuật toán được đưa ra để
tìm kiếm các mối quan hệ cơ bản trong tập hợp các dữ liệu. Thông qua việc
bắt bước cách thức hoạt động từ não bộ con người. Nói cách khác, mạng nơ
ron nhân tạo được xem là hệ thống của các tế bào thần kinh nhân tạo. Đây
thường có thể là hữu cơ hoặc nhân tạo về bản chất.
Mạng nơ-ron có khả năng thích ứng được với mọi thay đổi từ đầu
vào. Do vậy, nó có thể đưa ra được mọi kết quả một cách tốt nhất có thể mà
bạn không cần phải thiết kế lại những tiêu chí đầu ra.
Đặc điểm:
Trong lĩnh vực tài chính, mạng nơ ron nhân tạo hỗ trợ cho quá trình
phát triển các quy trình như: giao dịch thuật toán, dự báo chuỗi thời gian,
phân loại chứng khoán, mô hình rủi ro tín dụng và xây dựng chỉ báo độc
quyền và công cụ phát sinh giá cả. Mạng nơ ron nhân tạo có thể hoạt động
như mạng nơ ron của con người. Mỗi một nơ ron thần kinh trong nơ ron
nhân tạo là hàm toán học với chức năng thu thập và phân loại các thông
tin dựa theo cấu trúc cụ thể.
5
lOMoAR cPSD|16991370
Neural Network có sự tương đồng chuẩn mạnh vối những phương
pháp thống kê như đồ thị đường cong và phân tích hồi quy. Neural Network
có chứa những lớp bao hàm các nút được liên kết lại với nhau. Mỗi nút lại là
một tri giác có cấu tạo tương tự với hàm hồi quy đa tuyến tính.Bên trong
một lớp tri giác đa lớp, chúng sẽ được sắp xếp dựa theo các lớp liên kết với
nhau. Lớp đầu vào sẽ thu thập các mẫu đầu vào và lớp đầu ra sẽ thu nhận các
phân loại hoặc tín hiệu đầu ra mà các mẫu đầu vào có thể phản ánh lại.
Kiến trúc:
Neural Network là sự kết hợp của những tầng perceptron hay còn gọi
là perceptron đa tầng. Và mỗi một mạng Neural Network thường bao gồm
3 kiểu tầng là:
Tầng input layer (tầng vào): Tầng này nằm bên trái cùng của
mạng, thể hiện cho các đầu vào của mạng, bao gồm những hiểu biết mà
mạng sở hữu (Là con mắt của Trí tuệ nhân tạo.
Tầng output layer (tầng ra): Là tầng bên phải cùng và nó thể hiện cho
những đầu ra của mạng. Tầng ra sẽ điều khiển hoạt động của AI.
Để đưa các giá trị từ các input layer tới output layer chúng ta cần sử
dụng connection (liên kết). Mỗi input layer sẽ nối tới một output layer để các
dòng thông tin có thể hiển thị trên màn hình. Đặc biệt, mỗi connection có
một thuộc tính được gọi là weight (sức nặng) biểu diễn cho sự mạnh yếu của
connection.
Lưu ý: Mỗi một Neural Network chỉ có duy nhất một tầng vào và 1 tầng
ra nhưng lại có rất nhiều tầng ẩn. Với mạng Neural Network thì mỗi nút mạng
là một sigmoid neuron nhưng chúng lại có hàm kích hoạt khác nhau. Thực tế,
người ta thường sử dụng có cùng loại với nhau để việc tính toán
6
lOMoAR cPSD|16991370
thuận lợi hơn. Tại mỗi tầng, số lượng nút mạng có thể khác nhau còn tùy vào
bài toán hoặc cách giải quyết.
Tuy nhiên, khi làm việc người ta sẽ để các tầng ẩn số với số lượng
neuron khác nhau. Ngoài ra, những nơron nằm ở tầng thường sẽ liên kết
đôi với nhau để tạo thành mạng kết nối đầy đủ nhất. Khi đó, người dùng có
thể tính toán được kích cỡ của mạng dựa vào tầng và số lượng nơ ron.
Cài đặt mạng nơ ron vào bài toán Flappy bird:
Chúng ta chuyển các giá trị vào input neuron bao gồm: tung độ của
chú chim, khoảng cách của chim với top của đường ống và khoảng cách
của chim tới bottom của đường ống.
Những thông tin này sẽ được cung cấp cho output layer thông qua
connection bao gồm các weight để quyết định nhảy hay không. Weighted
sum (tổng trọng số), còn được gọi là tổ hợp tuyến tính có trọng số, là
phương pháp đa tiêu chí phân tích đơn giản nhất và được biết đến nhiều nhất
để đánh giá một số lựa chọn thay thế cho một số quyết định. Do vậy,
7
lOMoAR cPSD|16991370
weighted sum tính toán được sẽ được đưa ra output layer và thực hiện
2 phép toán cuối cùng.
Weighted sum với TH input và weight ở connection như hình
Phép toán đầu tiên là tính bias. Bias được thêm vào kết quả của phép
nhân trọng số với đầu vào. Kết quả của phép nhân luôn là một hàm tuyến
tính đi qua gốc tọa độ, sử dụng bias giúp mạng nơ ron có thể dịch chuyển
hàm tuyến tính này một cách linh hoạt. Bias cũng là một tham số được học
trong quá trình huấn luyện mạng nơ-ron. Nhờ vậy, bias giúp dịch chuyển
mạng nơ ron vào vị trí chuẩn xác trong chiều không gian.
8
lOMoAR cPSD|16991370
VD về weighted sum sau khi cộng bias
Điều cuối cùng chúng ta cần thực hiện là áp dụng hàm kích hoạt. Hàm
này cho phép chúng ta lấy giá trị cho đầu ra của nơ ron giữa 2 tập số, từ đó
dễ dàng hơn trong việc kiểm tra số này có gần với số kia không để quyết
định xem có nên nhảy hay không. Có rất nhiều hàm để thực thi công việc
trên nhưng trong TH này, hàm tính tan(x) sẽ là phù hợp nhất.
Hàm tan(x) khi truyền vào tham số weighted sum, nếu weighted sum
dương càng lớn thì hàm tan(weighted sum) càng trả về giá trị gần 1 và nếu
weighted sum âm càng nhỏ thì hàm tan(weighted sum) càng trả về giá trị
gần -1. Và chúng ta có thể lấy bất kì số trong (-1, 1) để quyết định việc có
nên nhảy hay không. Trong TH bài tập lớn của em, em xin chọn số 0.5, tức
9
lOMoAR cPSD|16991370
là nếu giá trị của hàm kích hoạt tan(weighted sum) > 0.5 thì mạng nơ ron sẽ
trả về kết quả nhảy, TH còn lại là không nhảy.
5. Giải thuật NEAT
Giải thuật NEAT (Neuronevolution of Augmenting Topologies) là
một giải thuật tiến hóa mạng nơ ron nhân tạo phổ biến. Trước tiên, chúng ta
cần hiểu tiến hóa nơ ron (Neuronevolution) là gì ? Neuronevolution là sự
phát triển nhân tạo của mạng nơ ron ứng dụng giải thuật di truyền, kết hợp
giải thuật tiến hóa sinh học và mô phỏng lại để thiết kế mạng nơ ron.
Neuronevolution đã cho thấy kết quả xuất sắc trong các tác vụ học tăng
cường (Reinforcement learning). Học tăng cường cho thấy được sự hứa hẹn
trong việc thiết kế cấu trúc mạng nơ ron, tuy nhiên vẫn còn chậm ở một số
tìm kiểm khả vi. Có thể nói, giải thuật NEAT được lấy cảm hứng từ học
thuyết chọn lọc tự nhiên của Charles Darwin.
Để hiểu rõ hơn về giải thuật NEAT, chúng ta cần hiểu những khía
cạnh cơ bản trong thuật toán này bao gồm: mã hóa gen, đánh dấu lịch
sử sinh sản, hình thành loài, đánh giá năng lực, cấu trúc tối thiểu.
Đầu tiên, mã hóa gen (Genetic encoding) là cách NEAT mã hóa mạng
nơ ron thành 2 kiểu: Kiểu gen và Kiểu hình. Kiểu gen chính là mã hóa cơ
bản của mạng nơ ron, sẽ sử dụng sinh sản (crossover) và đột biến (mutation).
Kiểu hình là kết quả của mạng nơ ron, kết quả này sẽ được đánh giá về sau.
10
lOMoAR cPSD|16991370
Cách thuật toán NEAT nhận biết kiểu gen và kiểu hình
Cách thuật toán NEAT tạo nên sự đột biến
Tiếp theo, đánh dấu lịch sử sinh sản (Historical Marking Crossover)
là kĩ thuật cho phép sinh sản giữa cấu trúc mạng nơ ron, gia tăng thêm độ
phức tạp của hệ sinh thái, cho phép cạnh tranh các topo của mạng nơ ron với
nhau trong ổ sinh thái đó.
11
lOMoAR cPSD|16991370
NEAT sẽ lấy 2 cá thể có biểu hiện xuất sắc nhất để sản sinh thế hệ mới
Đánh giá năng lực (Fitness sharing) là cạnh tranh trang cùng ổ sinh
thái với nhau chứ không cạnh tranh trong cả mô hình nhằm đạt một khoản
thưởng (reward) nào đó. Việc tìm phương thức đánh giá không phải luôn
khả thi, ví dụ trong bài toàn tìm một giai điệu mới, việc đánh giá giai điệu đó
có “dễ nghe”, “hay” hay không thuộc về cảm quan của mỗi người, nên việc
tìm một hàm đánh giá chính xác sẽ rất khó khăn. Nếu chi phí tính toán của
phương thức đánh giá quá lớn, việc sử dụng để tìm kiếm trong không gian sẽ
mất nhiều thời gian, thậm chí lâu hơn vét cạn.
Cuối cùng là cấu trúc tối thiểu, đơn giản là bắt đầu hệ thống mạng
nơ ron với một số lượng nhất định.
6. Ứng dụng NEAT vào Flappy Bird
Đầu tiên, chúng ta tạo ra 100 cá thể chim, và mỗi cá thể chim đều có
một mạng nơ ron điều khiển. Mỗi mạng nơ ron này sẽ được khởi tạo với
những bias và weight hoàn toàn ngẫu nhiên. Kế tiếp, chúng ta sẽ tiến hành
12
lOMoAR cPSD|16991370
kiểm thử tất cả các mạng nơ ron trong màn chơi và đánh giá mức độ dựa
trên kết quả của mạng nơ ron. Việc đánh giá này sẽ dựa trên tiêu chí là
quãng đường mà chim vượt qua được, cụ thể hơn là mỗi frame trong trò
chơi chim vượt qua được mà không bị “gãy cánh”.
Sau khi hoàn tất mô phỏng kiểm thử lần một (tất cả chim đều rơi),
chúng ta sẽ thu được kết quả, từ đó đánh giá được những con chim làm vượt
trội hơn so với các con chim thông thường khác. Và từ những con chim đó,
NEAT sẽ tiến hành đột biến và sinh sản ra 1 thế hệ mới vượt trội hơn bao
gồm 100 con thuộc loài chim mới. Vì những con chim này tới từ những con
chim tốt nhất trong kiểm thử lần một nên chúng ta kì vọng rằng trong lần
kiểm thử tiếp theo, thế hệ mới sẽ làm tốt hơn thế hệ cũ. Lặp đi lặp lại thao
tác này nhiều lần, ta sẽ thu được “chú chim bất khả chiến bại, siêu sức
mạnh” như những siêu nhân trong phim ảnh.
13
lOMoAR cPSD|16991370
LẬP TRÌNH
1. Lập trình trò chơi Flappy Bird
Load các dữ liệu, thư viện cần thiết và phông chữ của trò chơi:
Lớp Bird:
Lớp này mô phỏng đối tượng chú chim trong trò chơi Flappy Bird, có
các thuộc tính cơ bản như tọa độ (x, y), tilt: độ nghiêng, tick_count: số frame
đã đi qua, height: độ cao, vel: vận tốc, img_count: sử dụng để theo dõi
14
lOMoAR cPSD|16991370
animation của chim, img: hình ảnh render của chim. Các thuộc tính trên
được sử dụng để xử lí logic vật lý và animation cho đối tượng.
Các hàm cơ bản của lớp như:
Hàm __init__: constructor của Bird
Hàm move(self): hàm này xử lý phương thức di chuyển của đối
tượng. Để tính quãng đường rơi, ta sử dụng công thức d = v x t + x a x t2
.
Ngoài ra, hàm bao gồm một số thao tác xử lý logic vật lý khác như điểm rơi,
độ nghiêng.
Hàm jump(self): xử lý đối tượng nhảy tại trục tọa độ.
Hàm draw(self): hàm này xử lý animation của bird, giữ cho chim
luôn bay ở trung tâm màn hình, và khi chim rơi thì sẽ không đập cánh.
Hàm get_mask(self): Sử dụng thư viện pygame để lấy border của
chim theo hình ảnh, từ đó dễ dàng xử lý va chạm với cột về sau.
15
lOMoAR cPSD|16991370
Lớp Pipe:
Lớp này mô phỏng đối tượng ống trong trò chơi Flappy Bird, bao
gồm các thuộc tính cơ bản như x: hoành độ trong trục tọa độ, height: độ cao
của ống, PIPE_TOP: hình ảnh ống trên, PIPE_BOTTOM: hình ảnh ống
dưới, passed: Boolean kiểm tra chim đã bay qua ống chưa.
Hàm set_height(self): hàm này xây dựng độ cao của ổng trên và ống
dưới
16
lOMoAR cPSD|16991370
Hàm move(self): di chuyển ống
Hàm draw(self): render ống trên và ống dưới dựa trên số liệu top và
bottom
Hàm collide(self): Kiểm tra va chạm giữa đối tượng chim và ống, nếu
chim va chạm vào ống hàm trả về True, ngược lại hàm trả về False.
Lớp Base:
17
lOMoAR cPSD|16991370
Lớp base mô phỏng đối tượng mặt đất trong trò chơi Flappy Bird, bao
gồm các thuộc tính cơ bản như y: tung độ, x1: hoành độ 1, x2: hoành độ 2.
Các hàm cơ bản gồm có move(self): hàm này dùng để khiến mặt đất
di chuyển, nếu di chuyển hết mặt đất đầu tiên sẽ vẽ tiếp mặt đất thứ hai tại
đó, khi di chuyển hết mặt đất thứ hai liền lập tức vẽ tiếp mặt đất thứ nhất,
từ đó tạo nên animation scrolling.
Hàm draw(self): render 2 mặt đất di chuyển theo nguyên tắc move(self)
ở trên.
Ngoài ra, hàm draw_ window() để render tất cả đối tượng trên. Game
loop sẽ được xử lý trong hàm main.
18
lOMoAR cPSD|16991370
2. Cài đặt và ứng dụng giải thuật
NEAT Cài đặt:
File config-feedfoward.txt bao gồm những thông số cài đặt mạng
nơ ron, bias, và thông số genomes để điều khiển fitness score, kích thước
mẫu (pop_size)…
Ứng dụng:
Tiến hành load file config-feedfoward.txt từ local directory và bắt
đầu cài đặt NEAT từ các thông số trong file. Ngoài ra, chúng ta thêm bộ
xuất thông số đầu ra để tiện theo dõi các thông số các thế hệ sau này.
Tiến hành khởi tạo neural network và genome vào từng chú chim
một trong kích thước mẫu. Mạng nơ ron sẽ cho mỗi chú chim biết khi nào
nên nhảy, và genome sẽ điều khiển thông số fitness của từng chú chim.
19
lOMoAR cPSD|16991370
Trong trường hợp màn hình hiển thị một lúc 2 ống, ta sẽ tiến
hành đánh dấu index của ống đang tới và không quan tâm tới ống mà
chim đã vượt qua sắp rời màn hình
20
lOMoAR cPSD|16991370
Tiến hành truyền các thông số vào input layer của mạng nơ ron như đã
đề xuất ở phần Phân tích, từ đó giúp output layer khi nào quyết định nhảy,
khi nào không
21
lOMoAR cPSD|16991370
Để điều chỉnh fitness của genome, ta kiểm tra nếu score tăng thêm
(Tức là khi chim đã thành công bay qua 1 ống), ta sẽ thưởng điểm fitness
thêm 5 cho tất cả những chú chim đã vượt qua ống đó. Còn với những chú
chim (mạng nơ ron) thể hiện không tốt và để thua, thì chúng ta sẽ trừ
điểm fitness và loại bỏ chú chim đó cùng genome và mạng nơ ron đi kèm.
22
lOMoAR cPSD|16991370
Nếu chim va vào ống, giảm điểm fitness đi 1 điểm và loại bỏ
Nếu chim vượt ống thành công, cộng fitness thêm 5 điểm
3. Kết quả
Như chúng ta có thể thấy, sau 17 thế hệ, chú chim của chúng ta đã
rất mạnh và có khả năng bất tử nhờ mạng nơ ron siêu đẳng đi kèm.
23
lOMoAR cPSD|16991370
24

More Related Content

Similar to Ứng dụng mạng nơ ron vào thiết kế Trí Tuệ Nhân Tạo học chơi Flappy Bird.doc

Tiếng anh chuyên nghành cntt
Tiếng  anh chuyên nghành cnttTiếng  anh chuyên nghành cntt
Tiếng anh chuyên nghành cnttletranganh
 
Tiếng anh chuyên ngành công nghệ thông tin
Tiếng anh chuyên ngành công nghệ thông tinTiếng anh chuyên ngành công nghệ thông tin
Tiếng anh chuyên ngành công nghệ thông tinNguyen Trong
 
Tienganhchuyennganhcntt lythuyet
Tienganhchuyennganhcntt lythuyetTienganhchuyennganhcntt lythuyet
Tienganhchuyennganhcntt lythuyetThanh Danh
 
Tieng anh chuyen_nganh_cntt_-_ly_thuyet
Tieng anh chuyen_nganh_cntt_-_ly_thuyetTieng anh chuyen_nganh_cntt_-_ly_thuyet
Tieng anh chuyen_nganh_cntt_-_ly_thuyetTrang Nguyen
 
NGHIEN-CUU-VÀ-XAY-DUNG-TRO-CHOI-RAN-SAN-MOI-SU-DUNG-THUAT-TOAN-TIM-KIEM-THEO-...
NGHIEN-CUU-VÀ-XAY-DUNG-TRO-CHOI-RAN-SAN-MOI-SU-DUNG-THUAT-TOAN-TIM-KIEM-THEO-...NGHIEN-CUU-VÀ-XAY-DUNG-TRO-CHOI-RAN-SAN-MOI-SU-DUNG-THUAT-TOAN-TIM-KIEM-THEO-...
NGHIEN-CUU-VÀ-XAY-DUNG-TRO-CHOI-RAN-SAN-MOI-SU-DUNG-THUAT-TOAN-TIM-KIEM-THEO-...XunThin11
 
Thuc hanh pttk thang 9 nam 2012
Thuc hanh pttk thang 9 nam 2012Thuc hanh pttk thang 9 nam 2012
Thuc hanh pttk thang 9 nam 2012Nguyen Dung
 
Mạng neural nhân tạo và ứng dụng trong xử lý ngôn ngữ tự nhiên
Mạng neural nhân tạo và ứng dụng trong xử lý ngôn ngữ tự nhiênMạng neural nhân tạo và ứng dụng trong xử lý ngôn ngữ tự nhiên
Mạng neural nhân tạo và ứng dụng trong xử lý ngôn ngữ tự nhiênMinh Pham
 
TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...
TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...
TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...nataliej4
 
trí tuệ nhân tạo AI.pdf
trí tuệ nhân tạo AI.pdftrí tuệ nhân tạo AI.pdf
trí tuệ nhân tạo AI.pdfQucHiNguynT
 
Tieng anh chuyen_nganh_cntt_-_ly_thuyet
Tieng anh chuyen_nganh_cntt_-_ly_thuyetTieng anh chuyen_nganh_cntt_-_ly_thuyet
Tieng anh chuyen_nganh_cntt_-_ly_thuyetTrương Văn Thành
 
Tiểu luận cơ sở ngành kỹ thuật phần mềm. phần mềm mô phỏng các thuật toán s...
Tiểu luận  cơ sở ngành kỹ thuật phần mềm. phần mềm  mô phỏng các thuật toán s...Tiểu luận  cơ sở ngành kỹ thuật phần mềm. phần mềm  mô phỏng các thuật toán s...
Tiểu luận cơ sở ngành kỹ thuật phần mềm. phần mềm mô phỏng các thuật toán s...jackjohn45
 

Similar to Ứng dụng mạng nơ ron vào thiết kế Trí Tuệ Nhân Tạo học chơi Flappy Bird.doc (20)

Ta cntt
Ta cnttTa cntt
Ta cntt
 
Tiếng anh chuyên nghành cntt
Tiếng  anh chuyên nghành cnttTiếng  anh chuyên nghành cntt
Tiếng anh chuyên nghành cntt
 
Tiếng anh chuyên ngành công nghệ thông tin
Tiếng anh chuyên ngành công nghệ thông tinTiếng anh chuyên ngành công nghệ thông tin
Tiếng anh chuyên ngành công nghệ thông tin
 
Tienganhchuyennganhcntt lythuyet
Tienganhchuyennganhcntt lythuyetTienganhchuyennganhcntt lythuyet
Tienganhchuyennganhcntt lythuyet
 
Tieng anh chuyen_nganh_cntt_-_ly_thuyet
Tieng anh chuyen_nganh_cntt_-_ly_thuyetTieng anh chuyen_nganh_cntt_-_ly_thuyet
Tieng anh chuyen_nganh_cntt_-_ly_thuyet
 
NGHIEN-CUU-VÀ-XAY-DUNG-TRO-CHOI-RAN-SAN-MOI-SU-DUNG-THUAT-TOAN-TIM-KIEM-THEO-...
NGHIEN-CUU-VÀ-XAY-DUNG-TRO-CHOI-RAN-SAN-MOI-SU-DUNG-THUAT-TOAN-TIM-KIEM-THEO-...NGHIEN-CUU-VÀ-XAY-DUNG-TRO-CHOI-RAN-SAN-MOI-SU-DUNG-THUAT-TOAN-TIM-KIEM-THEO-...
NGHIEN-CUU-VÀ-XAY-DUNG-TRO-CHOI-RAN-SAN-MOI-SU-DUNG-THUAT-TOAN-TIM-KIEM-THEO-...
 
CS4S Số 1(8) 2016
CS4S Số 1(8) 2016CS4S Số 1(8) 2016
CS4S Số 1(8) 2016
 
Đề tài: Phát triển các thuật toán mới cho truyền thông trong mạng robot
Đề tài: Phát triển các thuật toán mới cho truyền thông trong mạng robot Đề tài: Phát triển các thuật toán mới cho truyền thông trong mạng robot
Đề tài: Phát triển các thuật toán mới cho truyền thông trong mạng robot
 
Thuc hanh pttk thang 9 nam 2012
Thuc hanh pttk thang 9 nam 2012Thuc hanh pttk thang 9 nam 2012
Thuc hanh pttk thang 9 nam 2012
 
Mạng neural nhân tạo và ứng dụng trong xử lý ngôn ngữ tự nhiên
Mạng neural nhân tạo và ứng dụng trong xử lý ngôn ngữ tự nhiênMạng neural nhân tạo và ứng dụng trong xử lý ngôn ngữ tự nhiên
Mạng neural nhân tạo và ứng dụng trong xử lý ngôn ngữ tự nhiên
 
TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...
TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...
TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...
 
Phân cụm đa mô hình và ứng dụng trong phân đoạn ảnh viễn thám
Phân cụm đa mô hình và ứng dụng trong phân đoạn ảnh viễn thámPhân cụm đa mô hình và ứng dụng trong phân đoạn ảnh viễn thám
Phân cụm đa mô hình và ứng dụng trong phân đoạn ảnh viễn thám
 
trí tuệ nhân tạo AI.pdf
trí tuệ nhân tạo AI.pdftrí tuệ nhân tạo AI.pdf
trí tuệ nhân tạo AI.pdf
 
Đề tài: Bảo vệ và phục hồi tổn thương gan của quả Dứa dại, HAY
Đề tài: Bảo vệ và phục hồi tổn thương gan của quả Dứa dại, HAYĐề tài: Bảo vệ và phục hồi tổn thương gan của quả Dứa dại, HAY
Đề tài: Bảo vệ và phục hồi tổn thương gan của quả Dứa dại, HAY
 
Phát triển các thuật toán mới cho truyền thông trong mạng robot
Phát triển các thuật toán mới cho truyền thông trong mạng robotPhát triển các thuật toán mới cho truyền thông trong mạng robot
Phát triển các thuật toán mới cho truyền thông trong mạng robot
 
Tieng anh chuyen_nganh_cntt_-_ly_thuyet
Tieng anh chuyen_nganh_cntt_-_ly_thuyetTieng anh chuyen_nganh_cntt_-_ly_thuyet
Tieng anh chuyen_nganh_cntt_-_ly_thuyet
 
Tiểu luận cơ sở ngành kỹ thuật phần mềm. phần mềm mô phỏng các thuật toán s...
Tiểu luận  cơ sở ngành kỹ thuật phần mềm. phần mềm  mô phỏng các thuật toán s...Tiểu luận  cơ sở ngành kỹ thuật phần mềm. phần mềm  mô phỏng các thuật toán s...
Tiểu luận cơ sở ngành kỹ thuật phần mềm. phần mềm mô phỏng các thuật toán s...
 
Một số thuật toán Phân tích số nguyên hiện đại Và ứng dụng.doc
Một số thuật toán Phân tích số nguyên hiện đại Và ứng dụng.docMột số thuật toán Phân tích số nguyên hiện đại Và ứng dụng.doc
Một số thuật toán Phân tích số nguyên hiện đại Và ứng dụng.doc
 
Do a nfinal (1)
Do a nfinal (1)Do a nfinal (1)
Do a nfinal (1)
 
Phân Tích Dữ Liệu Phân Hạng Tín Dụng Dựa Trên Bộ Dữ Liệu Xyz Bằng Phần Mềm Or...
Phân Tích Dữ Liệu Phân Hạng Tín Dụng Dựa Trên Bộ Dữ Liệu Xyz Bằng Phần Mềm Or...Phân Tích Dữ Liệu Phân Hạng Tín Dụng Dựa Trên Bộ Dữ Liệu Xyz Bằng Phần Mềm Or...
Phân Tích Dữ Liệu Phân Hạng Tín Dụng Dựa Trên Bộ Dữ Liệu Xyz Bằng Phần Mềm Or...
 

More from Dịch vụ viết thuê đề tài trọn gói 👉👉 Liên hệ ZALO/TELE: 0917.193.864 ❤❤

More from Dịch vụ viết thuê đề tài trọn gói 👉👉 Liên hệ ZALO/TELE: 0917.193.864 ❤❤ (20)

Danh Sách 200 Đề Tài Khoá Luận Tốt Nghiệp Về Giáo Dục, Từ Sinh Viên Giỏi.docx
Danh Sách 200 Đề Tài Khoá Luận Tốt Nghiệp Về Giáo Dục, Từ Sinh Viên Giỏi.docxDanh Sách 200 Đề Tài Khoá Luận Tốt Nghiệp Về Giáo Dục, Từ Sinh Viên Giỏi.docx
Danh Sách 200 Đề Tài Khoá Luận Tốt Nghiệp Về Giáo Dục, Từ Sinh Viên Giỏi.docx
 
474 Đề tài luận văn thạc sĩ học viện tài chính, 9 điểm.docx
474 Đề tài luận văn thạc sĩ học viện tài chính, 9 điểm.docx474 Đề tài luận văn thạc sĩ học viện tài chính, 9 điểm.docx
474 Đề tài luận văn thạc sĩ học viện tài chính, 9 điểm.docx
 
200 Đề Tài Luận Văn Về Kỹ Năng Làm Việc Nhóm, Hay Nhất.docx
200 Đề Tài Luận Văn Về Kỹ Năng Làm Việc Nhóm, Hay Nhất.docx200 Đề Tài Luận Văn Về Kỹ Năng Làm Việc Nhóm, Hay Nhất.docx
200 Đề Tài Luận Văn Về Kỹ Năng Làm Việc Nhóm, Hay Nhất.docx
 
Danh Sách 200 Đề Tài Luận Văn Quản Lý Giáo Dục,Từ Sinh Viên Giỏi.docx
Danh Sách 200 Đề Tài Luận Văn Quản Lý Giáo Dục,Từ Sinh Viên Giỏi.docxDanh Sách 200 Đề Tài Luận Văn Quản Lý Giáo Dục,Từ Sinh Viên Giỏi.docx
Danh Sách 200 Đề Tài Luận Văn Quản Lý Giáo Dục,Từ Sinh Viên Giỏi.docx
 
201 đề tài luận văn thạc sĩ sư phạm kỹ thuật, 9 điểm.docx
201 đề tài luận văn thạc sĩ sư phạm kỹ thuật, 9 điểm.docx201 đề tài luận văn thạc sĩ sư phạm kỹ thuật, 9 điểm.docx
201 đề tài luận văn thạc sĩ sư phạm kỹ thuật, 9 điểm.docx
 
Danh Sách 200 đề tài luận văn thạc sĩ lịch sử việt nam, đạt điểm cao.docx
Danh Sách 200 đề tài luận văn thạc sĩ lịch sử việt nam, đạt điểm cao.docxDanh Sách 200 đề tài luận văn thạc sĩ lịch sử việt nam, đạt điểm cao.docx
Danh Sách 200 đề tài luận văn thạc sĩ lịch sử việt nam, đạt điểm cao.docx
 
Kho 200 Đề Tài Luận Văn Thạc Sĩ Về Oxford, Điểm Cao.docx
Kho 200 Đề Tài Luận Văn Thạc Sĩ Về Oxford, Điểm Cao.docxKho 200 Đề Tài Luận Văn Thạc Sĩ Về Oxford, Điểm Cao.docx
Kho 200 Đề Tài Luận Văn Thạc Sĩ Về Oxford, Điểm Cao.docx
 
200 Đề Tài Luận Văn Sử Dụng Phương Pháp Định Tính, Mới Nhất.docx
200 Đề Tài Luận Văn Sử Dụng Phương Pháp Định Tính, Mới Nhất.docx200 Đề Tài Luận Văn Sử Dụng Phương Pháp Định Tính, Mới Nhất.docx
200 Đề Tài Luận Văn Sử Dụng Phương Pháp Định Tính, Mới Nhất.docx
 
Danh Sách 200 Đề Tài Khóa Luận Tốt Nghiệp Báo Chí, Từ Sinh Viên Giỏi.docx
Danh Sách 200 Đề Tài Khóa Luận Tốt Nghiệp Báo Chí, Từ Sinh Viên Giỏi.docxDanh Sách 200 Đề Tài Khóa Luận Tốt Nghiệp Báo Chí, Từ Sinh Viên Giỏi.docx
Danh Sách 200 Đề Tài Khóa Luận Tốt Nghiệp Báo Chí, Từ Sinh Viên Giỏi.docx
 
Kho 200 Đề Tài Báo Cáo Thực Tập Về Chứng Thực, 9 Điểm.docx
Kho 200 Đề Tài Báo Cáo Thực Tập Về Chứng Thực, 9 Điểm.docxKho 200 Đề Tài Báo Cáo Thực Tập Về Chứng Thực, 9 Điểm.docx
Kho 200 Đề Tài Báo Cáo Thực Tập Về Chứng Thực, 9 Điểm.docx
 
180 Đề Tài Báo Cáo Thực Tập Ngành Esg, Hay Nhất.docx
180 Đề Tài Báo Cáo Thực Tập Ngành Esg, Hay Nhất.docx180 Đề Tài Báo Cáo Thực Tập Ngành Esg, Hay Nhất.docx
180 Đề Tài Báo Cáo Thực Tập Ngành Esg, Hay Nhất.docx
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Về Zalo, Mới Nhất.docx
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Về Zalo, Mới Nhất.docxDanh Sách 200 Đề Tài Báo Cáo Thực Tập Về Zalo, Mới Nhất.docx
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Về Zalo, Mới Nhất.docx
 
201 Đề Tài Luận Văn Thạc Sĩ Về Quản Lý Đất Đai, Mới Nhất.docx
201 Đề Tài Luận Văn Thạc Sĩ Về Quản Lý Đất Đai, Mới Nhất.docx201 Đề Tài Luận Văn Thạc Sĩ Về Quản Lý Đất Đai, Mới Nhất.docx
201 Đề Tài Luận Văn Thạc Sĩ Về Quản Lý Đất Đai, Mới Nhất.docx
 
Top 200 đề tài luận văn thạc sĩ về giáo dục, mới nhất.docx
Top 200 đề tài luận văn thạc sĩ về giáo dục, mới nhất.docxTop 200 đề tài luận văn thạc sĩ về giáo dục, mới nhất.docx
Top 200 đề tài luận văn thạc sĩ về giáo dục, mới nhất.docx
 
201 Đề tài luận văn thạc sĩ về công tác dân vận, điểm cao.docx
201 Đề tài luận văn thạc sĩ về công tác dân vận, điểm cao.docx201 Đề tài luận văn thạc sĩ về công tác dân vận, điểm cao.docx
201 Đề tài luận văn thạc sĩ về công tác dân vận, điểm cao.docx
 
Kho 200 đề tài luận văn thạc sĩ giảm nghèo bền vững, để làm bài tốt nhất.docx
Kho 200 đề tài luận văn thạc sĩ giảm nghèo bền vững, để làm bài tốt nhất.docxKho 200 đề tài luận văn thạc sĩ giảm nghèo bền vững, để làm bài tốt nhất.docx
Kho 200 đề tài luận văn thạc sĩ giảm nghèo bền vững, để làm bài tốt nhất.docx
 
211 Đề Tài Báo Cáo Thực Tập Về Văn Hóa Công Sở, Mới Nhất.docx
211 Đề Tài Báo Cáo Thực Tập Về Văn Hóa Công Sở, Mới Nhất.docx211 Đề Tài Báo Cáo Thực Tập Về Văn Hóa Công Sở, Mới Nhất.docx
211 Đề Tài Báo Cáo Thực Tập Về Văn Hóa Công Sở, Mới Nhất.docx
 
Các yếu tố ảnh hưởng đến động lực làm việc của người lao động tại công ty Phư...
Các yếu tố ảnh hưởng đến động lực làm việc của người lao động tại công ty Phư...Các yếu tố ảnh hưởng đến động lực làm việc của người lao động tại công ty Phư...
Các yếu tố ảnh hưởng đến động lực làm việc của người lao động tại công ty Phư...
 
The effects of consuming fortified rice with iron and zinc on the nutritional...
The effects of consuming fortified rice with iron and zinc on the nutritional...The effects of consuming fortified rice with iron and zinc on the nutritional...
The effects of consuming fortified rice with iron and zinc on the nutritional...
 
Cơ sở lý luận và thực tiễn về hoạt động bán hàng.docx
Cơ sở lý luận và thực tiễn về hoạt động bán hàng.docxCơ sở lý luận và thực tiễn về hoạt động bán hàng.docx
Cơ sở lý luận và thực tiễn về hoạt động bán hàng.docx
 

Recently uploaded

Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfTrnHoa46
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoámyvh40253
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIĐiện Lạnh Bách Khoa Hà Nội
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIĐiện Lạnh Bách Khoa Hà Nội
 
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...hoangtuansinh1
 
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...Nguyen Thanh Tu Collection
 
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdfBỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdfNguyen Thanh Tu Collection
 
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảo
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảoKiểm tra cuối học kì 1 sinh học 12 đề tham khảo
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảohoanhv296
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...Nguyen Thanh Tu Collection
 
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgspowerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgsNmmeomeo
 
Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................TrnHoa46
 
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-KhnhHuyn546843
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quanGNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quanmyvh40253
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdfTrnHoa46
 
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng ĐồngGiới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng ĐồngYhoccongdong.com
 

Recently uploaded (20)

1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
 
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
 
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
 
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdfBỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
 
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảo
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảoKiểm tra cuối học kì 1 sinh học 12 đề tham khảo
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảo
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
 
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgspowerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
 
Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................
 
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quanGNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdf
 
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng ĐồngGiới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
 

Ứng dụng mạng nơ ron vào thiết kế Trí Tuệ Nhân Tạo học chơi Flappy Bird.doc

  • 1. lOMoAR cPSD|16991370 Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 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 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 0
  • 2. lOMoAR cPSD|16991370 Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 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ả Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 1
  • 3. lOMoAR cPSD|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
  • 4. lOMoAR cPSD|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
  • 5. lOMoAR cPSD|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
  • 6. lOMoAR cPSD|16991370 tính tự động học mà không cần sự can thiệp hay trợ giúp của con người và điều chỉnh các hành động tương ứng. 3. Học tăng cường (Reinforcement learning) Reinforcement learning là một lĩnh vực con của học máy, nghiên cứu cách thức một agent trong một môi trường nên chọn thực hiện các hành động nào để cực đại hóa một khoản thưởng (reward) nào đó về lâu dài. Các thuật toán học tăng cường cố gắng tìm một chiến lược ánh xạ các trạng thái của thế giới tới các hành động mà agent nên chọn trong các trạng thái đó. 4. Mạng nơ ron (Neural network) Khái niệm: Mạng nơ-ron nhân tạo là một chuỗi những thuật toán được đưa ra để tìm kiếm các mối quan hệ cơ bản trong tập hợp các dữ liệu. Thông qua việc bắt bước cách thức hoạt động từ não bộ con người. Nói cách khác, mạng nơ ron nhân tạo được xem là hệ thống của các tế bào thần kinh nhân tạo. Đây thường có thể là hữu cơ hoặc nhân tạo về bản chất. Mạng nơ-ron có khả năng thích ứng được với mọi thay đổi từ đầu vào. Do vậy, nó có thể đưa ra được mọi kết quả một cách tốt nhất có thể mà bạn không cần phải thiết kế lại những tiêu chí đầu ra. Đặc điểm: Trong lĩnh vực tài chính, mạng nơ ron nhân tạo hỗ trợ cho quá trình phát triển các quy trình như: giao dịch thuật toán, dự báo chuỗi thời gian, phân loại chứng khoán, mô hình rủi ro tín dụng và xây dựng chỉ báo độc quyền và công cụ phát sinh giá cả. Mạng nơ ron nhân tạo có thể hoạt động như mạng nơ ron của con người. Mỗi một nơ ron thần kinh trong nơ ron nhân tạo là hàm toán học với chức năng thu thập và phân loại các thông tin dựa theo cấu trúc cụ thể. 5
  • 7. lOMoAR cPSD|16991370 Neural Network có sự tương đồng chuẩn mạnh vối những phương pháp thống kê như đồ thị đường cong và phân tích hồi quy. Neural Network có chứa những lớp bao hàm các nút được liên kết lại với nhau. Mỗi nút lại là một tri giác có cấu tạo tương tự với hàm hồi quy đa tuyến tính.Bên trong một lớp tri giác đa lớp, chúng sẽ được sắp xếp dựa theo các lớp liên kết với nhau. Lớp đầu vào sẽ thu thập các mẫu đầu vào và lớp đầu ra sẽ thu nhận các phân loại hoặc tín hiệu đầu ra mà các mẫu đầu vào có thể phản ánh lại. Kiến trúc: Neural Network là sự kết hợp của những tầng perceptron hay còn gọi là perceptron đa tầng. Và mỗi một mạng Neural Network thường bao gồm 3 kiểu tầng là: Tầng input layer (tầng vào): Tầng này nằm bên trái cùng của mạng, thể hiện cho các đầu vào của mạng, bao gồm những hiểu biết mà mạng sở hữu (Là con mắt của Trí tuệ nhân tạo. Tầng output layer (tầng ra): Là tầng bên phải cùng và nó thể hiện cho những đầu ra của mạng. Tầng ra sẽ điều khiển hoạt động của AI. Để đưa các giá trị từ các input layer tới output layer chúng ta cần sử dụng connection (liên kết). Mỗi input layer sẽ nối tới một output layer để các dòng thông tin có thể hiển thị trên màn hình. Đặc biệt, mỗi connection có một thuộc tính được gọi là weight (sức nặng) biểu diễn cho sự mạnh yếu của connection. Lưu ý: Mỗi một Neural Network chỉ có duy nhất một tầng vào và 1 tầng ra nhưng lại có rất nhiều tầng ẩn. Với mạng Neural Network thì mỗi nút mạng là một sigmoid neuron nhưng chúng lại có hàm kích hoạt khác nhau. Thực tế, người ta thường sử dụng có cùng loại với nhau để việc tính toán 6
  • 8. lOMoAR cPSD|16991370 thuận lợi hơn. Tại mỗi tầng, số lượng nút mạng có thể khác nhau còn tùy vào bài toán hoặc cách giải quyết. Tuy nhiên, khi làm việc người ta sẽ để các tầng ẩn số với số lượng neuron khác nhau. Ngoài ra, những nơron nằm ở tầng thường sẽ liên kết đôi với nhau để tạo thành mạng kết nối đầy đủ nhất. Khi đó, người dùng có thể tính toán được kích cỡ của mạng dựa vào tầng và số lượng nơ ron. Cài đặt mạng nơ ron vào bài toán Flappy bird: Chúng ta chuyển các giá trị vào input neuron bao gồm: tung độ của chú chim, khoảng cách của chim với top của đường ống và khoảng cách của chim tới bottom của đường ống. Những thông tin này sẽ được cung cấp cho output layer thông qua connection bao gồm các weight để quyết định nhảy hay không. Weighted sum (tổng trọng số), còn được gọi là tổ hợp tuyến tính có trọng số, là phương pháp đa tiêu chí phân tích đơn giản nhất và được biết đến nhiều nhất để đánh giá một số lựa chọn thay thế cho một số quyết định. Do vậy, 7
  • 9. lOMoAR cPSD|16991370 weighted sum tính toán được sẽ được đưa ra output layer và thực hiện 2 phép toán cuối cùng. Weighted sum với TH input và weight ở connection như hình Phép toán đầu tiên là tính bias. Bias được thêm vào kết quả của phép nhân trọng số với đầu vào. Kết quả của phép nhân luôn là một hàm tuyến tính đi qua gốc tọa độ, sử dụng bias giúp mạng nơ ron có thể dịch chuyển hàm tuyến tính này một cách linh hoạt. Bias cũng là một tham số được học trong quá trình huấn luyện mạng nơ-ron. Nhờ vậy, bias giúp dịch chuyển mạng nơ ron vào vị trí chuẩn xác trong chiều không gian. 8
  • 10. lOMoAR cPSD|16991370 VD về weighted sum sau khi cộng bias Điều cuối cùng chúng ta cần thực hiện là áp dụng hàm kích hoạt. Hàm này cho phép chúng ta lấy giá trị cho đầu ra của nơ ron giữa 2 tập số, từ đó dễ dàng hơn trong việc kiểm tra số này có gần với số kia không để quyết định xem có nên nhảy hay không. Có rất nhiều hàm để thực thi công việc trên nhưng trong TH này, hàm tính tan(x) sẽ là phù hợp nhất. Hàm tan(x) khi truyền vào tham số weighted sum, nếu weighted sum dương càng lớn thì hàm tan(weighted sum) càng trả về giá trị gần 1 và nếu weighted sum âm càng nhỏ thì hàm tan(weighted sum) càng trả về giá trị gần -1. Và chúng ta có thể lấy bất kì số trong (-1, 1) để quyết định việc có nên nhảy hay không. Trong TH bài tập lớn của em, em xin chọn số 0.5, tức 9
  • 11. lOMoAR cPSD|16991370 là nếu giá trị của hàm kích hoạt tan(weighted sum) > 0.5 thì mạng nơ ron sẽ trả về kết quả nhảy, TH còn lại là không nhảy. 5. Giải thuật NEAT Giải thuật NEAT (Neuronevolution of Augmenting Topologies) là một giải thuật tiến hóa mạng nơ ron nhân tạo phổ biến. Trước tiên, chúng ta cần hiểu tiến hóa nơ ron (Neuronevolution) là gì ? Neuronevolution là sự phát triển nhân tạo của mạng nơ ron ứng dụng giải thuật di truyền, kết hợp giải thuật tiến hóa sinh học và mô phỏng lại để thiết kế mạng nơ ron. Neuronevolution đã cho thấy kết quả xuất sắc trong các tác vụ học tăng cường (Reinforcement learning). Học tăng cường cho thấy được sự hứa hẹn trong việc thiết kế cấu trúc mạng nơ ron, tuy nhiên vẫn còn chậm ở một số tìm kiểm khả vi. Có thể nói, giải thuật NEAT được lấy cảm hứng từ học thuyết chọn lọc tự nhiên của Charles Darwin. Để hiểu rõ hơn về giải thuật NEAT, chúng ta cần hiểu những khía cạnh cơ bản trong thuật toán này bao gồm: mã hóa gen, đánh dấu lịch sử sinh sản, hình thành loài, đánh giá năng lực, cấu trúc tối thiểu. Đầu tiên, mã hóa gen (Genetic encoding) là cách NEAT mã hóa mạng nơ ron thành 2 kiểu: Kiểu gen và Kiểu hình. Kiểu gen chính là mã hóa cơ bản của mạng nơ ron, sẽ sử dụng sinh sản (crossover) và đột biến (mutation). Kiểu hình là kết quả của mạng nơ ron, kết quả này sẽ được đánh giá về sau. 10
  • 12. lOMoAR cPSD|16991370 Cách thuật toán NEAT nhận biết kiểu gen và kiểu hình Cách thuật toán NEAT tạo nên sự đột biến Tiếp theo, đánh dấu lịch sử sinh sản (Historical Marking Crossover) là kĩ thuật cho phép sinh sản giữa cấu trúc mạng nơ ron, gia tăng thêm độ phức tạp của hệ sinh thái, cho phép cạnh tranh các topo của mạng nơ ron với nhau trong ổ sinh thái đó. 11
  • 13. lOMoAR cPSD|16991370 NEAT sẽ lấy 2 cá thể có biểu hiện xuất sắc nhất để sản sinh thế hệ mới Đánh giá năng lực (Fitness sharing) là cạnh tranh trang cùng ổ sinh thái với nhau chứ không cạnh tranh trong cả mô hình nhằm đạt một khoản thưởng (reward) nào đó. Việc tìm phương thức đánh giá không phải luôn khả thi, ví dụ trong bài toàn tìm một giai điệu mới, việc đánh giá giai điệu đó có “dễ nghe”, “hay” hay không thuộc về cảm quan của mỗi người, nên việc tìm một hàm đánh giá chính xác sẽ rất khó khăn. Nếu chi phí tính toán của phương thức đánh giá quá lớn, việc sử dụng để tìm kiếm trong không gian sẽ mất nhiều thời gian, thậm chí lâu hơn vét cạn. Cuối cùng là cấu trúc tối thiểu, đơn giản là bắt đầu hệ thống mạng nơ ron với một số lượng nhất định. 6. Ứng dụng NEAT vào Flappy Bird Đầu tiên, chúng ta tạo ra 100 cá thể chim, và mỗi cá thể chim đều có một mạng nơ ron điều khiển. Mỗi mạng nơ ron này sẽ được khởi tạo với những bias và weight hoàn toàn ngẫu nhiên. Kế tiếp, chúng ta sẽ tiến hành 12
  • 14. lOMoAR cPSD|16991370 kiểm thử tất cả các mạng nơ ron trong màn chơi và đánh giá mức độ dựa trên kết quả của mạng nơ ron. Việc đánh giá này sẽ dựa trên tiêu chí là quãng đường mà chim vượt qua được, cụ thể hơn là mỗi frame trong trò chơi chim vượt qua được mà không bị “gãy cánh”. Sau khi hoàn tất mô phỏng kiểm thử lần một (tất cả chim đều rơi), chúng ta sẽ thu được kết quả, từ đó đánh giá được những con chim làm vượt trội hơn so với các con chim thông thường khác. Và từ những con chim đó, NEAT sẽ tiến hành đột biến và sinh sản ra 1 thế hệ mới vượt trội hơn bao gồm 100 con thuộc loài chim mới. Vì những con chim này tới từ những con chim tốt nhất trong kiểm thử lần một nên chúng ta kì vọng rằng trong lần kiểm thử tiếp theo, thế hệ mới sẽ làm tốt hơn thế hệ cũ. Lặp đi lặp lại thao tác này nhiều lần, ta sẽ thu được “chú chim bất khả chiến bại, siêu sức mạnh” như những siêu nhân trong phim ảnh. 13
  • 15. lOMoAR cPSD|16991370 LẬP TRÌNH 1. Lập trình trò chơi Flappy Bird Load các dữ liệu, thư viện cần thiết và phông chữ của trò chơi: Lớp Bird: Lớp này mô phỏng đối tượng chú chim trong trò chơi Flappy Bird, có các thuộc tính cơ bản như tọa độ (x, y), tilt: độ nghiêng, tick_count: số frame đã đi qua, height: độ cao, vel: vận tốc, img_count: sử dụng để theo dõi 14
  • 16. lOMoAR cPSD|16991370 animation của chim, img: hình ảnh render của chim. Các thuộc tính trên được sử dụng để xử lí logic vật lý và animation cho đối tượng. Các hàm cơ bản của lớp như: Hàm __init__: constructor của Bird Hàm move(self): hàm này xử lý phương thức di chuyển của đối tượng. Để tính quãng đường rơi, ta sử dụng công thức d = v x t + x a x t2 . Ngoài ra, hàm bao gồm một số thao tác xử lý logic vật lý khác như điểm rơi, độ nghiêng. Hàm jump(self): xử lý đối tượng nhảy tại trục tọa độ. Hàm draw(self): hàm này xử lý animation của bird, giữ cho chim luôn bay ở trung tâm màn hình, và khi chim rơi thì sẽ không đập cánh. Hàm get_mask(self): Sử dụng thư viện pygame để lấy border của chim theo hình ảnh, từ đó dễ dàng xử lý va chạm với cột về sau. 15
  • 17. lOMoAR cPSD|16991370 Lớp Pipe: Lớp này mô phỏng đối tượng ống trong trò chơi Flappy Bird, bao gồm các thuộc tính cơ bản như x: hoành độ trong trục tọa độ, height: độ cao của ống, PIPE_TOP: hình ảnh ống trên, PIPE_BOTTOM: hình ảnh ống dưới, passed: Boolean kiểm tra chim đã bay qua ống chưa. Hàm set_height(self): hàm này xây dựng độ cao của ổng trên và ống dưới 16
  • 18. lOMoAR cPSD|16991370 Hàm move(self): di chuyển ống Hàm draw(self): render ống trên và ống dưới dựa trên số liệu top và bottom Hàm collide(self): Kiểm tra va chạm giữa đối tượng chim và ống, nếu chim va chạm vào ống hàm trả về True, ngược lại hàm trả về False. Lớp Base: 17
  • 19. lOMoAR cPSD|16991370 Lớp base mô phỏng đối tượng mặt đất trong trò chơi Flappy Bird, bao gồm các thuộc tính cơ bản như y: tung độ, x1: hoành độ 1, x2: hoành độ 2. Các hàm cơ bản gồm có move(self): hàm này dùng để khiến mặt đất di chuyển, nếu di chuyển hết mặt đất đầu tiên sẽ vẽ tiếp mặt đất thứ hai tại đó, khi di chuyển hết mặt đất thứ hai liền lập tức vẽ tiếp mặt đất thứ nhất, từ đó tạo nên animation scrolling. Hàm draw(self): render 2 mặt đất di chuyển theo nguyên tắc move(self) ở trên. Ngoài ra, hàm draw_ window() để render tất cả đối tượng trên. Game loop sẽ được xử lý trong hàm main. 18
  • 20. lOMoAR cPSD|16991370 2. Cài đặt và ứng dụng giải thuật NEAT Cài đặt: File config-feedfoward.txt bao gồm những thông số cài đặt mạng nơ ron, bias, và thông số genomes để điều khiển fitness score, kích thước mẫu (pop_size)… Ứng dụng: Tiến hành load file config-feedfoward.txt từ local directory và bắt đầu cài đặt NEAT từ các thông số trong file. Ngoài ra, chúng ta thêm bộ xuất thông số đầu ra để tiện theo dõi các thông số các thế hệ sau này. Tiến hành khởi tạo neural network và genome vào từng chú chim một trong kích thước mẫu. Mạng nơ ron sẽ cho mỗi chú chim biết khi nào nên nhảy, và genome sẽ điều khiển thông số fitness của từng chú chim. 19
  • 21. lOMoAR cPSD|16991370 Trong trường hợp màn hình hiển thị một lúc 2 ống, ta sẽ tiến hành đánh dấu index của ống đang tới và không quan tâm tới ống mà chim đã vượt qua sắp rời màn hình 20
  • 22. lOMoAR cPSD|16991370 Tiến hành truyền các thông số vào input layer của mạng nơ ron như đã đề xuất ở phần Phân tích, từ đó giúp output layer khi nào quyết định nhảy, khi nào không 21
  • 23. lOMoAR cPSD|16991370 Để điều chỉnh fitness của genome, ta kiểm tra nếu score tăng thêm (Tức là khi chim đã thành công bay qua 1 ống), ta sẽ thưởng điểm fitness thêm 5 cho tất cả những chú chim đã vượt qua ống đó. Còn với những chú chim (mạng nơ ron) thể hiện không tốt và để thua, thì chúng ta sẽ trừ điểm fitness và loại bỏ chú chim đó cùng genome và mạng nơ ron đi kèm. 22
  • 24. lOMoAR cPSD|16991370 Nếu chim va vào ống, giảm điểm fitness đi 1 điểm và loại bỏ Nếu chim vượt ống thành công, cộng fitness thêm 5 điểm 3. Kết quả Như chúng ta có thể thấy, sau 17 thế hệ, chú chim của chúng ta đã rất mạnh và có khả năng bất tử nhờ mạng nơ ron siêu đẳng đi kèm. 23