Tải bản đầy đủ (.pdf) (15 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.59 MB, 15 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

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ên

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

Xây dựng thuật tốn tìm đườngđi tự động cho vật thể sử dụngMachine Learning AI trong Unity

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="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ỉ hồn thành projet mà cịn học hỏi được rấtnhiề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ướngdẫn, truyền đạt những kiến thức, kinh nghiệm quý báu cho chúng em trongkhoả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à đặcbiệt là cô Nguyễn Thị Bích Thủy.

Sinh viên thực hiện

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

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

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="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ĩnhvực xây dựng trị chơi điện tử. Trong mơi trường phát triển nhanh chóng củacác trị chơi 3D như Unity, việc tìm ra cách tối ưu để vật thể tự động di chuyểntrong 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ậtthể trong mơi trường Unity, bằng cách sử dụng kết hợp giữa machine learningvà 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ậtcả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 tốnnà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 tốn vào trị chơi thựctế, 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ăngcủa machine learning và trí tuệ nhân tạo khi áp dụng vào lĩnh vực xây dựngtrò 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.

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

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ả 125.1 File ONNX . . . . 12

5.2 Kết quả . . . . 13

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

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

1Khá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.1Machine Learning

Machine Learning là một lĩnh vực của trí tuệ nhân tạo mà ở đó máy tính đượchuấn luyện để học từ dữ liệu và tự động cải thiện qua thời gian. Có ba loạichí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.2AI (Artificial Intelligence)

Artificial Intelligence là khái niệm tổng quát hơn, bao gồm cả Machine Learningvà 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 Learningtrong Unity.

2Sử 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 Unityvà 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 MachineLearning 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ơitrường đơn giản trong Unity. Đây có thể là một trị chơi nhỏ, một mơi trườngmơ 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ấnluyện một mơ hình. Ví dụ, trong trị chơi đua xe, chúng ta có thể huấn luyệnmộ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 tasẽ tích hợp nó vào Unity.

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="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 đếnGoal chính xác nhất trong thời gian ngắn nhất.

4Tiến hành

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

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

Reinforcement learning là một phương pháp học máy mà mơ hình học tậpphả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 q 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.2Khởi tạo đối tượng

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

4.3Xây dựng thuật tố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 saumỗ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ếptheo.

Để tránh trường hợp bị overfitting cho 1 trường hợp duy nhất (do vị trí của goalvà agent là giống nhau), vị trí các vật thể được sẽ được set một cách random.

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="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ăngcườ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

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

• Epsilon (0.2): Liên quan đến cơ chế cắt trong PPO giúp duy trì vùngtin 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 ướctí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ịchtrì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

• 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; ảnhhưở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ý q trình huấn luyện. (Sau 10000, in ra tóm tắt 1 lần).

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

4.4Thự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ềudọc hoặc chiều ngang, mỗi khi agent trong mơ hình chạm vào goal thì rewardsẽ được đặt là 1, ngược lại khi agent đi ra khỏi mơ hình thì reward sẽ được đặtlà -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ọcmáy để điều chỉnh các hệ số của mạng neuron network thông qua reinforcementlearning.

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

Đầu ra:

Mơ hình có năm đầu ra, bao gồm version_number, memory_size, ous_actions, continuous_action_output_shape, và deterministic_continuous_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àycho thấy mơ hình có thể thực hiện các nhiệm vụ hoặc dự đốn khác nhau.

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

5.2Kế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 trungbình khá thấp, chỉ 0.200, và độ lệch chuẩn của phần thưởng cao, ở mức0.946. Điều này cho thấy rằng thuật tốn có thể đang trong quá trình họcban đầ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ầnthưởng trung bình đã tăng đáng kể lên 0.997, và độ lệch chuẩn của phầnthưởng giảm xuống còn 0.074. Điều này chỉ ra rằng thuật tố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ầnthưở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ếptục cải thiện lên 0.998 và độ lệch chuẩn giảm nhẹ xuống 0.068. Sự cảithiện này cho thấy thuật tố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ự đố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ớisự 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 đượcmụ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ả.

6Kế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ươngpháp machine learning, đặc biệt là reinforcement learning, vào việc xây dựngthuật toán tìm đường đi tự động cho vật thể trong mơi trường Unity. Qua qtrì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ôitrườ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

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

7Hướ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ứuvà á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ầnthưởng vào thuật tốn tìm đường đi cho máy. Cụ thể là ta sẽ set các checkpointsao 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 checkpointvà 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.

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

8Tài liệu tham khảo

1. Unity ML-Agents GitHub Releases: agents/releases/tag/release_10]

[ Unity ML-Agents Forum: [ Unity Code Monkey Website: [

×