Các vấn đề của cách tiếp cận trực tiếp có thể được làm giảm nhẹ nếu ta giả thiết một cấu trúc nào đó trong bài toán và bằng cách nào đó cho phép các mẫu thu đượctừ một chiến lược này c
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO ĐỒ ÁN 1
Đề tài: Huấn luyện AI chơi game Ping Pong
Giáo viên hướng dẫn: Huỳnh Tuấn Anh
Nhóm sinh viên thực hiện:
● Nguyễn Lương Kiên – 18520955
● Hoàng Thế Kỷ - 18520964
Trang 21.3 Unity Machine Learning Agents Toolkit (ML-Agents) 14
2.1.1 Cài đặt những Component cần thiết (Setup) 19
Trang 31 LÝ THUYẾT
1.1 Reinforcement Learning
1.1.1 Định nghĩa
Trong ngành khoa học máy tính, học tăng cường (tiếng Anh: reinforcement
learning) là một lĩnh vực con của học máy, nghiên cứu cách thức một agent trong một môi trường nên chọn thực hiện các hành động nào để cực đại hóa một khoản thưởng (reward) nào đó về lâu dài Các thuật toán học tăng cường cố gắng tìm một chiến lược ánh xạ các trạng thái của thế giới tới các hành động mà agent nên chọn trong các trạng thái đó
Môi trường thường được biểu diễn dưới dạng một quá trình quyết định Markov trạng thái hữu hạn (Markov decision process - MDP), và các thuật toán học tăng cường cho ngữ cảnh này có liên quan nhiều đến các kỹ thuật quy hoạch động Các xác suất chuyển trạng thái và các xác suất thu lợi trong MDP thường là ngẫu nhiên nhưng lại tĩnh trong quá trình của bài toán (stationary over the course of the
problem)
Khác với học có giám sát, trong học tăng cường không có các cặp dữ liệu vào/kết quả đúng, các hành động gần tối ưu cũng không được đánh giá đúng sai một cách tường minh Hơn nữa, ở đây hoạt động trực tuyến (on-line performance) được quantâm, trong đó có việc tìm kiếm một sự cân bằng giữa khám phá (lãnh thổ chưa lập bản đồ) và khai thác (tri thức hiện có) Trong học tăng cường, sự được và mất giữa khám phá và khai thác đã được nghiên cứu chủ yếu qua bài toán multi-armed bandit
Một cách hình thức, mô hình học tăng cường bao gồm:
● S: tập các trạng thái của môi trường
● A: tập các hành động
● R: tập các khoản "thưởng" với giá trị vô hướng
Trang 4Tại mỗi thời điểm t, agent thấy được trạng thái của nó là s t�Svà tập các hành động có thể A s( )t Nó chọn một hành động a� ( )A s t và nhận được từ môi trường trạng thái mới s t1và một khoản thưởng r t1 Dựa trên các tương tác này, agent học tăng cường phải phát triển một chiến lược : S �Acó tác dụng cực đại hóa lượng
1.1.2 Algorithms
Sau khi ta đã định nghĩa được một hàm trả về thích hợp cần được cực đại hóa, ta cần chỉ rõ thuật toán sẽ được sử dụng để tìm chiến lược thu được kết quả trả về caonhất Có hai cách tiếp cận chính, cách tiếp cận hàm giá trị và cách tiếp cận trực tiếp
Cách tiếp cận trực tiếp dẫn đến hai bước sau đây:
1 Với mỗi chiến lược có thể, lấy mẫu các kết quả trong khi thực hiện chiến lược đó
2 Chọn chiến lược có kết quả trả về kỳ vọng cao nhất
Một vấn đề với cách tiếp cận này là số chiến lược có thể cực kỳ lớn, hoặc thậm chí
vô hạn Một vấn đề khác là các giá trị trả về có thể ngẫu nhiên, khi đó sẽ cần đến một lượng lớn các mẫu để có thể ước lượng chính xác kết quả trả về của mỗi chiến lược Cách tiếp cận trực tiếp là cơ sở cho các thuật toán dùng trong ngành Robotic tiến hóa
Trang 5Các vấn đề của cách tiếp cận trực tiếp có thể được làm giảm nhẹ nếu ta giả thiết một cấu trúc nào đó trong bài toán và bằng cách nào đó cho phép các mẫu thu được
từ một chiến lược này có thể được ảnh hưởng tới các ước lượng cho một chiến lược khác Cách tiếp cận hàm giá trị thực hiện điều này bằng cách chỉ giữ một tập các ước lượng về các giá trị trả về của một chiến lược π (thường là chiến lược hiện tại hoặc chiến lược tối ưu) Trong các cách tiếp cận như vậy, người ta cố gắng ước lượng một trong hai hàm: giá trị trả về nếu xuất phát từ trạng thái s và theo chiến lược π như sau,
[ , ( ) | ]
V s E R s hoặc giá trị trả về kỳ vọng khi thực hiện hành động a trong trạng thái s và theo chiến lược π nghĩa là,
] , ) [ ,
Q s a E R sNếu có sẵn chiến lược tối ưu Q, ta luôn có thể chọn các hành động tối ưu đơn giản bằng cách tại mỗi trạng thái chọn hành động với giá trị cao nhất Để thực hiện được điều này với V, ta phải có một mô hình môi trường, dưới dạng các xác suất P(s'|s,a), cho phép tính Q bằng công thức
hoặc ta có thể sử dụng các phương pháp Actor-Critic, trong đó mô hình được chia làm hai phần: phần critic giữ ước lượng giá trị trạng thái V, và phần actor có trách nhiệm chọn các hành động thích hợp với mỗi trạng thái
Cho trước một chiến lược cố định π, việc ước lượng E[R|.] đối với γ=0 là đơn giản,
do ta chỉ phải lấy trung bình của các khoản thưởng trực tiếp Cách dễ thấy nhất để thực hiện việc này với γ>0 là lấy trung bình của tổng trả về sau mỗi trạng thái Tuy nhiên, kiểu lấy mẫu Monte Carlo đòi hỏi MPD phải kết thúc
Do đó, nói chung việc ước lượng 0 không dễ Thực ra, việc này lại khá đơn giản khi ta nhận ra rằng giá trị kỳ vọng của R tạo nên một phương trình Bellman đệquy:
Trang 6Bằng cách thay thế các giá trị kỳ vọng trên bằng các ước lượng của ta, V, và thực hiện thuật toán gradient descent với hàm chi phí lỗi bình phương, ta thu được TD(0) - thuật toán học temporal difference learning Trong trường hợp đơn giản nhất, tập hợp các trạng thái và hành động đều là rời rạc và ta giữ các ước lượng dạng bản cho mỗi trạng thái Các phương pháp cặp đôi trạng thái-hành động là SARSA và Q-Learning Tất cả các phương pháp đều có các mở rộng mà nhờ đó một kiến trúc xấp xỉ nào đó được sử dụng, mặc dù trong một số trường hợp, sự hội
tụ không được đảm bảo sẽ xảy ra Các ước lượng thường được cập nhật bởi một dạng gradient descent, tuy rằng gần đây đã có các phương pháp bình phương tối thiểu cho các trường hợp xấp xỉ tuyến tính
Các phương pháp trên không những đều hội tụ về các ước lượng đúng cho một chiến lược cố định, và còn có thể được dùng để tìm chiến lược tối ưu Việc này thường được thực hiện bằng cách theo một chiến lược π được rút ra từ các ước lượng hiện tại, nghĩa là bằng cách hầu như luôn luôn chọn hành động với lượng giácao nhất, và thỉnh thoảng chọn các hành động ngẫu nhiên để khám phá không gian.Các chứng minh cho sự hội tụ tới chiến lược tối ưu cũng tồn tại đối với các thuật toán nói đến ở trên với một số điều kiện nhất định Tuy nhiên tất cả các chứng minh này chỉ chứng tỏ sự hội tụ tiệm cận, và về lý thuyết người ta còn biết rất ít về hành vi của các thuật toán học tăng cường trong trường hợp mẫu nhỏ, ngoại trừ trong các điều kiện tham số (setting) rất hạn chế
Một phương pháp khác để tìm chiến lược tối ưu là tìm thẳng trong không gian các chiến lược Phương pháp không gian chiến lược định nghĩa chiến lược là một hàm
có tham số π(s,θ) với các tham số θ Thông thường, một phương pháp leo đồi (gradient method) được áp dụng để điều chỉnh các tham số Tuy nhiên, việc áp dụng các phương pháp leo đồi không đơn giản, do không có thông tin nào về độ dốc (gradient information) được giả thiết Thay vào đó, chính độ dốc phải được ước lượng từ các mẫu nhiều nhiễu (noisy samples) của kết quả trả về Do điều này làm tăng mạnh chi phí tính toán, nên việc sử dụng một phương pháp leo đồi mạnh hơn là leo đồi độ dốc cao nhất(steepest gradient descent) có thể có lợi hơn Các phương pháp leo đồi dùng cho không gian chiến lược đã được sự quan tâm lớn trong 5 năm trở lại đây và giờ đã đạt đến giai đoạn tương đối chính muồi, nhưng lĩnh vực nghiên cứu này vẫn còn hoạt động Có nhiều cách tiếp cận khác, chẳng
Trang 7hạn luyện thép (simulated annealing), có thể dùng để khám phá không gian chiến lược Các nghiên cứu về các kỹ thuật này ít phát triển hơn.
1.2 RL — Proximal Policy Optimization (PPO)
1.2.1 Policy Optimization
1.2.1.1 Policy Gradient Methods
Các phương pháp chính sách gradient hoạt động bằng cách tính toán một công cụ ước tính của chính sách gradient và kết nối với một thuật toán gradient đi lên ngẫu nhiên Công cụ ước tính gradient được sử dụng phổ biến nhất có dạng
(1)
trong đó πθ là chính sách ngẫu nhiên và Ât là một công cụ ước lượng của hàm lợi thế tại timestep t Ở đây, kỳ vọng Êt [ ] chỉ ra giá trị trung bình thực nghiệm trên một lô mẫu hữu hạn, trong thuật toán thay thế giữa lấy mẫu và tối ưu hóa Các triểnkhai sử dụng phần mềm phân biệt tự động hoạt động bằng cách xây dựng một hàm mục tiêu có gradient là công cụ ước lượng chính sách; công cụ ước lượng g^ thu được bằng cách phân biệt mục tiêu
(2)
Mặc dù việc thực hiện nhiều bước tối ưu hóa với sự mất mát này L^PG bằng cách
sử dụng cùng một quỹ đạo là điều hấp dẫn, nhưng làm như vậy là không hợp lý và theo kinh nghiệm, nó thường dẫn đến các bản cập nhật chính sách lớn mang tính hủy diệt
Trang 81.2.1.2 Trust Region Methods
Trong TRPO [Sch + 15b], một hàm mục tiêu (mục tiêu "thay thế") được tối đa hóa tùy thuộc vào hạn chế về kích thước của bản cập nhật chính sách Đặc biệt,
(3)
(4)
Ở đây, θold là vectơ của các tham số chính sách trước khi cập nhật Vấn đề này có thể được giải quyết gần đúng một cách hiệu quả bằng cách sử dụng thuật toán gradient liên hợp, sau khi thực hiện xấp xỉ tuyến tính đối với mục tiêu và xấp xỉ bậc hai đối với giới hạn
Lý thuyết biện minh cho TRPO thực sự đề xuất sử dụng một hình phạt thay vì một ràng buộc, tức là giải quyết vấn đề tối ưu hóa không bị giới hạn
(5)
đối với một số hệ số β Điều này xuất phát từ thực tế là một mục tiêu thay thế nhất định (tính toán KL tối đa qua các trạng thái thay vì giá trị trung bình) tạo thành mộtgiới hạn thấp hơn (tức là một giới hạn bi quan) đối với hiệu suất của chính sách π TRPO sử dụng một ràng buộc cứng hơn là một hình phạt bởi vì thật khó để chọn một giá trị duy nhất của nó hoạt động tốt trong các vấn đề khác nhau — hoặc thậm chí trong một vấn đề duy nhất, trong đó các đặc tính thay đổi trong quá trình học
Do đó, để đạt được mục tiêu của chúng tôi về một thuật toán bậc nhất mô phỏng sựcải tiến đơn điệu của TRPO, các thử nghiệm cho thấy rằng không đủ nếu chỉ đơn giản chọn một hệ số phạt cố định và tối ưu hóa Phương trình đối tượng bị phạt (5) với SGD; sửa đổi bổ sung được yêu cầu
Trang 91.2.2 Clipped Surrogate Objective
Gọi rt (θ) biểu thị tỷ lệ xác suất rt (θ) = πθ (at | st) / πθold (at | st), do đó r (θold) =
1 TRPO tối đa hóa mục tiêu "thay thế"
(6)
Chỉ số CPI trên đề cập đến sự lặp lại chính sách thận trọng [KL02], trong đó mục tiêu này được đặt ra theo tỷ lệ Nếu không có một hạn chế, việc tối đa hóa LCPI sẽ dẫn đến cập nhật chính sách quá lớn; do đó, bây giờ chúng tôi xem xét cách sửa đổi mục tiêu, để trừng phạt những thay đổi đối với chính sách làm thay đổi rt (θ) khỏi 1
Mục tiêu chính mà chúng ta đề xuất là:
(7)
trong đó epsilon là một siêu tham số, giả sử, e = 0,2 Động lực cho mục tiêu này như sau Số hạng đầu tiên bên trong giá trị tối thiểu là L ^ CPI Số hạng thứ hai, clip (rt (θ), 1 − e, 1 + e) Ât, sửa đổi mục tiêu thay thế bằng cách cắt bớt tỷ lệ xác suất, loại bỏ động cơ di chuyển rt ra ngoài khoảng [1 − e, 1 + e ] Cuối cùng, chúngtôi lấy mức tối thiểu của mục tiêu bị cắt bớt và không bị lật, vì vậy mục tiêu cuối cùng là giới hạn thấp hơn (tức là giới hạn bi quan) đối với mục tiêu không bị lật Với sơ đồ này, chúng tôi chỉ bỏ qua sự thay đổi trong tỷ lệ xác suất khi nó có thể làm cho mục tiêu cải thiện và chúng tôi bao gồm nó khi nó làm cho mục tiêu tồi tệ hơn Lưu ý rằng L ^ CLIP (θ) = L ^ CPI (θ) cho thứ tự đầu tiên xung quanh θold (tức là, trong đó = 1), tuy nhiên, chúng trở nên khác nhau khi θ di chuyển khỏi θold Hình 1 vẽ một số hạng duy nhất (tức là một số lẻ) trong L ^ CLIP; lưu ý rằng
tỷ lệ xác suất r được cắt bớt ở 1 − e hoặc 1 + e tùy thuộc vào lợi thế là tích cực hay tiêu cực
Trang 10Hình 1: Các đồ thị hiển thị một số hạng (tức là một bước thời gian) của hàm thay thế L ^ CLIP như một hàm của tỷ lệ xác suất, cho các lợi thế tích cực (trái) và lợi thế tiêu cực (phải) Vòng tròn màu đỏ trên mỗi ô hiển thị điểm bắt đầu cho việc tối
ưu hóa, tức là r = 1 Lưu ý rằng L ^ CLIP là tổng của nhiều thuật ngữ trong số này
Hình 2 cung cấp một nguồn trực giác khác về mục tiêu thay thế L ^ CLIP Nó cho thấy một số mục tiêu khác nhau như thế nào khi chúng tôi nội suy dọc theo hướng cập nhật chính sách, thu được bằng cách tối ưu hóa chính sách gần (thuật toán mà chúng tôi sẽ giới thiệu ngay sau đây) trong một vấn đề kiểm soát liên tục Chúng ta
có thể thấy rằng L ^ CLIP là một giới hạn thấp hơn đối với L ^ CPI, với một hình phạt cho việc cập nhật chính sách quá lớn
Trang 11Hình 3: Kiểm tra các mục tiêu, khi chúng tôi nội suy giữa tham số chính sách ban đầu θold và tham số dpolicy cập nhật, mà chúng tôi tính toán sau một lần lặp lại PPO Chính sách được cập nhật có sự phân kỳ KL khoảng 0,02 so với chính sách ban đầu và đây là điểm mà tại đó L ^ CLIP là cực đại Biểu đồ này tương ứng với bản cập nhật chính sách đầu tiên về vấn đề Hopper-v1.
1.2.3 Adaptive KL Penalty Coefficient
Một cách tiếp cận khác, có thể được sử dụng để thay thế cho mục tiêu thay thế bị cắt bớt, hoặc ngoài nó, là sử dụng hình phạt đối với sự phân kỳ KL và điều chỉnh
hệ số phạt sao cho chúng ta đạt được một số giá trị mục tiêu của dtarg phân kỳ KL mỗi cập nhật chính sách Trong các thử nghiệm của chúng tôi, chúng tôi nhận thấy rằng hình phạt KL hoạt động kém hơn so với mục tiêu đại diện bị cắt bớt, tuy nhiên, chúng tôi đã đưa nó vào đây vì đó là một đường cơ sở quan trọng
Trong phần khởi tạo đơn giản nhất của thuật toán này, chúng tôi thực hiện các bướcsau trong mỗi lần cập nhật chính sách:
• Sử dụng một số kỷ nguyên của SGD minibatch, tối ưu hóa mục tiêu bị phạt KL
Trang 12chóng điều chỉnh Các tham số 1.5 và 2 ở trên được chọn theo kinh nghiệm, nhưng thuật toán không nhạy cảm lắm với chúng Giá trị ban đầu của β là một siêu tham
số khác nhưng không quan trọng trong thực tế vì thuật toán nhanh chóng điều chỉnh nó
1.2.4 Algorithm
Các tổn thất thay thế từ các phần trước có thể được tính toán và phân biệt bằng một
sự thay đổi nhỏ đối với việc triển khai chính sách thông thường Đối với các triển khai sử dụng phân biệt tự động, người ta chỉ cần xây dựng tổn thất L ^ CLIP hoặc
L ^ KLPEN thay vì L ^ PG và một người thực hiện nhiều bước đi lên của gradient ngẫu nhiên trên mục tiêu này
Hầu hết các kỹ thuật để tính toán bộ ước lượng hàm lợi thế giảm phương sai đều sửdụng (các) hàm giá trị trạng thái đã thu thập được V; ví dụ, ước tính lợi thế tổng quát [Sch + 15a], hoặc công cụ ước tính đường chân trời hữu hạn trong [Mni + 16].Nếu sử dụng kiến trúc mạng nơ-ron chia sẻ các tham số giữa hàm giá trị và chính sách, chúng ta phải sử dụng hàm mất kết hợp đại diện chính sách và thuật ngữ lỗi hàm giá trị Mục tiêu này có thể được tăng cường hơn nữa bằng cách thêm một phần thưởng entropy để đảm bảo đủ thăm dò, như đã đề xuất trong nghiên cứu trước đây [Wil92; Mni + 16] Kết hợp các thuật ngữ này, chúng ta thu được mục tiêu sau, mục tiêu này được tối đa hóa (gần đúng) cho mỗi lần lặp:
Trang 13cập nhật Phong cách này yêu cầu một công cụ ước tính lợi thế không vượt quá bước thời gian T Công cụ ước tính được sử dụng bởi [Mni + 16] là
(10)
trong đó t chỉ định chỉ số thời gian trong [0, T], trong một đoạn quỹ đạo có độ dài
T nhất định Tổng quát hóa sự lựa chọn này, chúng ta có thể sử dụng phiên bản rút gọn của ước tính lợi thế tổng quát, rút gọn thành Công thức (10) khi λ = 1:
(11)(12)
Thuật toán proximal policy optimization (PPO) sử dụng các đoạn quỹ đạo có độ dài cố định được hiển thị bên dưới Mỗi lần lặp, mỗi N (song song) tác nhân thu thập T lần lượt dữ liệu Sau đó, chúng tôi xây dựng sự mất mát thay thế trên các bước thời gian NT này của dữ liệu và tối ưu hóa nó với SGD minibatch (hoặc thường để có hiệu suất tốt hơn, Adam [KB14]), cho K kỷ nguyên
Algorithm 1 PPO, Actor-Critic Style
Trang 141.3 Unity Machine Learning Agents Toolkit (ML-Agents)
1.3.1 Training Intelligent Agents
Machine Learning đang thay đổi cách chúng ta mong đợi để có được hành vi thôngminh từ các tác nhân tự trị Trong khi trước đây, hành vi được mã hóa bằng tay, nó ngày càng được dạy cho tác nhân (người máy hoặc hình đại diện ảo) thông qua tương tác trong môi trường đào tạo Phương pháp này được sử dụng để học hành viđối với mọi thứ, từ robot công nghiệp, máy bay không người lái và phương tiện tự hành, cho đến các nhân vật trong trò chơi và đối thủ Chất lượng của môi trường đào tạo này rất quan trọng đối với các loại hành vi có thể học được, và thường có
sự đánh đổi giữa loại này hay loại khác Kịch bản điển hình để đào tạo tác nhân trong môi trường ảo là có một môi trường và tác nhân duy nhất được kết hợp chặt chẽ với nhau Các hành động của tác nhân thay đổi trạng thái của môi trường và mang lại cho tác nhân phần thưởng
The typical Reinforcement Learning training cycle
Trang 15Tại Unity, chúng tôi muốn thiết kế một hệ thống cung cấp tính linh hoạt và dễ sử dụng hơn cho các nhóm đang phát triển quan tâm đến việc áp dụng học máy để phát triển các tác nhân thông minh Hơn nữa, chúng tôi muốn làm điều này trong khi tận dụng vật lý và đồ họa chất lượng cao cũng như quyền kiểm soát nhà phát triển đơn giản nhưng mạnh mẽ do Unity Engine và Editor cung cấp Chúng tôi nghĩ rằng sự kết hợp này có thể mang lại lợi ích cho các nhóm sau theo những cách
1.3.2 Unity Machine Learning Agents Toolkit
Unity Machine Learning Agents Toolkit (viết tắt là Agents toolkit) - SDK Agents cho phép các nhà nghiên cứu và nhà phát triển chuyển đổi các trò chơi và
ML-mô phỏng được tạo bằng Unity Editor thành ML-môi trường mà các tác nhân thông minh có thể được đào tạo bằng cách sử dụng Deep Reinforcement Learning,
Evolution Strategies hoặc các phương pháp học máy khác thông qua một API Python dễ sử dụng
1.3.3 Learning Environments
Trang 16A visual depiction of how a Learning Environment might be configured within
Unity ML-Agents Toolkit.
Ba loại đối tượng chính trong bất kỳ Môi trường học tập nào là:
● Agent (Đặc vụ) - Mỗi Đặc vụ có thể có một tập hợp các trạng thái và quan
sát duy nhất, thực hiện các hành động độc đáo trong môi trường và nhận phần thưởng duy nhất cho các sự kiện trong môi trường Hành động của mộttác nhân được quyết định bởi bộ não mà nó liên kết
● Brain (Não bộ) - Mỗi Não bộ xác định một trạng thái và không gian hành
động cụ thể, đồng thời chịu trách nhiệm quyết định những hành động mà mỗi tác nhân liên kết của nó sẽ thực hiện Bản phát hành hiện tại hỗ trợ Brains được đặt thành một trong bốn chế độ:
- External - Quyết định hành động được thực hiện bằng cách sử dụng TensorFlow (hoặc thư viện ML của bạn lựa chọn) thông qua giao tiếp quamột open socket với API Python
- Engine Configuration - Tốc độ và chất lượng kết xuất của công cụ trò chơi ở cả chế độ đào tạo và suy luận
- Frameskip - Có bao nhiêu bước công cụ cần bỏ qua giữa mỗi tác nhân đưa ra quyết định mới
- Global episode length - Thời lượng của tập Khi đạt được, tất cả các tác nhân được thiết lập để hoàn thành
Các trạng thái và quan sát của tất cả các tác nhân có não bộ được đặt thành
External được External Communicator thu thập và giao tiếp với API Python của chúng tôi để xử lý bằng cách sử dụng thư viện ML mà bạn lựa chọn Bằng cách đặtnhiều tác nhân vào một não bộ duy nhất, các hành động có thể được quyết định theo kiểu hàng loạt, mở ra khả năng nhận được những lợi thế của tính toán song song, khi được hỗ trợ
1.3.4 Flexible Training Scenarios
Với bộ công cụ Unity ML-Agents, có thể có nhiều kịch bản đào tạo khác nhau, tùy thuộc vào cách các tác nhân, não bộ và phần thưởng được kết nối Đối với những người mới đào tạo các điệp viên thông minh, dưới đây là một vài ví dụ có thể đóngvai trò là nguồn cảm hứng Mỗi cấu hình là một cấu hình môi trường nguyên mẫu với mô tả về cách nó có thể được tạo bằng cách sử dụng ML-Agents SDK
Trang 17● Single-Agent - Một Đặc vụ duy nhất được liên kết với một bộ não duy nhất
Cách truyền thống để đào tạo một Đặc vụ
● Simultaneous Single-Agent - Nhiều Đặc vụ độc lập với các chức năng khen
thưởng độc lập được liên kết với một bộ não duy nhất Một phiên bản song song của kịch bản đào tạo truyền thống, có thể tăng tốc và ổn định quá trình đào tạo
● Adversarial Self-Play - Hai Đặc vụ tương tác với các chức năng phần
thưởng nghịch đảo được liên kết với một bộ não duy nhất Trong các trò chơi hai người, việc tự chơi theo đối thủ có thể cho phép một đặc vụ ngày càng trở nên có kỹ năng cao hơn, trong khi luôn có đối thủ hoàn toàn phù hợp: chính mình
● Cooperative Multi-Agent - Nhiều Đặc vụ tương tác với một chức năng
phần thưởng được chia sẻ được liên kết với một hoặc nhiều bộ não khác nhau Trong trường hợp này, tất cả các Đặc vụ phải làm việc cùng nhau để hoàn thành một nhiệm vụ chứ không phải là không thể thực hiện một mình
Ví dụ bao gồm các môi trường mà mỗi nhân viên chỉ có quyền truy cập vào một phần thông tin cần được chia sẻ để hoàn thành nhiệm vụ hoặc cộng tác giải một câu đố
● Competitive Multi-Agent - Nhiều Đặc vụ tương tác với chức năng phần
thưởng nghịch đảo được liên kết với một hoặc nhiều bộ não khác nhau Trong trường hợp này, các Đặc vụ phải cạnh tranh với nhau để giành chiến thắng trong một cuộc cạnh tranh hoặc có được một số tài nguyên hạn chế Tất cả các môn thể thao đồng đội sẽ rơi vào trường hợp này
● Ecosystem - Nhiều Đặc vụ tương tác với chức năng phần thưởng độc lập
được liên kết với một hoặc nhiều bộ não khác nhau Kịch bản này có thể được coi là tạo ra một thế giới nhỏ trong đó các loài động vật với các mục tiêu khác nhau đều tương tác với nhau, chẳng hạn như một đồng cỏ lớn trong
đó có thể có ngựa vằn, voi và hươu cao cổ hoặc mô phỏng lái xe tự động trong môi trường đô thị
Trang 182 HIỆN THỰC
2.1 Ping Pong Game
2.1.1 Cài đặt những Component cần thiết (Setup)
● Cài đặt Python 3 (phiên bản 3.6.1 trở lên)
● Cài đặt Unity (phiên bản 2019.4 trở lên)
● Clone https://github.com/AdrianNguyen-UIT/PingPongMLAgents
● Vào thư mục “PingPongMLAgents”, cài đặt môi trường ảo cho python
o cmd: python -m venv venv
o bash: python -m venv venv
● Khởi động môi trường ảo:
Trang 19o bash: python -m pip –install –upgrade pip
● Download PyTorch (phiên bản 1.7.0):
o cmd: pip install torch==1.7.0 -f
https://download.pytorch.org/whl/torch_stable.html
o bash: pip install torch==1.7.0 -f
https://download.pytorch.org/whl/torch_stable.html
● Cài đặt ML-Agents Python package (Phiên bản 0.27.0):
o cmd: python -m pip –install mlagents==0.27.0
o bash: python -m pip –install mlagents==0.27.0
● Testing việc cài đặt có được thực hiện đúng ko?
o cmd: mlagents-learn –help
o bash: mlagents-learn –help
2.1.2 Cài đặt thông số (Configuration)
Dưới đây là những thông số (thông dụng - Common) được cài đặt mặc định của Unity cho ML-Agents Behavior để huấn luyện cho Agent và cần tùy chỉnh để phù hợp với project và mong muốn của người dùng
2.1.2.1 Thông số Global
Thông số tác động đến hệ thống chung của mạng học sâu
keep_checkpoints Số lượng tối đa checkpoint được
lưu lại Checkpoint sẽ được lưu lại sau một số lượng experience/step
đã qua được xác định tại checkpoint_interval trong lúc huấn luyện Checkpoint cũ nhất sẽ bị xóanếu số lượng checkpoint vượt quá
số lượng tối đa
checkpoint_interval Số lượng experience giữa hai
checkpoint được lưu
max_steps Số lượng experience tối đa của quá
trình huấn luyện
Trang 20time_horizon Số lượng experience cần để lưu
thông tin vào experience buffer.summary_freq Số lượng experience cần để vẽ
thông kế số liệu (Tensorboard)
step tiếp theo trong khi đang cập nhật lại model để đẩy nhanh tốc độ huấn luyện
trước đó để tiếp tục huấn luyện.hyperparameters -> batch_size Số lượng experience trong mỗi lần
lặp của thuật toán Gradient Descent
hyperparameters -> buffer_size Số lượng experience cần thiết để
cập nhật policy
hyperparameters -> learning_rate Learning rate của thuật toán
Gradient Descent
hyperparameters -> learning_rate_schedule Xác định sự thay đổi của learning
rate trong quá trình huấn luyện.network_settings -> hidden_units Số lượng node trong một hidden
layer
network_settings -> num_layers Số lượng hidden layer
network_settings -> normalize Normalize những vector input
trong quá trình quan sát ở mỗi lần học
2.1.2.2 Thông số cho thuật toán PPO
Trang 21mỗi lần học.
hyperparameters -> lambd Thông số để tính toán Generalized
Advantage Estimate Xác định xem agent sẽ hành động dựa vào số liệu ướctính được hay phần thưởng nhận được.hyperparameters -> num_epoch Giảm để quá trình huấn luyện được ổn
định nhưng thời gian huấn luyện tăng
2.1.2.3 Thông số Reward Signals
reward_signals -> extrinsic -> gamma Thông số cho hàm discount
reward_signals -> extrinsic -> strength Xác định tác động của môi trường đến
phần thưởng nhận được
2.1.2.4 Thông số Self Play
Tính năng cho phép agent sẽ huấn luyện với đối thủ là phiên bản ngẫu nhiên hoặc
là phiên bản cũ của bản thân (Huấn luyện với bản thân)
Trong một lần huấn luyện, sẽ có một team/agent đang học (learning agent/team) vàmột team không học (fixed agent/team) Mỗi team/agent sẽ được gắn một id khác nhau và một ELO xác định trình độ của team/agent ELO sẽ tăng lên trong quá trình huấn luyện
trainer_step: Số step mà (learning agent/team) đang thực hiện
ghost_step: Số step mà (fixed agent/team) đang thực hiện
self_play -> save_steps Số lượng step giữa hai lần lưu
policy trong snapshots window.self_play -> team_change Số lượng trainer_step để thay đổi
vai trò giữa hai team
self_play -> swap_steps Số lượng ghost_step để đổi
policy
Trang 22self_play -> play_against_latest_model_ratio Xác suất mà learning agent sẽ đối
đầu với phiên bản mới nhất được lưu trong snapshots window
self_play -> window Chiều dài của snapshots window
(bao nhiêu policy sẽ được lưu).self_play -> inital_elo Số ELO khởi tạo cho agent
2.1.3 Cài đặt môi trường (Environment)
Hình 1 Evironment Setup
2 Agent hình hình chữ nhật di chuyển lên xuống trong giới hạn vị trí x không thay đổi và va chạm với hai bức tường trên dưới
1 quả bóng hình tròn di chuyển và va chạm bật với bức tường và Agent Khi bắt đầu trận đấu hoặc va chạm vào bức tường, quả bóng sẽ được đặt tại vị trí trung tâm
và phóng đi theo hướng ngẫu nhiên
4 bức tường đặt xung quanh thành 1 sân chơi hình chữ nhật, 2 bức tường hai bên khi va chạm với bóng sẽ tính điểm cho agent đối phương
1 bounding hình chữ nhật ngoài nằm ngoài sân chơi để “nhặt” khi bóng rơi ra ngoài khỏi sân chơi
Hệ thống vật lý sẽ được Unity Engine quản lí