2. Mô hình AI phân biệt được "sang trái", "sang phải"
Tiếp theo là triển khai mô hình AI. Về cách làm thì ta bám theo hướng dẫn như phần trải nghiệm trong bài học. Tuy nhiên, có điều lưu ý ở đây là triển khai với 3 trạng thái:
Mô hình đầu tiên không bắt ổn định ở trường hợp "left". Do đó, mình đã thu thêm những dữ liệu "left" khiến cho máy không đoán được.
Lưu ý, để đảm bảo việc cân bằng cho dữ liệu (420 samples / trạng thái), mình cũng đã thu đồng thờ cả "right" (dựa vào phần Preview, có thể check được một vài trường hợp khi chỉ sang phải, nhưng mô hình mập mờ không phân biệt được) và "normal"
Toàn bộ về quá trình thu thêm dữ liệu để cải thiện được thể hiện trong video này:
Các bước thực hiện từ đầu đến cuối.
1 .Game đua xe được tạo bằng SCRATCH
Trước hết hãy cùng tạo ra Game với ý tưởng về tính năng như sau:
Các chướng ngại vật sẽ từ trên xuống dưới màn hình, với vị trí xuất hiện là ngẫu nhiên.
Xe của chúng ta có thể điều khiển sang trái, sang phải theo các nút ⬅️, ➡️ trên bàn phím.
Nếu xe tránh được chướng ngại vật thì điểm số (score) sẽ được cộng 1.
Nếu có sự va chạm giữa xe với chướng ngại vật thì dừng game.
Để tăng phần trải nghiệm, thêm các hiệu ứng về âm thanh xe chạy, tiếng còi xe, âm thanh đạt các mốc điểm, trang trí đường đi, xe có mặt động, ....
(Tuỳ chọn) Để thêm phần thách thức, cứ mỗi 5 điểm thì tốc độ của chướng ngại vật sẽ tăng lên để dễ gây va chạm (gây khó).
Sau khi đã quyết định về những tính như trên, mình đã vào đây https://machinelearningforkids.co.uk/scratch/, tiến hành 4 gạch đầu dòng đầu tiên để xem tính khả thi.
Sau đó, hoàn thiện và tinh chỉnh thêm 2 gạch đầu dòng cuối.
Video chạy game với điều khiển trực tiếp từ bàn phím:
Code phần SCRATCH có thể lấy ở đây: https://drive.google.com/file/d/10oj9GrVPpK1ef5Kvh8cLCY1o_7gbPjBB/view?usp=sharing
2. Mô hình AI phân biệt được "sang trái", "sang phải"
Tiếp theo là triển khai mô hình AI. Về cách làm thì ta bám theo hướng dẫn như phần trải nghiệm trong bài học. Tuy nhiên, có điều lưu ý ở đây là triển khai với 3 trạng thái:
Sang phải (right)
Sang trái (left)
Và không làm gì (normal)
Mình dùng tay làm chỉ hướng trong dữ liệu. Chúng ta có thể dùng mảnh giấy vẽ hình mũi tên để làm chỉ hướng như trong tham khảo ở đây: https://experiments.withgoogle.com/teachable-snake
Sau đó, tiến hành các bước tạo ra mô hình AI tốt nhất:
Thu dữ liệu > Huấn luyện > Kiểm tra > Cải thiện mô hình
Video demo (mô hình đã được cải thiện):
Mô hình AI có thể lấy ở đây: https://teachablemachine.withgoogle.com/models/6bWnnwMN7/
3.Những khó khăn và cải thiện.
Mô hình đầu tiên không bắt ổn định ở trường hợp "left". Do đó, mình đã thu thêm những dữ liệu "left" khiến cho máy không đoán được.
Lưu ý, để đảm bảo việc cân bằng cho dữ liệu (420 samples / trạng thái), mình cũng đã thu đồng thờ cả "right" (dựa vào phần Preview, có thể check được một vài trường hợp khi chỉ sang phải, nhưng mô hình mập mờ không phân biệt được) và "normal"
Toàn bộ về quá trình thu thêm dữ liệu để cải thiện được thể hiện trong video này:
Đọc thêm về phần ảnh hưởng của mất cân bằng dữ liệu trong Machine learning và một số phương pháp xử lí: https://www.isi-web.org/sites/default/files/2024-02/Handling-Data-Imbalance-in-Machine-Learning.pdf