Làm quen với AI
Ý tưởng:
Tạo trò chơi chọn đồ ăn cho chó sử dụng model AI thay thế cho nút điều khiển.
Ban đầu mình tạo 1 file scratch cho trò chơi chưa áp dụng mô hình AI vào để chạy thử. Nếu nhấn space thì con chó sẽ đứng yên, nhấn dấu mũi tên lên thì con chó sẽ di chuyển đến phía Cake, mũi tên sang phải sẽ tới Cheepsy Puff, mũi tên xuống dưới sẽ đến Donut.
Sau đó mình tạo 1 mô hình AI trên Teachable machine dùng cử chỉ của bàn tay (giống trò oẳn tù tì): nếu ra kéo thì con chó sẽ chọn Cake, ra đấm thì chọn Cheepsy Puff, ra lá thì chọn Donut.
Sau khi nhúng model AI vào file scratch thì trò chơi chạy khá ổn.
Ý tưởng:
Tạo Game điều khiển xe tránh chướng ngại vật và sử dụng mô hình AI thay cho các nút điều khiển.
Đây là video demo:
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
Đây là mô hình AI mình đã tự huấn luyện bằng Teachable Machine.
Mình sẽ trình bày theo 4 ý về phần thực hành này!
1.Hiện trạng của mô hình huấn luyện lúc đầu:
Số lượng dữ liệu: thu thử ~ 205 ảnh / trạng thái
Khả năng dự đoán như sau:
✅ Nhìn thằng: Ổn định khi "Cười".
Uầy! idea hay đấy em! @MinhDT_MT_RV
Em tag cả topic vào để sau dễ tìm kiếm nhé!