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

Báo cáo đề tài reinforcement learning nhóm 8

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.1 MB, 35 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN & TRUYỀN THƠNG
-----  -----

ĐỒ ÁN MƠN HỌC TRÍ TUỆ NHÂN TẠO
Đề tài: Tìm hiểu học tăn cường và áp dụng vào game Mario

Giảng viên: Đỗ Tiến Dũng
Nhóm sinh viên thực hiện:
STT
1
2
3
4

Họ và tên
Bùi Văn Huy
Hoàng Hữu Phúc
Nguyễn Minh Đức
Nguyễn Mạnh Long

MSSV
20198231
20194818
20198218
20187254

Hà Nội, năm 2021
1



MỤC LỤC
CHƯƠNG 1: HỌC TĂNG CƯỜNG VÀ BÀI TOÁN QUYẾT ĐỊNH
MARKOV ............................................................................................................. 4
1.1. Khái quát về Học Tăng Cường ................................................................... 4
1.2 Bài Toán Markov ......................................................................................... 6
1.2.1 Hàm phản hồi......................................................................................... 7
1.2.3. Hàm Giá Trị .......................................................................................... 8
1.3 Phân Loại Thuật Toán Học Tăng Cường..................................................... 9
1.3.1

Học dựa trên chiến lược (Policy-based)............................................. 9

1.3.2 Học dựa trên giá trị (Value-based) ...................................................... 10
1.3.3 Thuật toán dựa trên mơ hình................................................................ 10
1.4.4 Các phương pháp kết hợp .................................................................... 11
1.3.5 On-Policy và Off-policy ...................................................................... 11
CHƯƠNG 2: CÁC THUẬT TOÁN HỌC TĂNG CƯỜNG .............................. 13
2.1 Quy Hoạch Động và công thức Bellman ................................................... 13
2.2 Kỹ thuật Monte Carlo ................................................................................ 15
2.3 Kỹ thuật TD learning (Temporal Difference Learning) ............................ 17
2.4 Q-learning .................................................................................................. 18
2.4 Deep Q-Network ........................................................................................ 18
2.6 Dueling DQN ............................................................................................. 22
CHƯƠNG 3: ÁP DỤNG HỌC TĂNG CƯỜNG VÀO GAME MARIO .......... 25
3.1 Bài tốn cần xử lý ...................................................................................... 25
3.2 Mơi Trường và Dữ Liệu............................................................................. 25
3.3 Hướng giải quyết bài toán.......................................................................... 26
3.4 Xử lý môi trường ....................................................................................... 27
3.5 Triển khai các thuật toán............................................................................ 27
3.5.1 Định nghĩa lớp DQN: .......................................................................... 27

3.5.2 Dueling DDQN .................................................................................... 31
3.6 Test case của chương trình ........................................................................ 31
2


3.5.2 Sử dụng các hệ số suy giảm khác nhau ............................................... 32
3.5.3 Sử dụng các policy khác nhau ............................................................. 33
ĐÁNH GIÁ VÀ KẾT LUẬN ............................................................................. 34

3


CHƯƠNG 1: HỌC TĂNG CƯỜNG VÀ BÀI TOÁN
QUYẾT ĐỊNH MARKOV
1.1. Khái quát về Học Tăng Cường
- Reinforcement Learning hay Học Tăng Cường là một phương pháp học
máy được sử dụng phổ biến để giải quyết các bài toán quyết định. Đây là bài
toán xuất hiện rất nhiều trong thực tế như: chơi thể thảo, lái xe, điều khiển
robot, chơi trò chơi điện tự… Đây đều là những công việc mà con người và máy
móc có thể thực hiện được.
- Các bài tốn liên quan đến học Tăng Cường có thể được thể hiện bởi hai
thành phần chính sau đây:
• Tác tử (Agent): được định nghĩa như sau: “anything that can be
viewed as perceiving its environment through sensors and acting
upon that environment through actuators”. Ngắn gọn là bất cứ thứ
gì quan sát mơi trường và tác động lên nó thơng qua cảm biến và
bộ truyền chuyển động.
• Mơi trường (Environment): Khơng gian xung quanh agent, nơi mà
agent tồn tại và tương tác.
- Hai thành phần này tác động lên nhau thông qua một sơ đồ sau:


4


• Môi trường sinh ra thông tin mô tả trạng thái của tác tử. Tác tử sẽ tương
tác với môi trường bằng cách quan sát các trạng thái và sử dụng thơng tin
đó để đưa ra hành động thích hợp.
• Môi trường tiếp thu hành động và biến đổi theo nó. Và nó lại trả về trạng
thái mới cùng với phần thưởng cho tác tử.
• Và vịng lặp này sẽ tiếp tục đến khi nào bài toán được giải quyết hoặc tác
tử khơng có khả năng thực hiện hành động nữa hay bước vào trạng thái
chết (Terminate State).
- Các agent sử dụng một hàm là policy (chiến lược) để lựa chọn hành động
dựa trên không gian các hành động đã được thiết lập từ trước. Thường thì tập
các hành động là hữu hạn hay rời rạc. Policy giống như 1 ánh xạ từ tập trạng
thái đến tập hành động:
Chiến lược: Trạng thái → Hành động,
hay
𝝅: 𝒔 → 𝒂

+ Với 𝝅 là ký hiệu của policy,
s là ký hiệu của trạng thái,
a là ký hiệu của hành động.

- Các bài toán học tăng cường thường có 1 hàm mục tiêu hay objective – là
tổng các phần thưởng đạt được bởi agent. Và agent phải tối ưu nó bằng cách
chọn các hành động tốt nhất. Để đưa ra được lựa chọn phù hợp nhất thì tác tử
cần phải học thơng qua việc thử và thất bại (trial and error).
=> Một hệ thống học tăng cường là một vòng lặp điểu khiển các phản hồi, tại
đây tác tử và môi trường tương tác và trao đổi thơng tin hay tín hiệu (signals).

- Các tín hiệu trao đổi đó là (trạng thái, hành động, phần thưởng). Biểu diễn
dưới dạng toán học là (s, a, r) với các ký hiệu tương ứng. Chúng còn được gọi
là trải nghiệm.
- Vịng lặp có thể lặp đến vơ tận hoặc sẽ dừng lại nếu tác tử gặp phải trạng
thái chết hoặc quá thời gian cho phép đã được định trước T. Và khi đó tác tử
được cho là đã hoàn thành 1 episode.

5


- Trajectory là tập hợp tất cả trải nghiệm tác tử tiếp nhận trong q trình thực
hiện 1 episode. Nó được ký hiệu là:
 = (𝒔𝟎, 𝒂𝟎 , 𝒓𝟎 ), (𝒔𝟏, 𝒂𝟏 , 𝒓𝟏 ), …..
+ Ví dụ về 1 bài tốn học tang cường:

1.2 Bài Tốn Markov
- Mơi trường biến đổi từ trạng thái này sang trạng thái tiếp theo thông qua
1 hàm chuyển tiếp. Trong học tăng cường, hàm chuyển tiếp được biểu diễn
thơng qua bài tốn quyết định Markov – một kiến trúc tốn học mơ tả bài tốn
đưa ra quyết định.
- Ta có thể biểu diễn nó như sau:

𝑠𝑡+1 ~ 𝑃(𝑠𝑡+1 |(𝑠0 , 𝑎0 ), (𝑠1 , 𝑎1 ), … , (𝑠𝑡 , 𝑎𝑡 ))
(1.4)
- Công thức trên có thể hiểu là xác xuất để mơi trường chuyển từ trạng
thái 𝑠𝑡 𝑠𝑎𝑛𝑔 𝑠𝑡+1 phụ thuộc vào toàn bộ các trạng thái s và hành động a xảy ra
trong cùng 1 episode. Tuy nhiên việc phụ thuộc vào quá nhiều trạng thái và
hành động có thể làm cho policy (chiến lược) của bài toán trở nên rất phức tạp
và khó tính tốn.
- Để giúp bài tốn dễ dàng cho việc tính tốn, ta giả sử việc biến đổi sang

trạng thái tiếp theo 𝑠𝑡+1 chỉ phụ thuộc vào trạng thái và hành động trước đó
𝑠𝑡 𝑣à 𝑎𝑡 . Đây được biết như tính chất Markov:

𝑠𝑡+1 ~ 𝑃(𝑠𝑡+1 |𝑠𝑡 , 𝑎𝑡 )
=> Công thức trên tuy đơn giản hơn nhưng lại đủ mạnh để có thể giải
quyết các bài toán học tăng cường trong thực tế.
6


- Một bài toán quyết định Markov hay MDP (Markov Decision Process)
được định nghĩa với 4 thành phần sau:





Một tập các trạng thái 𝑆
Một tập các hàng động 𝐴
Hàm chuyển đổi trạng thái 𝑃(𝑠𝑡+1 |𝑠𝑡 , 𝑎𝑡 )
Hàm phần thưởng 𝑅(𝑠𝑡 , 𝑎𝑡 , 𝑠𝑡+1 )

- Tuy nhiên agent lại không thể sử dụng hàm chuyển đổi 𝑃(𝑠𝑡+1 |𝑠𝑡 , 𝑎𝑡 )
và hàm phần thưởng 𝑅(𝑠𝑡 , 𝑎𝑡 , 𝑠𝑡+1 ). Chỉ có một cách để agent nhận được
thơng tin về các hàm này là thông qua cá trạng thái, hành động và phần
thưởng mà chúng trải nghiệm được ở trong mơi trường.

1.2.1 Hàm phản hồi

- Mục đích của tác tử là tối đa hóa phần thưởng được tích luỹ trong tương
lai. Đầu tiên, ta có định nghĩa của hàm phản hồi 𝑅(𝜏) sử dụng trajectory từ 1

episode,  = (𝒔𝟎, 𝒂𝟎 , 𝒓𝟎 ), (𝒔𝟏, 𝒂𝟏 , 𝒓𝟏 ), … , (𝒔𝑻 , 𝒂𝑻 , 𝒓𝑻 ):
𝑅( ) = 𝑟0 + 𝛾𝑟1 + 𝛾 2 𝑟2 + ⋯ + 𝛾 𝑇 𝑟𝑇 = ∑𝑇𝑡=0 𝛾 𝑡 𝑟𝑡
- Thông số 𝛾 được gọi là discount factor hay hệ số suy giảm, 𝛾 ∈ [0,1].
Hệ số này cho phép xác định mức độ ảnh hưởng của những bước chuyển trạng
thái tiếp theo cho đến giá trị phản hồi tại thời điểm đang xét. Nếu 𝛾 = 0, thì tác
tử chỉ xem xét mục tiêu gần nhất, giá trị 𝛾 càng gần tới 1 thì tác tử sẽ quan tâm
đến các mục tiêu xa hơn trong tương lai.

𝑇

+ 𝛾 = 0, 𝑅()𝛾=0 = ∑ 𝛾 𝑡 𝑟𝑡 = 𝑟0
𝑡=0

7


𝑇

𝑇

+ 𝛾 = 1, 𝑅()𝛾=1 = ∑ 𝛾 𝑡 𝑟𝑡 = ∑ 𝑟𝑡
𝑡=0

𝑡=0

- Từ hàm phản hồi trên, ta định nghĩa được hàm mục tiêu là kỳ vọng của
giá trị phản hồi trên nhiều trajectory khác nhau:
𝑇

𝐽(𝜏) = 𝐸𝜏 ~𝜋 [𝑅(𝜏)] = 𝐸𝜏 [∑ 𝛾 𝑡 𝑟𝑡 ]

𝑡=0

+ 𝜏 ∼ 𝜋 có nghĩa là trajectory được lấy mẫu từ policy. Hay nói cách
khác, mỗi một chiến lược tác tử sử dụng có thể tạo ra nhiều trajectory. Ta cũng
có thể dùng ký hiệu này để lấy ra một hành động từ một trạng thái dựa vào một
policy nhất định nào đó: 𝑎 ∼ 𝜋(𝑠).

1.2.3. Hàm Giá Trị
- Học tăng cường sử dụng các hàm giá trị để cung cấp thông tin về mục
tiêu. Chúng giúp tác tử xác định được mức độ thích hợp của trạng thái và các
hành động đối với phản hồi mong đợi ở tương lai. Có 2 hàm giá trị
𝑇

𝑉 𝜋 (𝑠) = 𝐸𝑠0=𝑠 ,𝜏∼𝜋 [∑ 𝛾 𝑡 𝑟𝑡 ]
𝑡=0

- Viết ngắn gọn hơn:
𝑉 𝜋 (𝑠) = 𝐸𝜏∼𝜋 [𝑅(𝜏)|𝑠0 = 𝑠]
𝑄𝜋 (𝑠, 𝑎) = 𝐸𝜏∼𝜋 [𝑅(𝜏)|𝑠0 = 𝑠, 𝑎0 = 𝑎]
- Hàm 𝑉 𝜋 sẽ xác định xem 1 trạng thái là tốt hay xấu. Hàm phản hồi
𝑅(𝜏) = ∑𝑇𝑡=0 𝛾 𝑡 𝑟𝑡 được tính tốn từ trạng thái hiện tại s đến khi kết thúc 1
episode.

8


- Hàm 𝑄𝜋 xác định xem 1 cặp trạng thái-hành động là tốt hay xấu. Nó sẽ
tính tốn ra giá trị phản hồi kỳ vọng khi lựa chọn hành động a ở trạng thái s khi
mà tác tử vẫn tiếp tục hành động theo chiến lược 𝜋. Từ đó đưa ra kết luận xem
có nên sử dụng hành động a ở trạng thái đó hay vẫn theo chiến lược đã đề ra.


1.3 Phân Loại Thuật Toán Học Tăng Cường
Các thuật tốn học tăng cường được chia làm 3 nhóm chính: học dựa trên
chiến lược (policy-based), học dựa trên giá trị (value-based) và học dựa trên
mơ hình (model-based). Các tác tử cũng có thể kết hợp 2 trong 3 phương pháp
học trên để tạo ra 1 phương pháp mới mà dựa trên chiến lược và giá trị hoặc mơ
hình và giá trị.

1.3.1 Học dựa trên chiến lược (Policy-based)
- Thuật toán thuộc loại này học một chiến lược. Các chiến lược tốt nên
sinh ra hành động giúp tối ưu hàm mục tiêu của tác tử. 𝐽(𝜏) = 𝐸𝜏 [∑𝑇𝑡=0 𝛾 𝑡 𝑟𝑡 ].
Thuật toán dựa trên chiến lược được biết đến nhiều nhất là REINFORCE.

9


- Lợi ích chính của thuật tốn này là một trong những phương tháp tối ưu
rất tổng quát. Chúng có thể được ứng dụng cho các bài tồn có kiểu hành động
khác nhau như rời rạc, liên tục hoặc đa hành động. Chúng cũng trực tiếp tối ưu
thứ mà tác tử trức tiếp quan tâm đến-hàm mục tiêu 𝐽(𝜏).

1.3.2 Học dựa trên giá trị (Value-based)
- Với thuật toán dạng này, tác tử sẽ dùng 1 trong 2 hàm
𝑉
𝑄𝜋 (𝑠, 𝑎). Nó sử dụng các hàm đã được học để đánh giá các cặp giá trị
(𝑠, 𝑎) và tạo ra một chiến lược phù hợp. Hàm 𝑄𝜋 (𝑠, 𝑎) khá thông dụng
hơn 𝑉 𝜋 (𝑠). Bởi vì 𝑄𝜋 (𝑠, 𝑎) chứa đựng thông tin về các cặp trạng thái và hành
động trong khi 𝑉 𝜋 (𝑠) chỉ cho ta thông tin về các trạng thái.
𝜋 (𝑠)𝑣à


- Thuật toán SARSA là một trong những thuật toán lâu đời nhất của học
tăng cường. Mặc cho sự đơn giản của nó, SARSA kiến tạo nên ý tưởng lõi của
nhiều phương thức học dựa trên giá trị. Tuy nhiên ngày nay nó lại khơng được
sử dụng rộng rãi bởi nó đem đến phương sai khá lớn. Deep Q-Network và họ
hàng của nó như Double DQN và PER lại là những thuật tốn thơng dụng và
hiệu quả hơn.
- Các thuật toán dựa trên thường lấy mẫu hiệu quả hơn các thuật toán dựa
vào chiến lược. Bởi vì phương sai của chúng thấp hơn và chúng tận dụng được
các dữ liệu thu thập từ môi trường. Tuy nhiên, khơng có gì đảm bảo các thuật
tốn đó sẽ hội tụ đến điểm tối ưu.
- Gần đây có xuất hiện một thuật toán là QT-OPT được ứng dụng khá
hiệu quả trong môi trường với không gian hành động liên tục.

1.3.3 Thuật tốn dựa trên mơ hình
- Phương pháp này thực hiện học theo mơ hình và sử dụng nó để quyết
định chính sách tối ưu. Tác tử ước lượng mơ hình từ các quan sát về khả năng
chuyển đổi trạng thái. Một khi tác tử có được mơ hình của mơi trường,
𝑃(𝑠 ′ |𝑠, 𝑎), nó có thể tưởng tượng việc gì sẽ xảy ra trong tương lai bằng cách dự
đoán trajectory của một vài bước tiếp theo. Và nếu môi trường đang ở trong
trạng thái s, tác tử sẽ thực hiện đánh giá xem trạng thái sẽ thay đổi ra sao nếu áp
dụng một loạt các hành động 𝑎1 , 𝑎2 , … , 𝑎𝑛 bằng cách sử dụng 𝑃(𝑠 ′ |𝑠, 𝑎). Tất cả
đều không làm thay đổi mơi trường. Vì vậy, các trajectory được sự đốn sẽ chỉ
xuất hiện trong “đầu” của tác tử.
10


- Cách học trên khá ưu việt khi áp dụng trong các tình huống mà việc thu
thập dữ liệu hay trải nghiệm với môi trường khá tốn thời gian và đắt đỏ - ví dụ
trong ngành robot học. Và nó cũng không cần các mẫu dữ liệu để đưa ra các
chiến lược tốt vì bản thân nó đã có trong mình 1 mơ hình có khả năng tạo ra các

dữ liệu trải nghiệm được từ các mẫu tưởng tượng.
- Tuy nhiên, khơng có gì là hồn hảo. Để mơ hình được 1 môi trường mà
không gian trạng thái và hành động rất lớn là điều vơ cùng khó. Cùng với việc
các biến đổi của mơi trường có độ phức tạp cao khiến cho việc mô tả các sự
biến đổi trạng thái khơng mấy sn sẻ.
- Một số thuật tốn dạng này hay được sử dụng như Monte Carlo Tree
Search, Linear Quadratic Regulators … Trong báo cáo này sẽ không bàn về
thuật toán dạng này.

1.4.4 Các phương pháp kết hợp
- Một trong ba dạng thuật tốn được nêu trên ln tồn tại các thế mạnh
cùng với khuyết điểm riêng rẽ nên nhiều nhà nghiên cứu đã cố gắng kết hợp
chúng để tạo ra các thuật tốn đời mới. Tiêu biểu có thể kể đến là thuật toán
Actor-Critic, thuật toán này là sự kết hợp giữa policy-based và value-based. Ý
tưởng của thuật tốn này là dùng hàm giá trị để tính tốn các thông tin nhận
được từ môi trường và gửi chúng cho policy. Các chiến lược sẽ sử dụng thông
tin mà hàm giá trị cung cấp để đưa ra hành động tác động lại mơi trường.
- Thuật tốn Actor-Critic là một lĩnh vực nghiên cứu đem đến nhiều bước
phát triển đáng kể trong thời gian gần đây. Với việc ra đời các thuật toán mạnh
mẽ như Trust Region Policy Optimization (TRPO), Proximal Policy
Optimization (PPO), Deep Deterministic Policy Gradients (DDPG), Soft ActorCritic (SAC), A2C và A3C.

1.3.5 On-Policy và Off-policy
a) Học On-policy
Đây là phương pháp học dựa trên giá trị của chiến lược được sử dụng
để ra quyết định. Các hàm giá trị được cập nhật sử dụng các kết quả từ việc
thực hiện các hành động được quyết định bởi một số chiến lược. Các chiến
lược này thường xuyên là “soft” và khơng mặc định, “soft” ở đây có nghĩa là
nó đảm bảo ln ln có một phần tử thăm dị đối với chiến lược. Chiến
11



lược khơng q nghiêm khắc mà nó thường lựa chọn các hành động đưa ra
giá trị tăng cường tốt nhất. Có 3 chiến lược thơng thường được sử dụng εsoft, ε-greedy hoặc softmax .

b) Học Off-policy
Đây là phương pháp học các chiến lược khác nhau cho hành vi và ước
lượng. Có thể cập nhật các hàm giá trị ước lượng sử dụng các hành động giả
thiết mà không cần phải thử trong thực tế. Điều này đối lập với chiến lược
trên ở chỗ cập nhật các hàm giá trị chỉ dựa trên kinh nghiệm.

12


CHƯƠNG 2: CÁC THUẬT TOÁN HỌC TĂNG
CƯỜNG
2.1 Quy Hoạch Động và cơng thức Bellman
a. Phương trình Bellman
- Phương trình Bellman được đặt tên theo Richard Bellman, giúp cho
chúng ta giải quyết bài tốn quyết định Markov với mục đích là đi tìm chiến
lược tối ưu.
- Theo như phương trình Bellman, giá trị của 1 trạng thái được tính bằng
giá trị của phần thưởng tức thời và giá trị của trạng thái tiếp theo:
𝑉(𝑠) = 𝑅(𝑠, 𝑎, 𝑠′) + 𝛾𝑉(𝑠′)
+ Trong đó:




𝑅(𝑠, 𝑎, 𝑠′) là phần thưởng tức thời đạt được khi thức hiện

hành động a tại trạng thái s và di chuyển đến trạng thái s’.
𝛾 là hệ số suy giảm.
𝑉(𝑠′) là giá trị của trạng thái kế tiếp.

- Áp dụng công thức trên với trạng thái ở trong 1 policy, ta có:
𝑉 𝜋 (𝑠) = 𝑅(𝑠, 𝑎, 𝑠′) + 𝛾𝑉 𝜋 (𝑠′)
- Tiếp tục áp dụng công thức trên trong mơi trường có tính ngẫu nhiên mà
việc thực hiện 1 hành động có thể dẫn đến các kết quả khác nhau:
𝑉 𝜋 (𝑠) = ∑ 𝑃(𝑠′|𝑠, 𝑎)[𝑅(𝑠, 𝑎, 𝑠 ′ ) + 𝛾𝑉 𝜋 (𝑠′)]
𝑠′

- Cuối cùng, nếu như các policy cũng có tính ngẫu nhiên, tức là ta lựa
chọn hành động dựa trên các phân phối xác suất:
𝑉 𝜋 (𝑠) = ∑ 𝜋(𝑎|𝑠) ∑ 𝑃(𝑠′|𝑠, 𝑎)[𝑅(𝑠, 𝑎, 𝑠 ′ ) + 𝛾𝑉 𝜋 (𝑠′)]
𝑎

𝑠′

13


- Chúng ta có thể thấy cơng thức trên giống với khai triển của hàm kì
vọng
𝐸𝑥~𝑝(𝑥) [𝑓(𝑥)] = ∑𝑥 𝑝(𝑥)𝑓(𝑥) nên ta có thể viết gọn lại cơng thức như sau:
𝑉 𝜋 (𝑠) = 𝐸𝑎~𝜋,𝑠′~𝑃(𝑠′|𝑠,𝑎) [𝑅(𝑠, 𝑎, 𝑠 ′ ) + 𝛾𝑉 𝜋 (𝑠′)]
-Ta cũng có thể áp dụng cơng thức Bellman với hàm 𝑄𝜋 (𝑠, 𝑎):

𝑄𝜋 (𝑠, 𝑎) = ∑ 𝜋(𝑎|𝑠) ∑ 𝑃(𝑠′|𝑠, 𝑎)[𝑅(𝑠, 𝑎, 𝑠 ′ ) + 𝛾𝑄𝜋 (𝑠 ′ , 𝑎′)]
𝑎


𝑠′

- Tuy nhiên, ∑𝑎 𝜋(𝑎|𝑠) có cần thiết cho công thức của 𝑄𝜋 (𝑠, 𝑎) không?
Tất nhiên là khơng, vì 𝑄𝜋 (𝑠, 𝑎) là giá trị của 1 cặp s và a cho trước. Có nghĩa ta
không cần phải chọn hành động cho trạng thái s. Nhưng với trạng thái s’ thì
thêm ∑𝑎 𝜋(𝑎|𝑠) là cần thiết.
𝑄𝜋 (𝑠, 𝑎) = 𝐸𝑠′~𝑃(𝑠′|𝑠,𝑎) [𝑅(𝑠, 𝑎, 𝑠 ′ ) + 𝛾𝐸𝑎′~𝜋 𝑄𝜋 (𝑠 ′ |𝑎′)]
- Sau khi đã có được những công thức trên, tiếp theo ta sẽ đưa ra được
cơng thức để tính giá trị tối ưu của hàm giá trị trạng thái:
𝑉 ∗ (𝑠) = max 𝐸𝑠′~𝑃(𝑠′|𝑠,𝑎) [𝑅(𝑠, 𝑎, 𝑠 ′ ) + 𝛾𝑉 ∗ (𝑠′)]
𝑎

+ Thay vì trả về giá trị kỳ vọng của một trạng thái trên một policy, hàm
này sẽ lấy giá trị lớn nhất của trạng thái s thông qua việc cân nhắc tất cả hành
động có thể thực hiện. Ví dụ, chúng ta đang ở trong 1 trạng thái s và có 3 hành
động có thể thực hiện tại trạng thái này là 0, 1, 2, giá trị tối ưu sẽ được tính như
sau:
𝐸𝑠′~𝑃(𝑠′|𝑠,𝑎) [𝑅(𝑠, 0, 𝑠 ′ ) + 𝛾𝑉 ∗ (𝑠 ′ )]
𝑉 ∗ (𝑠) = max( 𝐸𝑠′~𝑃(𝑠′|𝑠,𝑎) [𝑅(𝑠, 1, 𝑠 ′ ) + 𝛾𝑉 ∗ (𝑠 ′ )])
𝑎
𝐸𝑠′~𝑃(𝑠′|𝑠,𝑎) [𝑅(𝑠, 2, 𝑠 ′ ) + 𝛾𝑉 ∗ (𝑠 ′ )]

14


- Tương tự áp dụng cho hàm giá trị 𝑄𝜋 (𝑠, 𝑎), ta có được giá trị tối ưu của
hàm Q:
𝑄∗ (𝑠, 𝑎) = 𝐸𝑠′~𝑃(𝑠′|𝑠,𝑎) [𝑅(𝑠, 𝑎, 𝑠 ′ ) + 𝛾 max 𝑄 ∗ (𝑠 ′ |𝑎′ ′)]
𝑎′


- Và mục tiêu của phương pháp quy hoạch động cho bài tốn học tăng
cường là đi tìm giá trị tối ưu của hai phương trình trên thơng qua hai kỹ thuật là
Lặp giá trị và Lặp policy. Nhưng ta sẽ không đi sâu vào chúng.

2.2 Kỹ thuật Monte Carlo
- Monte Carlo được biết đến như một phương pháp lấy mẫu ngẫu nhiên
để tạo ra dữ liệu dùng xấp xỉ hàm tính toán. Để rõ hơn một chút, ta hãy quan sát
bài tốn tính số 𝜋 sau đây.
- Ta dùng một hình trịn có bán kính là r = 1, và đặt nó sao cho vừa khít
vào một hình vng có diện tích lớn hơn hình trịn. Diện tích của 2 hình này
tương ứng là 𝜋𝑟 2 𝑣à (2𝑟)2 . Tỉ lệ của diện tích sẽ là:
𝑑𝑖ệ𝑛 𝑡í𝑐ℎ ℎì𝑛ℎ 𝑡𝑟ị𝑛
𝜋𝑟 2
𝜋
=
=
𝑑𝑖ệ𝑛 𝑡í𝑐ℎ ℎì𝑛ℎ 𝑣𝑢ơ𝑛𝑔
(2𝑟)2 4

- Tuy nhiên ta chưa biết được giá trị của số 𝜋 nên khơng thể tính được
diện tích hình trịn. Giờ ta sẽ áp dụng Monte Carlo bằng cách tạo thật nhiều các
điểm trên hình vng sử dụng phân bố chuẩn ngẫu nhiên. Ta sẽ có được các
điểm nằm trong vịng trịn và các điểm nằm ngồi vịng trịn. Chúng phân bố
đều và hồn tồn ngẫu nhiên (tham khảo hình bên dưới). Ta sẽ lấy tỉ lệ giữa các
điểm trong hình trịn và tồn bộ các điểm trong hình vng, nó chính là tỉ lệ ta
đang tính ở trên.

15



- Lấy càng nhiều điểm thì giá trị của ta càng đúng, sau đó ta chỉ việc lấy tỉ
lệ đó nhân với 4 sẽ ra giá trị của số 𝜋.
- Tương tự, ta áp dụng phương pháp trên khi tính giá trị của hàm trạng
thái V(s). Ta lấy mẫu N episode dựa trên một policy và tính giá trị của một
trạng thái dựa trên trung bình của phần thưởng đạt được tại trạng thái đó có
được thơng qua N episode kia.
𝑁

1
𝑉(𝑠) ≈ ∑ 𝑅𝑖 (𝑠)
𝑁
𝑖=1

- Tuy nhiên ta sẽ nâng cấp một chút cơng thức trên để nó tổng qt hơn:

1

𝑉𝑁 (𝑠) ≈ ∑𝑁
𝑖=1 𝑅𝑖 (𝑠)
𝑁

=
=
=
=

1
𝑁
1
𝑁

1
𝑁

(𝑅𝑁 + ∑𝑁−1
𝑖=1 𝑅𝑖 (𝑠))
(𝑅𝑁 + (𝑁 − 1)

1
(𝑁−1)

∑𝑁−1
𝑖=1 𝑅𝑖 (𝑠))

(𝑅𝑁 + (𝑁 − 1)𝑉𝑁−1 (𝑠))

1
𝑁

(𝑅𝑁 + 𝑁. 𝑉𝑁−1 (𝑠) − 𝑉𝑁−1 (𝑠))
16


1

= 𝑉𝑁−1 (𝑠) + (𝑅𝑁 − 𝑉𝑁−1 (𝑠))
𝑁

- Ngắn gọn hơn: 𝑉(𝑠𝑡 ) = 𝑉(𝑠𝑡 ) + 𝛼(𝑅𝑡 − 𝑉(𝑠𝑡 )) (𝛼 =

1


)

𝑁(𝑠𝑡 )

- Áp dùng tương tự vào hàm giá trị Q:
𝑄(𝑠𝑡 , 𝑎𝑡 ) = 𝑄(𝑠𝑡 , 𝑎𝑡 ) + 𝛼(𝑅𝑡 − 𝑄(𝑠𝑡 , 𝑎𝑡 ))

2.3 Kỹ thuật TD learning (Temporal Difference Learning)
- Kỹ thuật Monte Carlo có một hạn chế rất rõ ràng là nó bắt ta phải biết
được giá trị của trạng thái tiếp theo, tức là nếu muốn tính tốn giá trị của 1 trạng
thái s tại thời điểm t thì ta phải đi hết một episode. Như vậy khá tốn thời gian và
đặc biệt là nếu áp dụng vào các bài toán mà để đạt được giá trị kết thúc là không
thể hoặc không có giá trị kết thúc thì thuật tốn này hồn tồn vơ dụng.
- Thay vì phải đi hết episode, ta ước lượng giá trị của trạng thái tiếp theo
nhờ vào phương pháp TD Learning.
𝑉(𝑠) ≈ 𝑟 + 𝛾𝑉(𝑠′)
- Thay vào công thức của Monte Carlo ta được:

𝑉(𝑠) = 𝑉(𝑠) + 𝛼(𝑟 + 𝛾𝑉(𝑠′) − 𝑉(𝑠))

+ 𝑟 + 𝛾𝑉(𝑠′) − 𝑉(𝑠) được gọi là TD error.

- SARSA là thuật toán học tăng cường sử dụng kỹ thuật TD learning
nhưng thay vì học trên hàm giá trị V thì nó sử dụng hàm giá trị Q để tính tốn:
𝑄(𝑠, 𝑎) = 𝑄(𝑠, 𝑎) + 𝛼(𝑟 + 𝛾𝑄(𝑠 ′ , 𝑎′) − 𝑄(𝑠, 𝑎))

17



2.4 Q-learning
- Trong thuật toán SARSA, ta lựa chọn hành động a tại trạng thái s nhờ
sử dụng một policy cho trước và khi đến được trạng thái s’ ta vẫn sử dụng
policy đó để lựa chọn hành động a’. Đó gọi là phương pháp On-Policy.
- Tuy nhiên, sau đây chúng ta sẽ sử dụng thuật tốn Q-learning thay vì
dùng phương pháp on-policy, ta dùng off-policy. Tức là ta sẽ lựa chọn hành
động cho trạng thái s dựa trên một policy (thường là epsilon-greedy) nhưng ta
lựa chọn hành động a’ cho trạng thái s’ bằng policy khác (greedy policy).

𝑄(𝑠, 𝑎) = 𝑄(𝑠, 𝑎) + 𝛼(𝑟 + 𝛾 max 𝑄(𝑠 ′ , 𝑎′) − 𝑄(𝑠, 𝑎))
𝑎′

+ Chúng ta dùng hàm max để chọn ra hành động a’ mà có giá trị Q là lớn
nhất. Giống như ta từng làm ở phần Quy Hoạch Động.
+ Dưới đây là thuật toán cho kỹ thuật Q-Learning:
1. Khởi tạo hàm Q(s,a) với giá trị là ngẫu nhiên.
2. for each episode:
1. Chọn policy cho episode này, chọn hành động a tại trạng thái s.
2. Thực hiện hành động a và di chuyển đến hành động s’, nhận
được phần thưởng r.
3. Cập nhật giá trị Q dùng công thức
𝑄(𝑠, 𝑎) = 𝑄(𝑠, 𝑎) + 𝛼(𝑟 + 𝛾 max 𝑄(𝑠 ′ , 𝑎′) − 𝑄(𝑠, 𝑎))
𝑎′

4. Cập nhật s = s’ (gán giá trị của trạng thái tiếp theo cho trạng thái
hiện tại)
5. Nếu s không phải trạng thái kết thúc, lặp lại từ bước 1 đến
bước 5.

2.4 Deep Q-Network

- Ở các thuật tốn trước, mỗi lần tính toán được giá trị Q ta lại phải cập
nhật chúng ở trong một bảng giá trị như sau (các giá trị trong bảng là giả định):

18


State
A
A
B

Action
up
down
up

Value
17
10
20

- Vậy giả sử chúng ta có một mơi trường với 1000 trạng thái và 50 hành
động, thì bảng giá trị sẽ có 50000 hàng để chứa hết tất cả cặp giá trị trên. Đây
chắc chắn là một phương pháp ngờ nghệch và tốn kém thời gian.
- Ngày nay với sự phát triển của các thuật toán học sâu, mạng nơ ron, ta
có thể xử lý bài tốn này đơn giản hơn. Trong bài toán Q-learning, ta sẽ sử dụng
mạng nơ ron ảo với các tham số 𝜃 để tính tốn giá trị Q với đầu vào là các thơng
số của một trạng thái. Chúng ta cũng có ký hiệu mới cho hàm giá trị Q:
𝑸𝜽 (𝒔, 𝒂).
a. Replay Buffer

- Để train một mơ hình thì ta cần có dữ liệu, vậy dữ liệu ở đâu. Ta
sẽ sử dụng một cấu trúc dữ liệu dạng deque để lưu trữ các trải nghiệm mà
tác tử từng trải qua. Nó gọi là Replay Buffer.
b. Hàm mất mát (Loss Function)
- Nhắc đến machine learning hay deep learning thì khơng thể
khơng nói đến loss function hay hàm mất mát. Hàm mất mát hay được sử dụng
là MSE (mean squared error). Được định nghĩa là trung bình phương của độ sai
lệch giữa giá trị đích (giá trị cần đạt được) và giá trị ước lượng:
𝐾

1
𝑀𝑆𝐸 = ∑(𝑦𝑖 − 𝑦̂𝑖 )2
𝐾
𝑖=1

+ Và mục tiêu của chúng ta là tối thiểu hóa giá trị của hàm mất mát.
- Ta sử dụng Q tối ưu 𝑄∗ (𝑠, 𝑎) có được ở phần Quy Hoạch Động làm giá
trị đích, như vậy hàm mất mát chính là hiệu của giá trị tối ưu 𝑄 ∗ (𝑠, 𝑎) với giá trị
ước lương Q(s,a):
𝐿(𝜃) = 𝑄 ∗ (𝑠, 𝑎) − 𝑄𝜃 (𝑠, 𝑎)
19


Hay:
𝐿(𝜃) = 𝑟 + 𝛾 max 𝑄(𝑠 ′ , 𝑎′) − 𝑄𝜃 (𝑠, 𝑎)
𝑎′

- Giống như việc tính tốn giá trị ước lượng 𝑄𝜃 (𝑠, 𝑎) ta sử dụng mạng nơ
ron ảo có cùng tham số 𝜃 để tính giá trị của 𝑄(𝑠 ′ , 𝑎′), ta viết lại:
𝐿(𝜃) = 𝑟 + 𝛾 max 𝑄𝜃 (𝑠 ′ , 𝑎′) − 𝑄𝜃 (𝑠, 𝑎)

𝑎′

- Nếu chỉ tính tốn giá trị mất mát của một trạng thái của một thời điểm
thì khơng hữu dụng mấy. Mà theo như định nghĩa của MSE, nó thực hiện tính
tốn trên nhiều mẫu dữ liệu, để tận dụng được dữ liệu có được. Để làm được
điều đó, ta sẽ sử dụng Replay Buffer mà ta đã nêu ở bên trên. Từ các trải
nghiệm được lưu trữ trong Replay Buffer, ta lấy ra một tập nhỏ các mẫu dữ liệu
(thường thì là 64) để sử dụng để tính tốn hàm mất mát:
𝐾

1
𝐿(𝜃) = ∑( 𝑟𝑖 + 𝛾 max 𝑄𝜃 (𝑠 ′ 𝑖 , 𝑎′) − 𝑄𝜃 (𝑠𝑖 , 𝑎𝑖 ))2
𝑎′
𝐾
𝑖=1

- Để tối thiếu giá trị mất mát 𝐿(𝜃), ta cần đi tìm tham số tối ưu 𝜃. Ta sử
dụng gradient descent để tìm cực tiểu của hàm 𝐿(𝜃). Sau khi đã tính tốn được
gradient của 𝐿(𝜃) là ∇𝜃 𝐿(𝜃) và cập nhật giá trị của tham số 𝜃:
𝜃 = 𝜃 − 𝛼∇𝜃 𝐿(𝜃)
- Tuy nhiên chúng ta lại gặp một vần đề nữa về tham số 𝜃. Giá trị đích và
giá trị ước lượng dùng chung một bộ tham số 𝜃, có nghĩa là sau mỗi lần tính
tốn mạng nơ ron của cả hai đều thay đổi. Điều này khơng hề tốt chút nào. Vì ta
sử dụng gradient để đi tìm điểm cực tiểu – đây nên là một điểm có định. Nhưng
sau mỗi lần 𝜃 thay đổi thì điểm đó cũng thay đổi theo. Lúc này q trình
gradient descent sẽ mất đi tính hội tu.

20



- Để khắc phục sự không ổn định của giá trị đích, người ta đã đưa ra một
giải pháp. Đó là đóng băng tham số 𝜃 của hàm giá trị đích một khoảng thời gian
và sau đó lại cập nhật trở lại. Giá trị đích sẽ có một bộ tham số 𝜃′ riêng. Và sau
n vòng đời của tác tử, tham số 𝜃′ sẽ được gán bằng bộ tham số 𝜃 của giá trị ước
lượng.

𝐾

1
𝐿(𝜃) = ∑( 𝑟𝑖 + 𝛾 max 𝑄𝜃′ (𝑠 ′ 𝑖 , 𝑎′) − 𝑄𝜃 (𝑠𝑖 , 𝑎𝑖 ))2
𝑎′
𝐾
𝑖=1

❖ Bây giờ chúng ta sẽ kết hợp mọi thứ vừa học được để viết thuật
toán DQN:
1. Khởi tạo ngẫu nhiên bộ tham số 𝜃 cho mạng nơ ron chính.
2. Khởi tạo bộ tham số 𝜃′ cho mạng nơ ron của giá trị đích (copy
giá trị từ 𝜃).
3. Tạo replay buffer D.
4. For i =1, i< N (number of episode), thực hiện bước 5:
5. For t=0, ..., T-1 (lặp đến khi kết thúc 1 episode):

21


1. Quan sát trạng thái s và lựa chọn hành động sử dụng
epsilon-greedy, có nghĩa là với xác suất epsilon, chọn ngẫu
nhiên hành động a với xác suất = 1 - epsilon
a = arg max 𝑄𝜃 (𝑠, 𝑎)

𝑎

2. Thực hiện hành động a, chuyển đến trạng thái s’ và nhận
phần thưởng r
3. Lưu thông tin (s,a,s’,r) vào trong replay buffer D.
4. Lấy mẫu ngẫu nhiên K thông tin từ buffer D.
5. Tính giá trị đích: 𝑦𝑖 = 𝑟𝑖 + 𝛾 max 𝑄𝜃′ (𝑠′𝑖 , 𝑎′)
𝑎′

1

2
6. Tính giá trị mất mát: 𝐿(𝜃) = ∑𝐾
𝑖=1( 𝑦𝑖 − 𝑄𝜃 (𝑠𝑖 , 𝑎𝑖 ))
𝐾

7. Tính gradient của hàm mất mát và cập nhật bộ tham số 𝜃
dựa vào công thức: 𝜃 = 𝜃 − 𝛼∇𝜃 𝐿(𝜃)
8. Không cập nhật giá trị tham số 𝜃’ trong một khoảng thời
gian và cập nhật nó bằng cách copy giá trị của tham số 𝜃.

2.5 Double DQN
- Sử dụng max để tìm hành động có giá trị lớn nhất đem đến cho chúng ta
một vấn đề mới: overestimation – đánh giá quá cao hành động đó. Và sau đây là
giải pháp cho vấn đề này:
𝑦 = 𝑟 + 𝛾𝑄𝜃′ (𝑠′, 𝑎𝑟𝑔 max 𝑄𝜃 (𝑠′, 𝑎′))
𝑎′

2.6 Dueling DQN
- Hàm lợi thế được định nghĩa là hiệu giữa hai giá trị Q và giá trị V:

𝐴(𝑠, 𝑎) = 𝑄(𝑠, 𝑎) − 𝑉(𝑠)

- Ta đã biết: hàm Q tính lợi ích của việc thực hiện hành động a tại trạng
thái s. Trong khi đó, hàm V cho ta biết lợi ích tác tử đạt được bắt đầu từ 1 trạng
22


thái s và di chuyển theo policy. Vậy hàm lợi thế cho ta biết lợi ích của việc thực
hiện hành động a so với trung bình lợi ích đạt được ở trạng thái s.
- Phương pháp Dueling DQN sẽ tận dụng hàm lợi thế này và sử dụng nó
để tính giá trị của hàm Q:
𝑄(𝑠, 𝑎) = 𝑉(𝑠) + 𝐴(𝑠, 𝑎)

- Vậy lợi ích của phương pháp này là gì? Giả sử ở một vài trạng thái s, ta
có 20 hành động và ta có thể lựa chọn 1 trong số chúng để thực hiện. Tuy nhiên
tính tốn giá trị Q của tồn bộ 20 hành động này khơng được hữu ích lắm. Bởi
vì có nhiều hành động khơng có tác dụng gì ở trạng thái đó và có thể chúng có
cùng 1 giá trị Q.
- Nên, tính tốn giá trị Q dựa vào công thức trên sẽ cho ta biết được một
hành động bất kỳ có quan trọng hay khơng hay là nó đem lại giá trị giống với
các hành động khác. Từ đó ta có cách tổ chức mơ hình mới để tính tốn giá trị
Q.

- Ta cũng viết lại hàm Q(s,a) như sau:
1
𝑄(𝑠, 𝑎) = 𝑉(𝑠) + (𝐴(𝑠, 𝑎) − (∑ 𝐴(𝑠, 𝑎′))
Β
𝑎′

23



+ Trong đo B là số lượng hành động.
- Bởi vì mạng tính tốn của V và A đều có tham số nên ta có cơng thức
cuối cùng:
1
𝑄(𝑠, 𝑎; 𝜃, 𝛼, 𝛽) = 𝑉(𝑠; 𝜃, 𝛽) + (𝐴(𝑠, 𝑎; 𝜃, 𝛼) − (∑ 𝐴(𝑠, 𝑎′ ; 𝜃, 𝛼))
Β
𝑎′

+ 𝛼 là tham số của hàm lợi ích và 𝛽 là tham số của hàm giá trị V.

24


CHƯƠNG 3: ÁP DỤNG HỌC TĂNG CƯỜNG VÀO
GAME MARIO

3.1 Bài toán cần xử lý
- Bài toán mà chúng ta sẽ dùng để áp dụng các thuật toán học tăng cương
là tạo ra một agent có khả năng chơi game như con người.

3.2 Môi Trường và Dữ Liệu
1. Không gian hành động
- Mario có thể thực hiện được những hành động sau đây trong mơi
trường:








NOOP: khơng làm gì cả
A: nhảy
Down: cúi xuống
Up: nhảy qua ống
Right: di chuyển sang phải
Right+A: nhảy hoặc bơi trong khi đang di chuyển
sang phải
• Right+B: lướt hoặc bắn ra cầu lửa
• Right+A+B: kết hợp hai hành động trên
2. Tác tử: Mario
- Mario có ba trạng thái: “small”, ”tall”, “fireball”. Anh ta có thể nâng
cấp lên “tall” bằng cách ăn nấm, và lên “fireball” nếu ăn hoa. Anh ấy sẽ
bí biến thành “small” nếu như đụng phải đám quái. Khi Mario ở trạng
thái “tall”, anh ấy cao gấp đôi khi ở dạng “small” và ở dạng “fireball” anh
ấy có thể bắn ra lửa.
3. Mơi Trường
- Mơi trường là một thành phần khơng thể thiếu của các bài tốn học tăng
cường. Mơi trường ở trong Mario chính là màn hình game, là tất cả những gì
người chơi quan sát được qua màn hình máy tính.
25


×