Professional Documents
Culture Documents
Đồ Án Cuối Kì
Đồ Án Cuối Kì
4. Khi tất cả các con chim va vào vật cản và chết, ta sử dụng các toán tử thuật
toán di truyền (chọn lọc, trao đổi chéo và đột biến) để đánh giá quần thể hiện
tại cho đến các quần thể tiếp theo của nó:
a. Sort the units of the current population in decreasing order by their
fitness ranking
b. Select the top 4 units and mark them as the winners of the current
population
c. The 4 winners are directly passed on to the next population
d. To fill the rest of the next population, create 6 offsprings as follows:
- 1 offspring is made by a crossover of two best winners
- 3 offsprings are made by a crossover of two random winners
- 2 offsprings are direct copy of two random winners
e. To add some variations, apply random mutations on each offspring.
5. Quay trở lại bước 2.
III. Neural Network
Neural network bao gồm cái lớp ví dụ như có 1 lớp input, 1 lớp output, và các
cái lớp hidden. 1 neural network bao gồm rất nhiều input hoặc output. Các lớp liên
kết với nhau thông qua 1 cái trọng số (WH1, WH2, ….).
Một neron lấy một nhóm các đầu vào có trọng số, áp dụng hàm kích hoạt và trả
về một đầu ra.
Sau đây là ví dụ để hiểu thêm về cách neron nó hoạt động như thế nào.
VD: Con chó có thể phân biệt được người thân trong gia đình và người lạ. Những
việc tưởng chừng như rất đơn giản nhưng lại cực kì khó để thực hiện bằng máy
tính. Vậy sự khác biệt nằm ở đâu? Câu trả lời nằm ở bộ não với lượng lớn các nơ-
ron thần kinh liên kết với nhau. Thế thì máy tính có nên mô phỏng lại mô hình ấy
để giải các bài toán trên???
Ta có thể thấy neron nó gồm các input và các output và các trọng số
(W1, W2, W3, …Wm)
Thì công việc của lớp hidden đó là lấy lần lượt input nhân với trọng số và cộng lại
với nhau,
(X1. W1 + X2. W2 +….Xm.Wm ) + bias
và sẽ nó đưa tới 1 cái gọi là activation hàm activation nó sẽ trả giá trị về 1 hoặc 0
và đó cũng chính là output cũng chúng ta ví dụ nếu là 1 thì đây là ảnh người thân
trong gia đình hoặc 0 thì đây là ảnh của người lạ chẳng hạn.
Suy ra trong tựa game flappy bird mỗi đơn vị (chim) có mạng lưới thần kinh riêng
được sử dụng làm bộ não AI của nó để chơi trò chơi. Nó bao gồm 3 lớp như sau:
1) Một lớp đầu vào (input) với 2 tế bào thần kinh đại diện cho những gì một con
chim nhìn thấy:
Khoảng cách ngang đến khoảng cách gần nhất
Chênh lệch độ cao đến khoảng cách gần nhất
2) Một lớp ẩn (hidden) với 6 tế bào thần kinh (sử lí số liệu để cho ra ouput)
3) Một lớp đầu ra (output) với 1 nơ-ron cung cấp một hành động như sau:
Nếu đầu ra> 0,5 thì lật ngược lại không làm gì cả.
IV. Tổng quan về giải thuật di truyền – GA (Genetic Algorithm) trong game
Bước 1: Tạo quần thể ban đầu gồm 10 đơn vị (chim) với mạng nơron ngẫu
nhiên. Theo GA, là bước đầu tiên – Khởi tạo quần thể.
Bước 2: Cho phép tất cả các đơn vị chơi trò chơi đồng thời bằng cách sử dụng
mạng thần kinh của riêng họ. Có nghĩa là ở đây, chúng ta đặt các cá thể đã được
chọn ban đầu cùng sinh sống trong một môi trường có sẵn.
Bước 3: Đối với mỗi đơn vị tính toán chức năng thể dục của nó để đo chất
lượng của nó. Ở đây chức năng thể dục là một số liệu cụ thể để đánh giá xem
những con chim nào là chất lượng, những con chim nào sẽ kém hơn trong cùng
một quần thể đã cho. Để kết luận, chức năng thể dục là sự khác biệt giữa tổng
khoảng cách mà một con chim bao phủ (nghĩa là độ cao cũng như chiều ngang của
nó đối với các chướng ngại vật xung quanh) và khoảng cách hiện tại của nó đến
khoảng cách gần nhất (quãng đường đã đi được bao xa).
Bước 4: Khi tất cả các đơn vị chết, hãy đánh giá quần thể hiện tại cho đến quần
thể tiếp theo bằng cách sử dụng các toán tử di truyền. Nói chung, là đánh giá sự
thích nghi của mỗi cá thể. Cá thể thích nghi tốt nhất là con chim sống sót cuối cùng
và ngược lại.
Bước 5: Quay lại bước 2.
V. Fitness Function
Ở đây chúng ta sẽ đi tìm hiểu chi tiết hơn về chức năng Fitness Function -
nó là gì và cách xác định nó.
Vì chúng ta muốn phát triển một dân số bằng cách sử dụng các đơn vị tốt
nhất, chúng ta cần xác định một Fitness Function.
Nói chung, chức năng của Fitness Function là số liệu để đo lường chất lượng của
một đối tượng. Khi có thước đo chất lượng cho mỗi con chim, chúng ta có thể chọn
những con phù hợp nhất và sử dụng chúng để tái sản xuất quần thể tiếp theo.
Trong dự án này, con chim nào đi được khoảng cách càng xa càng tốt và khoảng
cách từ vị trí hiện tại của nó đến khe hở tiếp theo phải càng gần càng tốt . Vì vậy
theo cách đó, chúng ta đang tạo ra sự khác biệt giữa những con chim di chuyển
cùng một khoảng cách.
Fitness Function nhận vào tổng khoảng cách đi được và khoảng cách từ ví
trí hiện tại dến khe hở gần nhất, sau đó trả về số liệu được tính bởi công thức:
Kết luận: Fitness Function là sự khác biệt giữa khoảng cách mà một con
chim đi được và khoảng cách từ vị trí hiện tại của nó đến khe hở tiếp theo.
Sau khi thực hiện Fitness Function (bước 3), chúng ta đã có dữ liệu đánh giá của
các unit (cụ thể là tổng đường đi được – quảng đường cần để đến ‘điểm’ tiếp theo) để tiến
hành Replacement Strategy (bước 4). Replacement Strategy có các nguyên tắc đặc
trưng thứ giúp chúng ta phân biệt Genetic algorithm với các giải thuật khác. Đó là
các nguyên tắc tiến hoá như di truyền, đột biến, chọn lọc tự nhiên và lai xa.
1. Sắp xếp các unit trong quần thể dựa trên xếp hạng đánh giá fitness của
chúng.
2. Chọn 4 units tốt nhất và chuyển trực tiếp vào quần thể kế tiếp (di truyền
có chọn lọc).
3. Tạo 1-unit thông qua việc crossover 2 unit tốt nhất. (lai xa, đột biến).
4. Tạo 3 units là các sản phẩm của quá trình crossover 2 units ngẫu nhiên
trong bộ 4 units tốt nhất (lai xa, đột biến).
5. Tạo 2 units là bản sảo của 2 units ngẫu nhiên trong bộ 4 units tốt nhất (di
truyền có chọn lọc).
6. Áp dụng các đột biến ngẫu nhiên trên mỗi đời con nhằm tạo thêm một số
biến dị (đột biến).
A -449/5 K K K K*
B -458/6 L L L*
C -467/7 M M M*
D -475/8 N N N*
E -336/4 E E E E E*
G 404/1 G G G G G*
I -259/3 I I I I I*
J -241/2 J J J J J*
NOTE:
- A đến J: là units mới tạo đầu tiên.
- -123/5: -123 là đánh giá fitness, 5 là xếp hạng theo đánh giá fitness trong
quần thể.
- E, G, I, J: là 4 units tốt nhất theo đánh giá fitness trong quần thể.
- K : là unit được tạo ra thông qua việc crossover 2 unit tốt nhất (G và J)
- L, M, N: là các sản phẩm của quá trình crossover 2 units ngẫu nhiên trong
bộ 4 units tốt nhất.
- Ở bước 5, (G) và (J) 2 units là bản sảo của 2 units ngẫu nhiên trong bộ 4
units tốt nhất (trong trường hợp này là G và J).
- X*: là biến dị được tạo ra sau khi thực hiện một số đột biến trên X.