1. Trang chủ
  2. » Luận Văn - Báo Cáo

xây dựng thuật toán tìm đường đi tự động cho vật thể sử dụng machine learning ai trong unity

15 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Thuật Toán Tìm Đường Đi Tự Động Cho Vật Thể Sử Dụng Machine Learning AI Trong Unity
Tác giả Phan Sĩ Nguyên, Đào Tất Thắng
Người hướng dẫn Cô Nguyễn Thị Bích Thủy
Trường học Đại học Quốc Gia Hà Nội
Chuyên ngành Khoa Khoa học Dữ liệu
Thể loại báo cáo bài tập lớn
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 15
Dung lượng 2,59 MB

Nội dung

Khoa Khoa học Dữ liệuĐại học Quốc Gia Hà NộiTrường Đại học Khoa học Tự nhiênBÁO CÁO BÀI TẬP LỚNXây dựng thuật toán tìm đườngđi tự động cho vật thể sử dụngMachine Learning AI trong Unity.

Trang 1

Khoa Khoa học Dữ liệu Đại học Quốc Gia Hà Nội Trường Đại học Khoa học Tự nhiên

BÁO CÁO BÀI TẬP LỚN

Xây dựng thuật toán tìm đường

đi tự động cho vật thể sử dụng Machine Learning AI trong Unity

Trang 2

Lời cảm ơn

Sau khoảng thời gian nghiên cứu, dưới sự chỉ bảo tận tình của cô Nguyễn Thị Bích Thủy.Chúng em không chỉ hoàn thành projet mà còn học hỏi được rất nhiều kiến thức mới

Để được như vậy chúng em vô cùng biết ơn cô đã tận tình giảng dạy, hướng dẫn, truyền đạt những kiến thức, kinh nghiệm quý báu cho chúng em trong khoảng thời gian qua.Với lòng biết ơn chân thành,em xin gửi lời chúc sức khoẻ

và những gì tốt đẹp nhất đến các thầy cô trong khoa, trong nhà trường và đặc biệt là cô Nguyễn Thị Bích Thủy

Sinh viên thực hiện

Trang 3

Nhận xét của giảng viên

Chữ ký của giảng viên

Trang 4

Tổng quan

Trong thời đại công nghệ phát triển, việc sử dụng trí tuệ nhân tạo (AI) và machine learning (ML) đã trở thành xu hướng không thể phủ nhận trong lĩnh vực xây dựng trò chơi điện tử Trong môi trường phát triển nhanh chóng của các trò chơi 3D như Unity, việc tìm ra cách tối ưu để vật thể tự động di chuyển trong một không gian đa chiều đang trở thành mục tiêu quan trọng

Báo cáo này tập trung vào việc phát triển thuật toán tìm đường tự động cho vật thể trong môi trường Unity, bằng cách sử dụng kết hợp giữa machine learning

và trí tuệ nhân tạo Mục tiêu là tạo ra một cách tiếp cận linh hoạt và hiệu quả

để vật thể trong trò chơi có thể tự động di chuyển thông minh tránh các vật cản, tìm đường đi tối ưu từ điểm xuất phát đến điểm đích

Chúng ta sẽ khám phá quá trình xây dựng, huấn luyện và triển khai thuật toán này trong môi trường Unity Từ việc thu thập dữ liệu đầu vào, xây dựng mô hình machine learning phù hợp, đến việc tích hợp thuật toán vào trò chơi thực

tế, mọi khía cạnh sẽ được đề cập một cách chi tiết

Hy vọng rằng báo cáo này sẽ cung cấp cái nhìn rõ ràng và sâu sắc về tiềm năng của machine learning và trí tuệ nhân tạo khi áp dụng vào lĩnh vực xây dựng trò chơi, đặc biệt là trong việc tạo ra hệ thống định hướng tự động cho vật thể, giúp trò chơi trở nên sống động và hấp dẫn hơn

Trang 5

Mục lục

1 Khái niệm cơ bản về Machine Learning và AI 6

1.1 Machine Learning 6

1.2 AI (Artificial Intelligence) 6

2 Sử dụng Machine Learning trong Unity 6 3 Đặt vấn đề 7 4 Tiến hành 7 4.1 Mô hình học máy 7

4.2 Khởi tạo đối tượng 8

4.3 Xây dựng thuật toán 8

4.3.1 Xác định vị trí 8

4.3.2 Phương pháp 9

4.4 Thực nghiệm 11

5 Kết quả 12 5.1 File ONNX 12

5.2 Kết quả 13

7 Hướng phát triển trong tương lai 14

Trang 6

1 Khái niệm cơ bản về Machine Learning và AI

Trước khi đi sâu vào việc sử dụng ML và AI trong Unity, chúng ta cần hiểu rõ

về những khái niệm cơ bản của chúng

1.1 Machine Learning

Machine Learning là một lĩnh vực của trí tuệ nhân tạo mà ở đó máy tính được huấn luyện để học từ dữ liệu và tự động cải thiện qua thời gian Có ba loại chính của Machine Learning:

• Học có giám sát (Supervised Learning)

• Học không giám sát (Unsupervised Learning)

• Học tăng cường (Reinforcement Learning)

1.2 AI (Artificial Intelligence)

Artificial Intelligence là khái niệm tổng quát hơn, bao gồm cả Machine Learning

và các phương pháp khác như Expert Systems, Logic Systems, Neural Networks,

và nhiều hơn nữa

Trong báo cáo này, chúng ta sẽ tập trung vào việc sử dụng Machine Learning trong Unity

2 Sử dụng Machine Learning trong Unity

Trong phần này, chúng ta sẽ tìm hiểu cách tích hợp Machine Learning vào Unity

và tạo ra các ứng dụng, trò chơi sử dụng các kỹ thuật ML

Cài đặt Unity và ML-Agents: Đầu tiên, ta cần cài đặt Unity và ML-Agents ML-Agents là một plugin miễn phí cho Unity, giúp tạo ra các mô hình Machine Learning một cách dễ dàng

Tạo môi trường: Sau khi cài đặt, chúng ta sẽ bắt đầu bằng việc tạo một môi trường đơn giản trong Unity Đây có thể là một trò chơi nhỏ, một môi trường

mô phỏng, hoặc bất kỳ ứng dụng nào bạn muốn áp dụng ML vào

Huấn luyện mô hình: Tiếp theo, chúng ta sẽ sử dụng ML-Agents để huấn luyện một mô hình Ví dụ, trong trò chơi đua xe, chúng ta có thể huấn luyện một mô hình để tự động lái xe

Tích hợp mô hình vào Unity: Khi mô hình đã được huấn luyện, chúng ta

sẽ tích hợp nó vào Unity

Trang 7

3 Đặt vấn đề

Bài toán gồm 2 vật thể là Agent (màu xanh) và Goal (màu vàng)

Mục tiêu: Xây dựng mô hình sao cho Agent có thể tìm đường di chuyển đến Goal chính xác nhất trong thời gian ngắn nhất

4 Tiến hành

4.1 Mô hình học máy

Trang 8

Reinforcement learning là một phương pháp học máy mà mô hình học tập phải tương tác với môi trường để học thông qua việc thử và sai Máy tính "học" bằng cách thử các hành động và nhận phản hồi để biết hành động nào tốt và hành động nào không tốt, từ đó cải thiện ở các lần thử tiếp theo

Cụ thể ở trong bài toán của chúng ta, mô hình sẽ lặp đi lặp lại quá trình agent

đi tới goal, mỗi khi tới goal hoặc đi ra khỏi viền thì mô hình sẽ được reset

4.2 Khởi tạo đối tượng

Khởi tạo 2 đối tượng là Agent và Goal

4.3 Xây dựng thuật toán

4.3.1 Xác định vị trí

Xác định vị trí hai vật thể trong không gian dưới dạng vecto (x,y,z) Xong sau mỗi lần chạy, vị trí của hai vật thể sẽ được đặt lại về vị trí cũ cho lần chạy tiếp theo

Để tránh trường hợp bị overfitting cho 1 trường hợp duy nhất (do vị trí của goal

và agent là giống nhau), vị trí các vật thể được sẽ được set một cách random

Trang 9

4.3.2 Phương pháp

1 Loại huấn luyện (PPO): Chỉ định rằng thuật toán PPO sẽ được sử dụng

để huấn luyện mô hình PPO là một loại phương pháp gradient cho học tăng cường, giúp cân bằng giữa khám phá môi trường và khai thác thông tin đã biết

2 Tham số:

• Kích thước lô (Batch Size): Số mẫu trong mỗi lô cho các bản cập nhật

Trang 10

• Epsilon (0.2): Liên quan đến cơ chế cắt trong PPO giúp duy trì vùng tin cậy trong các bản cập nhật

• Lambda (0.99): Hệ số chiết khấu cho phần thưởng tương lai trong ước tính lợi thế

• Số Epoch (Num Epoch): Số lần đi qua bộ đệm huấn luyện

• Lịch trình tốc độ học (Linear), Lịch trình Beta (Constant), Lịch trình Epsilon (Linear): Các tham số này xác định cách các tham số tương ứng thay đổi theo thời gian trong quá trình huấn luyện

3 Cài đặt mạng Neuron:

• Chuẩn hóa (Normalize): Có chuẩn hóa đầu vào cho mạng hay không

• Đơn vị ẩn (Hidden Units - 128): Số nơ-ron trong mỗi lớp ẩn của mạng

• Số lớp (Num Layers - 2): Số lớp ẩn trong mạng

4 Số bước tối đa (Max Steps - 500000): Tổng số bước để huấn luyện mô hình

5 Thời gian (Time Horizon - 64): Số bước trước khi cắt đứt một tập; ảnh hưởng đến cách ước tính phần thưởng dài hạn

6 Tần suất tóm tắt (Summary Frequency - 10000): Tần suất tóm tắt và ghi nhật ký quá trình huấn luyện (Sau 10000, in ra tóm tắt 1 lần)

Trang 11

4.4 Thực nghiệm

Bước 1: Nhận đầu vào là 2 vecto tương trưng cho việc di chuyển theo chiều dọc hoặc chiều ngang, mỗi khi agent trong mô hình chạm vào goal thì reward

sẽ được đặt là 1, ngược lại khi agent đi ra khỏi mô hình thì reward sẽ được đặt

là -1

Quá trình được lặp đi lặp lại qua nhiều lần sử dụng 16 agents, kết hợp với học máy để điều chỉnh các hệ số của mạng neuron network thông qua reinforcement learning

Trang 12

5 Kết quả

5.1 File ONNX

Sau khi huấn luyện, các hệ số của mạng neuron được lưu trong 1 file onnx:

Đầu vào:

Chỉ có một đầu vào tên là với hình dạng bao gồm kích thước lô không xác định (n:), chiều cao (h:), chiều rộng (w:), và kênh (c:) được chỉ định bằng 6 (Có thể hiểu là 2 véc tơ đầu vào (x, y, z) tương ứng cho di chuyển ngang và dọc)

Đầu ra:

Mô hình có năm đầu ra, bao gồm version_number, memory_size, continu-ous_actions, continuous_action_output_shape, và deterministic_continucontinu-ous_actions, mỗi đầu ra với hình dạng tương ứng của nó giống như đầu vào Các đầu ra này cho thấy mô hình có thể thực hiện các nhiệm vụ hoặc dự đoán khác nhau

Lớp:

Mô hình NN có 17 lớp sử dụng 177,668 trọng số Các lớp này bao gồm các lớp Dense (các lớp kết nối đầy đủ) và các hàm kích hoạt như Sigmoid

Hằng số:

Có 7 hằng số sử dụng 8 trọng số, có thể được sử dụng cho các hoạt động như chuẩn hóa lô hoặc các tham số tĩnh khác trong các phép tính của mô hình

Trang 13

5.2 Kết quả

Quá trình này, được gọi là "MoveToGoal," hiển thị số bước cùng với thời gian

đã trôi qua, phần thưởng trung bình, và độ lệch chuẩn (Std) của phần thưởng

• Bước 50000: Mất 73.595 giây để đạt đến điểm này Phần thưởng trung bình khá thấp, chỉ 0.200, và độ lệch chuẩn của phần thưởng cao, ở mức 0.946 Điều này cho thấy rằng thuật toán có thể đang trong quá trình học ban đầu và chưa tối ưu hóa tốt

• Bước 100000: Thời gian trôi qua tăng lên 131.135 giây Tuy nhiên, phần thưởng trung bình đã tăng đáng kể lên 0.997, và độ lệch chuẩn của phần thưởng giảm xuống còn 0.074 Điều này chỉ ra rằng thuật toán đã học được cách tối ưu hóa hành vi tìm đường tới mục tiêu để đạt được phần thưởng cao hơn

• Bước 150000: Thời gian là 193.541 giây với phần thưởng trung bình tiếp tục cải thiện lên 0.998 và độ lệch chuẩn giảm nhẹ xuống 0.068 Sự cải thiện này cho thấy thuật toán có khả năng thích nghi và học hỏi tốt, dẫn đến hiệu suất ổn định và dự đoán được

Nhìn chung, kết quả này phản ánh một quá trình huấn luyện thành công với

sự cải thiện rõ rệt qua từng bước thời gian Phần thưởng trung bình cao và độ lệch chuẩn thấp ở các bước sau cùng cho thấy thuật toán đã học cách đạt được mục tiêu một cách hiệu quả và với ít biến động hơn trong các kết quả

6 Kết luận

Trong quá trình nghiên cứu và thực hiện dự án, chúng tôi đã áp dụng các phương pháp machine learning, đặc biệt là reinforcement learning, vào việc xây dựng thuật toán tìm đường đi tự động cho vật thể trong môi trường Unity Qua quá trình này, chúng tôi đã tiến hành các bước từ khảo sát vấn đề, xây dựng môi trường, huấn luyện mô hình, đến tích hợp và thử nghiệm

Kết quả của dự án đã cho thấy tiềm năng của việc kết hợp machine learning

Trang 14

7 Hướng phát triển trong tương lai

Đối với hướng phát triển trong tương lai, chúng tôi đề xuất tiếp tục nghiên cứu

và áp dụng các kỹ thuật mới, cải thiện thuật toán và mô hình, cũng như mở rộng phạm vi ứng dụng của dự án Chúng ta có thể áp dụng mô hình phần thưởng vào thuật toán tìm đường đi cho máy Cụ thể là ta sẽ set các checkpoint sao cho oto đi càng đúng đường thì phần thưởng từ check point càng nhiều Ngược lại nếu oto đi sai hoặc ngược đường thì sẽ bị trừ điểm và reset vị trí

Tuy nhiên, khi thực hiện việc huấn luyện thì mô hình hoạt động chưa hiệu quả, oto vẫn còn đi ngược đường hoặc không tìm được hướng đi phù hợp Kể cả khi

áp dụng thêm thị giác máy tính (hình dưới) để oto nhận diện được checkpoint

và các khu vực giới hạn nhưng oto vẫn không đi theo đúng hướng và cần phải được nghiên cứu thêm

Trang 15

8 Tài liệu tham khảo

1 Unity ML-Agents GitHub Releases: [https://github.com/Unity-Technologies/ml-agents/releases/tag/release_10]

2 Unity ML-Agents Forum: [https://forum.unity.com/forums/ml-agents.453/]

3 Unity Code Monkey Website: [https://unitycodemonkey.com/]

Ngày đăng: 25/05/2024, 17:30

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w