Tải bản đầy đủ (.docx) (45 trang)

Đồ án huấn luyện AI chơi game ping pong ( đồ án SE121 l21) (2)

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 (1.46 MB, 45 trang )

ĐẠ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

1


Nội dung
1

1.1

Định nghĩa

3

1.1.2

Algorithms



4

RL — Proximal Policy Optimization (PPO)

7

1.2.1

Policy Optimization

7

1.2.2

Clipped Surrogate Objective

9

1.2.3

Adaptive KL Penalty Coefficient

11

1.2.4

Algorithm

12


1.3

Unity Machine Learning Agents Toolkit (ML-Agents)

14

1.3.1

Training Intelligent Agents

14

1.3.2

Unity Machine Learning Agents Toolkit

15

1.3.3

Learning Environments

16

1.3.4

Flexible Training Scenarios

17

19

HIỆN THỰC
2.1

3

3

Reinforcement Learning

1.1.1
1.2

2

3

LÝ THUYẾT

19

Ping Pong Game

2.1.1

Cài đặt những Component cần thiết (Setup)

19


2.1.2

Cài đặt thơng số (Configuration)

19

2.1.3

Cài đặt mơi trường (Environment)

22

2.1.4

Q trình huấn luyện

23

2.1.5

Áp dụng

43
45

THAM KHẢO

2



1 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 tố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 q trình quyết định Markov
trạng thái hữu hạn (Markov decision process - MDP), và các thuật tố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 quan
tâ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 tố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


3


Tại mỗi thời điểm t, agent thấy được trạng thái của nó là st �S và tập các hành
đợng có thể A( st ) . Nó chọn mợt hành đợng a �A(st ) và nhận được từ môi trường
trạng thái mới st 1 và một khoản thưởng rt 1 . 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 � A có tác dụng cực đại hóa lượng
R  r0  r1  ...  rn

với các MDP có mợt trạng thái kết thúc, hoặc lượng R  t  rt với
các MDP khơng có trạng thái kết thúc (trong đó γ là một hệ số giảm khoản "thưởng
trong tương lai" nào đó, với giá trị trong khoảng 0.0 và 1.0).
t

Do đó, học tăng cường đặc biệt thích hợp cho các bài tốn có sự được mất giữa các
khoản thưởng ngắn hạn và dài hạn. Học tăng cường đã được áp dụng thành cơng
cho nhiều bài tốn, trong đó có điều khiển robot, điều vận thang máy, viễn thơng,
các trị chơi backgammon và cờ vua.
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 tốn sẽ được sử dụng để tìm chiến lược thu được kết quả trả về cao
nhấ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.

4


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 tố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 | s,  ]

Nếu có sẵn chiến lược tối ưu Q, ta ln 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:

5


Bằ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 tố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

tố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 tố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

6


hạ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 tố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 tố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ển
khai 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

7


1.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 tḥ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 ḅ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 tốn KL tối đa qua các trạng thái thay vì giá trị trung bình) tạo thành mợt
giớ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 ḅ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 q trình học.
Do đó, để đạt được mục tiêu của chúng tôi về một thuật tố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.
8


1.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 q 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úng
tô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 tḥc vào lợi thế là tích cực hay
tiêu cực.
9


Hì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 tốn mà

chúng tơi sẽ giới thiệu ngay sau đây) trong một vấn đề kiểm số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.

10


Hì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 tố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 ngồ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 tốn này, chúng tơi thực hiện các bước
sau trong mỗi lần cập nhật chính sách:

• Sử dụng mợt số kỷ ngun của SGD minibatch, tối ưu hóa mục tiêu bị phạt KL

(8)

•Tính d = Êt [KL[πθold(·|st), πθ(·|st)]]
– If d < dtarg/1.5, β ← β/2

– If d > dtarg × 1.5, β ← β × 2
β cập nhật được sử dụng cho lần cập nhật chính sách tiếp theo. Với sơ đồ này,
chúng tơi thỉnh thoảng thấy các bản cập nhật chính sách trong đó sự phân kỳ KL
khác biệt đáng kể so với dtarg, tuy nhiên, những điều này rất hiếm và β nhanh
11


chó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 tố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 tố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 tố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 tố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
qt [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:

(9)


trong đó c1, c2 là các hệ số và S biểu thị phần thưởng entropy và Lt ^ VF là tổn
thất sai số bình phương (Vθ(st) – Vt^targ)^2

Mợt kiểu triển khai gradient chính sách, được phổ biến trong [Mni + 16] và rất
thích hợp để sử dụng với các mạng nơ-ron lặp lại, chạy chính sách cho T thời gian
(trong đó T nhỏ hơn nhiều so với đợ dài tập) và sử dụng các mẫu được thu thập để
12


cậ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 q
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 qt 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 tố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


13


1.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ơng
minh 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

14


Tạ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
mà các giải pháp khác có thể khơng:

● Các nhà nghiên cứu hàn lâm quan tâm đến việc nghiên cứu hành vi phức tạp
của nhiều tác nhân trong các kịch bản hợp tác và cạnh tranh thực tế.
● Các nhà nghiên cứu trong ngành quan tâm đến các chế độ đào tạo song song
quy mô lớn cho robot, xe tự hành và các ứng dụng cơng nghiệp khác.
● Các nhà phát triển trị chơi quan tâm đến việc lấp đầy thế giới ảo bằng các
tác nhân thông minh, mỗi người đều hành động với hành vi năng động và
hấp dẫn.
1.3.2 Unity Machine Learning Agents Toolkit

Unity Machine Learning Agents Toolkit (viết tắt là ML-Agents toolkit) - SDK MLAgents 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à
mơ phỏng được tạo bằng Unity Editor thành 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

15


A 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ột
tá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 qua
mộ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 đặt
nhiề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 tố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ể đóng
vai 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 ngun 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.
16


● 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 q 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 ln có đối thủ hồn tồ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 để
hồ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ẻ để hồ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 c̣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 lồ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ị

17


2 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 />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:
o cmd: venv\Scripts\activate
o bash: source venv/Scripts/activate
● Upgrade pip:
o cmd: python -m pip –install –upgrade pip
18


o 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
/>o bash: pip install torch==1.7.0 -f
/>● 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.
Thơng số

Mơ tả

trainer_type

Thuật tốn sử dụng

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óa
nế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.
19


time_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)

threaded

Cho phép môi trường chuyển sang
step tiếp theo trong khi đang cập
nhật lại model để đẩy nhanh tốc độ
huấn luyện.

init_path


Đường dẫn đến model được lưu
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 tốn PPO

Thơng số

Mơ tả

hyperparameters -> beta

Xác định tính ngẫu nhiên của policy
sau mỗi lần học.

hyperparameters -> epsilon

Xác định khả năng thông minh hơn sau
20


mỗi lần học.
hyperparameters -> lambd

Thơng số để tính tốn Generalized
Advantage Estimate. Xác định xem
agent sẽ hành động dựa vào số liệu ước
tí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

Thông số

Mô tả

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.
Thông số

Mô tả

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.
21


self_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 ngồi nằm ngồi sân chơi để “nhặt” khi bóng rơi ra
ngồi khỏi sân chơi.
Hệ thống vật lý sẽ được Unity Engine quản lí.
22


2.1.4 Quá trình huấn luyện
2.1.4.1 Mục tiêu.

Tìm ra mạng học sâu đem đến sự tăng trưởng ổn định trong thời gian hợp huấn
luyện hợp lý.

23



2.1.4.2 Thử nghiệm lần 1 (Test 1.0)
2.1.4.2.1 Configuration. (hình 2)

24


25


×