2.2. Reinforcement Learning và thư viện ML-Agents
2.2.2. Thư viện ML-Agents của Unity
18
Hình 2.4. Mơi trường huấn luyện AI chơi bóng đá bằng thư viện ML-Agents – Nguồn: [18]
ML-Agents là một thư viện máy học mã nguồn mở sử dụng môi trường game trong Unity làm môi trường để thực hiện huấn luyện. ML-Agents cung cấp và triển khai một số thuật tốn ML hiện đại nhất thơng qua thư việc PyTorch của Python.
ML-Agents bao gồm 5 thành phần bậc cao:
− Môi trường học (Learning environment): bao gồm scene hiện tại và mọi đối tượng trong nó. Mơi trường sẽ chứa các agent và các bộ hành vi (behaviour). Agent sẽ được gán cho một đối tượng trong Unity, quan sát đánh giá tình trạng thơng qua đối tượng và gán điểm thưởng hay phạt dựa trên hành động đề ra trong state hiện tại. Mỗi agent truyền các giá trị quan sát vả điểm đến behaviour và nhận về từ behaviour hành động cho state tiếp theo. Ngồi ra, behaviour cịn
19
quyết định một số yếu tố của agent như độ phức tạp của hành động có thể đưa ra hay số lượng biến quan sát.
− Python API: không thuộc môi trường học mà được đóng gói trong thư viện Python mlagents_env.
− External Communacator: phương thức giao tiếp giữa môi trường học và API, nằm trong môi trường.
− Python Trainer: bao gồm các thuật toán máy học dùng trong việc huấn luyện agent.
− Gym wrapper (khơng được biểu diễn trong biểu đồ): Bao đóng cung cấp bởi OpenAI, bao gồm một số thuật toán mã nguồn mở phức tạp hỗ trợ cho việc huấn luyện.
20
Hình 2.5. Biểu đồ quan hệ giữa các thành phần trong ML-Agents
ML-Agents cho phép sử dụng nhiều thuật toán máy học khác nhau để thực hiện huấn luyện AI, trong đó có 2 thuật tốn RL, đó là Proximal Policy Optimization (PPO)[13] và Soft Actor Critic (SAC).[14]
PPO là một phương pháp on-policy, cố gắng tối ưu hoá và cải thiện policy hiện tại. Điểm mạnh của PPO nằm ở việc nó thừa kế tính hiệu quả dữ liệu và hiệu suất đáng tin cậy từ thuật toán Trust Region Policy Optimization (TRPO) trong khi chỉ sửng dụng thuật tốn tối ưu bậc một thay vì bậc hai.[15]
Ngược lại với PPO, SAC là một phương pháp off-policy, có nghĩa nó khơng phụ thuộc vào policy của agent hiện tại, mà có thể học hỏi từ những kinh nghiệm thu thập được
21
bất cứ lúc nào trong quá khứ. Khi kinh nghiệm được thu thập, chúng được đặt trong một bộ đệm phát lại kinh nghiệm và được rút ra ngẫu nhiên trong quá trình huấn luyện. Nhờ vậy, thuật toán SAC tiết kiệm dữ liệu hơn cả PPO, Tuy nhiên, SAC lại là một thuận tốn cho phép có sự hỗn loạn và tự khám phá của AI. Do đó, SAC sẽ có hiệu quả khi được sử dụng tron những môi trường mở. [16]
Tơi chọn thuật tốn PPO để tiến hành huấn luyện AI bởi sự ổn định hơn so với SAC khi đặt trong hồn cảnh mơi trường đã được định sẵn và khơng có q nhiều khoảng trống cho sự biến thiên.