Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

Nhóm 2

Thành viên MSSV


MÔN HỌC: TRÍ TUỆ NHÂN TẠO
Lê Anh Đức 1410922
BÀI TẬP: Q – LEARNING
Võ Thanh Hải 1411084
Trần Hoàng Khôi Nguyên 1412571

BÀI TOÁN:

Số vị trí của banh: [(440 - 40)/40] x [800/8] = 1,000


Số vị trí của thanh: 4
→ Vector trạng thái: 1000x4 = 4,000
Tín hiệu điều khiển: left, right, unmoved

YÊU CẦU:

1. Thiết kế trò chơi hứng banh theo như mô hình bên trên.
2. Viết chương trình ứng dụng thuật toán Q-learning để máy tự học cách chơi.
BÀI LÀM

- Chương trình chính của bài toán được lưu trong tập tin mainGAME.m.
Ngoài ra, còn có hàm con được dùng để kiểm tra điểm tích lũy (fnc_checkscore.m).
Để biểu diễn mô hình banh và thanh, nhóm xây dựng 2 class trong các tập tin
Class_Ball.m và Class_Bar.m.
- Lưu đồ giải thuật
- Giải thích code
Dòng Chức năng
4–8 Cài đặt các thông số của trò chơi.
10 – 13 Cài đặt các thông số của banh và thanh cho trò chơi.
15 – 20 Khởi tạo các thông số cho thuật toán Q – learning.
22 – 24 Khởi tạo giá trị trạng thái của hệ ban đầu.
35 – 40 Tính toán giá trị Max, min của hàm Q với trạng thái hiện tại. Từ đó,
đưa ra ước lượng hành động phù hợp nhất (có thể chọn ngẫu nhiên
hành động nếu không tồn tại hành động phù hợp nhất).
46 – 49 Cập nhật ma trận Q theo công thức đã cho và cập nhật trạng thái
hiện tại.
51 – 66 Kiểm tra kết quả trò chơi và cập nhật các giá trị của vòng lặp.
68 – 75 Vẽ đồ họa của trò chơi.
79 – 86 Vẽ đồ thị biểu diễn kết quả của trò chơi qua từng vòng lặp.
Tính tỉ lệ bắt hụt banh trong quá trình máy tự chơi

- Kết quả
Sau 10,000 chu kì huấn luyện đầu tiên :

Trong 4000 chu kì


huấn luyện đầu, số
lần hứng hụt banh
cao hơn số lần
hứng trúng.
Sau đó, số lần
hứng trúng tăng
khá đều nhưng xen
kẻ đó vẫn còn
nhiều lần hứng hụt
banh.
Sau 100,000 chu kì huấn luyện đầu tiên :

Trong quá trình


huấn luyện, ngoại
trừ số ít chu kì đầu,
nhìn chung máy tự
học nhanh và ổn
định.
Tuy nhiên, tỉ lệ
hứng hụt banh vẫn
còn cao.

Khi kết quả học đã ổn định :

Sau khi hệ hoạt


động ổn định thì tỉ
lệ hứng hụt banh
của thanh trượt
giảm xuống đáng
kể.
- Cải tiến thuật toán : Để cải thiện kết quả của quá trình tự học theo thuật toán Q –
learning, nhóm đã bổ sung kinh nghiệm (heuristic) của con người cho máy là «Nếu
quả banh đang nằm trong tầm hoạt động của thanh trượt thì hành động của thanh
trượt sẽ là đứng yên.»

- Kết quả sau khi cải tiến


Sau 10,000 chu kì huấn luyện đầu tiên :

Trong suốt quá


trình huấn luyện,
ngoại trừ số ít chu
kì đầu và một vài
lần gián đoạn, nhìn
chung máy tự học
nhanh và ổn định.

Sau 100,000 chu kì huấn luyện đầu tiên :

Nhìn tổng thể thì


quá trình huấn
luyện ổn định và
đều, tỉ lệ bắt hụt
banh thấp.
Khi kết quả học đã ổn định :

Sau khi hoạt động


ổn định thì hệ
thống hầu như
không còn hứng
hụt banh.

- Nhận xét
 Thuật toán Q-learning hoạt động tốt trong trường hợp bài toán này.
 Tốc độ huấn luyện khá nhanh. Sau khoảng 100,000 vòng lặp (tương đương
100,000 trạng thái có thể trùng nhau của hệ), sai số giảm nhanh xuống dưới 4%
cho trường hợp tự học hoàn toàn và dưới 0.5% cho trường hợp tự học có gợi ý.
 Nhìn chung, việc huấn luyện máy tự học dựa vào kinh nghiệm chuyên gia
(heuristic) hiệu quả hơn so với việc để máy tự mày mò cách học.

You might also like