Reinforcement

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 13

Vấn đề cần giải quyết của Reinforcement learning.

Ý tường khởi nguồn của RL là từ cách thức học thuần tự nhiên nhất của con người hoặc loài vật. Khi
mà ta gặp các vấn đề chưa từng xuất hiện trước đây hoặc gặp các trường hợp tương tự một vấn đề
nào đó, dù không có bất kì một sự hướng dẫn nào ta vẫn có thể hoàn thiện công việc ở một mức độ
nhất định.

Do sự tò mò về cách thức hoạt động bên trên mà RL đã được các nhà khoa học tìm hiểu và nghiên cứu
cho đến thời điểm hiện tại. Nói tóm gọn có thể hiểu RL là một phương pháp học tập dựa trên sự
tương tác giữa các chủ thể với nhau, về cách thức mà chủ thể học tập chính (đang nói tới agent) nhìn
nhận môi trường hiện tại và đưa ra các quyết định ảnh hưởng tới tương lai.

Hiện tại chúng ta sẽ đi vào cách thức tiếp cận thuần tính toán mà không đi quá sâu vào cách mà các
loài động vật nói chung, hay các chủ thể nói riêng học tập. Trong khoá học này, chúng ta sẽ tìm hiểu
về cách thức hoạt động của các thuật toán, qua đó đánh giá và đưa ra góc nhìn tổng thể về phương
pháp RL.

1.1 Reinforcement Learning.

Reinforcement Learning cũng giống với các phương pháp học tập kết thúc bằng đuôi -ing khác, đây
đều là chỉ các quá trình liên tục và có thể là vô hạn. Các vấn đề của RL được xây dựng và phát triển để
có thể map các situations với actions với mục tiêu tối đa hoá các tín hiệu Rewards. Bằng một cách
hiểu khác, RL là một phương pháp close-loop với các điều kiện:
- Không có hướng dẫn cụ thể.
- Gồm một chuỗi các hành động và rewards.
- Kết thúc với một điều kiện cụ thể.

Có một điều khác biệt khá lớn của RL đối với các phương pháp học phổ thông ngày nay, khi mà các
thuật toán về supervise learning hay unsupervise learning đều phải dựa trên một tập dữ liệu cụ thể
thì RL lại dựa trên interactions giữa các đối tượng với nhau. Điều này dẫn đến RL có thể tự phát triển
với nhiều tình huống khác nhau mà không hoàn toàn bị phụ thuộc vào dữ liệu được cung cấp.

Một trong những thử thách lớn nhất của RL là sự trade-off giữa exploration và exploitation. Để có thể
tối ưu được reward, agent cần phải đưa ra các lựa chọn trong việc sẽ tìm kiếm các hướng đi khác hay
thử nghiệm các hướng đi cũ được cho là tốt. Nếu ta chỉ lựa chọn explore không thì agent sẽ không thể
tìm được đâu mới là hướng đi tốt nhất còn chỉ chọn exploit sẽ giới hạn khả năng của agent. Đây được
gọi là exploration-explotation dilemma, dilemma này đã được tìm hiểu và nghiên cứu cho đến tận
thời điểm hiện tại và việc đưa ra một phương án cụ thể để cân bằng giữa exploration và exploitation
vẫn đang là một vấn đề hóc búa. *Note: dilemma này không xuất hiện trong bài toán supervise hay
unsupervise, ít nhất là trong trạng thái thuần chủng nhất.

Các thành phần trong Reinfocement Learning.

Trước khi nói đến Agent và Environment chúng ta sẽ nói về 4 thành phần chính trong hệ thông RL là:
- Policy (chính sách): policy được hiểu là hướng đi của agent trong một thời điểm cụ thể,
nhìn sâu xa hơn thì policy chính là cách ta map giữa trạng thái hiện tại của môi trường với
một hành động cụ thể. Trong tâm lý học đây được gọi là “Set of stimulus-respone rules of
associations”. Trên thực tế, policy có thể là một phương trình cơ bản, có thể là một look-up
table, với các trường hợp phức tạp hơn nó có thể là một chuỗi các quá trình tính toán phức
tạp,… Trong RL, policy là một cách thức chủ quan để ta đánh giá behavior của agent.
- Reward (reward signal): Đây được đánh giá là mục tiêu của RL, với mỗi một step, môi
trường sẽ trả về cho agent giá trị gọi là reward. Mục tiêu của agent sẽ là tối ưu hóa total
reward trong một chuỗi các hành động (a long run). Với một góc nhìn tổng quan hơn,
reward là một giá trị thể hiện sự tốt hoặc xấu của trạng thái môi trường hiện tại đối với
agent. Đặt trong sinh học thì đây là trải nghiệm tốt hoặc xấu đối với một vấn đề. Trong thực tế, đây
chỉ là trải nghiệm nhất thời và sẽ coi reward là thể hiện cho các trạng thái tức thì.
- Value Function: khác với reward, value function sẽ rất phù hợp với long run. Nói chính xác,
value của một state là total amount of reward mà agent có thể đạt được tích lũy trong tương
lai, bắt đầu từ state hiện tại. Khi mà reward được xác định là ngay lập tức thì value lại mang
tính quyết định trong một tương lai xa hoặc gần. Điều này dẫn đến có thể có một state có
reward low nhưng vẫn có value high. *Note: reward là giá trị cố định còn value sẽ phải
estimate và re-estimate dựa trên các hành động mà agent đã đưa ra.
- Model of environment: Đây được coi là cách thức chúng ta sao chép lại các trạng thái của
trường, thể hiện môi trường sẽ có behavior như thế nào. Với ví dụ khi ta có một cặp state và
action, model sẽ đưa ra dự đoán về state tiếp theo nào reward nhận được. Model thường
được sử dụng trong planning, do chúng ta cũng cần cân nhắc giữa việc thực hiện một hành
động sẽ thay đổi trạng thái trong tương lai bằng cách cân nhắc giữa các state và reward dự
đoán. Các phương pháp sử dụng model được gọi là model-base methods, ngược lại là model-
free methods.

Tabular methods.

Trong phần này, chúng ta sẽ đi vào ý tưởng thuần của RL trong trạng thái cơ bản nhất, khi mà state và
action space đủ để các values có thể lưu trữ vào trong array hoặc bảng. Trong các dạng như này,
thông thường RL sẽ có thể tìm được chính xác action tối ưu trong hầu hết các state.

Multi-arm bandit.

N-armed bandit problems.

Đặt trường hợp như sau, bạn gặp một trường hợp lặp lại liên tục giữa việc chọn giữa n trường hợp.
Sau một lần bạn chọn sẽ được thưởng một điểm bất kì, công việc của bạn là phải lựa chọn các hành
động ra sao để tối ưu hóa được điểm của mình sau một chu kì nhất định.

Ví dụ: An có 2 nút bấm, một nút bấm màu đỏ và một nút bấm màu xanh. Với mỗi một lần bấm nút
màu đỏ, bạn sẽ nhận được ngẫu nhiên [0, 1, 2] cái kẹo, với mỗi lần bấm nút màu xanh bạn sẽ nhận
được ngẫu nhiên [0, 0, 0, 1, 4] cái kẹo. Hãy đưa ra lựa chọn sao cho khi bạn bấm 10 lần sẽ được nhiều
kẹo nhất. (trong trường hợp này chúng ta coi như các giá trị ngâu nhiên là không biết.)

Action-Value Methods.

Bây giờ, chúng ta sẽ xem qua một vài phường pháp đơn giản để có thể dự đoán được values của tập
hành động (actions) và sử dụng nó để đưa các quyết định cho việc lựa chọn hành động sau này. Trong
phần này, chúng ta sẽ xác định true (actual) value của hành động a là q(a), và estimated value trong
bước thứ t là Qt(a). Nhận định rằng, giá trị true value của một hành động sẽ là giá trị trung bình nhận
được khi lựa chọn một hành động. Một trong những phương pháp phổ thông để xác định giá trị này
chính là phương pháp tính giá trị trung bình reward khi một hành động được lựa chọn. Với cách hiểu
khác, nếu trong bước thứ t, hành động a được chọn Nt(a) lần cho tới thời gian t, khởi tạo lên một
chuỗi R1, R2, …, Rnt(a), thì value sẽ được dự đoán bằng công thức:

Nếu Nt(a) = 0, thì ta sẽ đặt Qt(a) bằng một giá trị mặc định nào đó, có thể là bằng 0. Với Nt(x) tiếng tới
vô cùng, bởi lý thuyết của của đại số, Qt(x) sẽ hội tụ về q(a). Đây được gọi là phương pháp sample-
average cho dự đoán action values do mỗi lần đưa ra dự đoán là một lần dự đoán action values, và nó
không hoàn toàn cần đến giá trị tốt nhất. Mặc dù vậy thì ta vẫn sử dụng phương pháp đơn giản trên
để đưa ra các lựa chọn cho hành động.

Một trong các phương pháp nhất trong việc xây dựng lên cách lựa chọn action là chọn action với giá
trị action value là lớn nhất, để lựa chọn hành động trong bước t của các greedy actions, A*t, với mỗi
. Hành động lựa chọn greedy action này có thể viết dựa dạng:
Trong này, ta xác định là argmaxa là value của a tại Qt(a) là tối ưu. Các greedy action được lựa chọn
luôn luôn exploits các kiến thức hiện có để có thể tối đa hóa giá trị reward tức thời. Nó sẽ không mất
quá nhiều thời gian để có thể lấy được các mẫu thử từ các tập hành động đã làm trước đó để xác định
action đó có phải là tốt nhất hay không. Một các tiếp cận đơn giản là nó sẽ đưa ra các hành động
greedy hầu hết các lần thử, và chỉ một vài lần nho nhỏ, với một giá trị epsilon thấp sẽ đưa ra các hành
động ngẫu nhiên trong các hành động có xác xuất với actions values dự đoán (exploits). Phương pháp
này được gọi là near-greedy action selection rule (luật lựa chọn hành động bán tham lam :D) e-greedy
methods. Có một ưu điểm của phương pháp trên là với số lần giới hạn của số lần thử không ngừng
tăng lên, mỗi một hành động sẽ được lựa chọn tiến đến vô hạn lần, dẫn đến Nt(a) -> vô cùng với mọi
a, và điều này sẽ đảm bảo rằng mọi Qt(a) sẽ hội tụ về q(a).

The 10-armed Testbed.

Để có thể thử nghiệm được tính hiệu quả của greedy và e-greedy action-value methods, Chúng ta sẽ
so sánh trên một tập các test problems. Đây là một tập gồm 2000 bài k-armed bandit ngẫu nhiên với
k=10. Với mỗi một bài thì action values q*(a), a = 1, …, 10 sẽ được lựa chọn ngẫu nhiên trong một hệ
normal (gaussian) distribution với mean 0 và varian 1.

Sau đó, khi mà phương pháp đựa lựa chọn đưa vào để lửa chọn action At tại thời điểm t, giá trị
reward thực tế Rt sẽ được lựa chọn ngẫu nhiên bằng bộ normal distribution với mean q*(At) và
variance 1. (nhìn vào hình 2.1)

Với mỗi một phương pháp được sử dụng, chúng ta sẽ tính toán performance và behavior trong khi nó
liên tục improve trong 1000 time steps của 1 trong những bandit problems, đây được gọi là 1 run (về
sau sẽ đổi cách gọi thành episode). Liên tục lặp lại nó trong 2000 run chạy độc lập, chúng ta sẽ đo
được average behavior.

Incremental Implementation.

Trong các action-value methods mà chúng ta đã đề cập đến thì ta đều estimate các action values là
sample averages của các rewards thu được. Bây giờ, ta sẽ ta sẽ chuyển đổi câu hỏi làm thế nào tính
trung bình một cách hiệu quả nhất, trong thực tế là với constant memory và constant per-time-step
computation. (nói chung là cái này dễ)
Tracking a Nonstationary Problem.

Với phương pháp tính trung bình mà ta đã đề cập tới bên trên là dành cho các bài toán station bandit,
là những bài toán mà xác xuất reward không hề thay đổi theo thời gian. Như chúng ta đã đề cập tới,
phương pháp trên hầu như không hiệu quả đổi với vác bài toán bất định hình (Nonstationary). Trong
các trường hợp đó, nó sẽ hợp lý hơn nếu ta đánh trọng số vào các reward gần và hiện tại hơn là các
reward nhận được trong quá khứ. Một trong những phương pháp làm phổ thông nhất hiện nay là sử
dụng một hằng số step-size. Cho ví dụ, trong Incremental update rule cho cập nhật các giá trị trung
bình Qn của reward n-1 có thể thay đổi thành

Trong này thì giá trị tham số alpha thuộc (0, 1] là hằng số. Kết quả của Qn+1 sẽ được tính toán bằng
trung bình rewards trong quá khứ và giá trị khởi tạo Q1:

n
n −i
Chúng ta sẽ gọi là weighted average vì tổng của các trọng số là (1 −α ) +
n
∑ α (1 − α ) =1 ,bạn có
i=1
thể tự kiểm chứng. Lưu ý rằng trọng số, α (1 −α )n − i, thay đổi Ri phụ thuộc vào đã có bao nhiêu
reward trước đó, n - i, như đã quan sát. Với số lượn 1 - alpha là nhỏ hơn 1, và trọng số của Ri giảm
dần số lần nhận được rewards. Trong thực tế, giá trị trọng số giảm exponentially dựa vào exponent
trong 1 - alpha. (Nếu 1 - alpha = 0, thì thất cả trọng số sẽ được đánh vào reward mới nhất, Rn, bởi vì
chúng ta xác nhận rằng 0^0 = 1). Cũng chính vì vậy mà phương pháp này đôi khi được gọi là
exponential recency-weighted average.

Đôi khi nó là cần thiết khi mà ta thay đổi tham số step-size với mỗi một step. Hãy đặt α n (a) là giá trị
step-size được sử dụng để tính toán reward nhận được sau lần thứ n lựa chọn hành động a. Chúng ta
1
sẽ lưu ý, lựa chọn α n (a)= là kết quả trong sample-average method, được xác nhận là hội tụ tới
n
true action values bởi định lý đại số. Điều đáng buồn là sự hội tụ không được đảm bảo với mọi lựa
chọn của chuỗi {α n (a) }. Một kết quả phổ biến trong stochastic approximation theory đưa ra cho
chúng ta một điều kiện để đảm bảo sự hội tụ với xác xuất 1:

inf inf

∑ αn (a)=inf and ∑ α2n (a)< inf


n =1 n =1
Điều kiện đầu tiên là cần thiết để xác nhận rằng các steps là đủ lớn để vượt qua được mọi điều kiện
khởi tạo hay sự biến động ngẫu nhiên. Điều kiện thứ hai là điều cần để xác nhận rằng các steps sẽ trở
nên đủ nhỏ để đảm bảo sự hội tụ.

1
Lưu ý rằng, cả hai điều kiện hội tụ đều được thoả mãn trong sample-average case, α n (a)= , nhưng
n
không phải là dành cho các trường hợp mà step-size là hằng số, α n (a)=α . Trong trường hợp này,
điều kiện thứ hai không được thỏa mãn, xác nhận rằng việc dự đoán sẽ không vào giờ hoàn toàn hội
tụ nhưng sẽ liên tục thay đổi để thỏa mãn với các rewards nhận được gần nhất. Cũng như là đã nói
bên trên, điều này là có thể quyết định được ở trong các nonstationary environment, và vấn đề mà
effectively nonstationary là điều hết sức phổ biến trong các bài toán reinforcement learning. Đề cập
thêm, chuỗi step-size đã thỏa mãn các điều kiện trên thường sẽ hội tụ khá chậm hoặc là cần các
phương pháp tunning để có thể nhận được một tốc độ hội tụ đủ tốt. Mặc dù vậy, các chuỗi step-size
mà thỏa mãn điều kiện hội tụ thường sẽ được sửu dụng trong các vấn đề về lý thuyết và ít khi được
sử dụng trong ứng dụng thực tế hoặc nghiên cứ thực nghiệm.

Optimistic Initial values.

Tất cả các phương pháp mà chúng ta thảo luận ở bên trên đến thời điểm hiện tại đều phụ thuộc vào
một vài giá trị trong việc lựa chọn giá trị khởi tạo trong việc dự đoán action-value, Q1(a). Trong lý
thuyết của xác xuất thống kê, những phương pháp này thường bị biased bởi chính những giá trị khởi
tạo đó. Lấy ví dụ trong sample-average methods, sự thiên vị(bias) chỉ mất đi khi mà tất cả các actions
được lựa chọn ít nhất 1 lần, nhưng với hằng số alpha, sự thiên vị này là vĩnh cửu trong toàn bộ tiến
trình giảm dần theo thời gian. Trong thực chiến, sự thiên vị này thường không là vấn đề mà đôi khi có
thể đem lại một vài lợi ích nhất định. Ngược lại là giá trị dự đoán khởi tạo là phải chịu sự chi phối của
user, nếu chỉ đặt tất cả chúng về 0. Điều tốt là nó có thể cung cấp một vài kiến thức có sẵn nhằm hỗ
trợ một mức độ rewards nào đó.

Tự khởi tạo action values có thể sử dụng như là một cách đơn giản để ủng hộ exploration. Giả sử rằng
thay vì ta set các giá trị khởi tạo cho action values là 0, giống như trong 10-armed testbed, thì chúng
ta đặt tất cả là +5. Trả về là q*(a) trong bài toán trên được lựa trọn với normal distribution có mean 0
và variance 1. Với giá trị khởi tạo là +5 đã đưa về một trạng thái khá tối ưu. Đây là việc tối ưu việc ủng
hộ cho action-value methods explore. Điều này dẫn tới việc mà reward trong giai đoạn đầu khởi tạo
sẽ thấp hơn. Kết quả là tất cả các actions đều được thử một vài lần trước khi mà reward hội tụ. Hệ
thống sẽ làm một vài exploration kể cả khi hành động greedy được lựa chọn.

Upper-Confidence-Bound Action Selection.

Exploration là cần thiết bởi vì sẽ luôn có một sự không chắc chắn về accuracy của việc dự đoán action-
value. Phương pháp greedy luôn tìm kết quả tốt nhất tới thời điểm hiện tại, nhưng một vài actions
khác có thể đem lại hiệu quả tốt hơn. E-greedy lựa chọn các hành động để ép buộc các non-greedy
actions được trải nghiệm, nhưng tránh lựa chọn bừa bãi, với các hành động mà sấp xỉ giá trị greedy sẽ
không được lựa chọn một cách thường xuyên. Nó sẽ có thể trở nên tốt hơn với các non-greedy
actions dựa vào tiềm năng mà chúng có thể trở thành tối ưu, sẽ đỡ mất thời gian hơn cho các giá trị
sấp xỉ nhau đều được tối ưu. Một trong những cách hiệu quả để làm điều này là lựa chọn hành động
dựa trên

At =argmax a [Qt (a)+c


√ ln t
N t (a)
]
Ở đây với lnt được hiểu là natural logarithm của t, Nt(a) là số lần mà action a được lựa chọn cho tới
thời điểm t, và c > 0 xác định góc của exploration. Nếu Nt(a) =0, thì a sẽ được lựa chọn là hành động
cần tối ưu.

Ý tưởng của upper confidence bound (UCB) action selection sẽ là trạng thái căn bậc hai khi đo lường
sự không chắc chắn của variance trong việc dự đoán các a value. Xác định value của action a với c
được xác định là mức độ tự tin. Mỗi lần a được lựa chọn, thì sự không chắc chắn sẽ được giảm đi:
Nt(a) tăng lên (Nt(a) là mẫu số), sự không chắc chắn sẽ giảm xuống. Nói một cách khác với mỗi lần
action khác a được lựa chọn, t tăng lên nhưng Nt(a) thì không, bởi vì t được xác định trên tử số, sự
không chắc chắn sẽ được tăng lên. Việc sử dụng natural logarithm mang ý nghĩa rằng giá trị này sẽ
giảm dần theo thời gian, nhưng sẽ không có giới hạn. Mọi hành động sẽ đều được lựa chọn nhưng các
hành động sẽ có giá trị dự đoán thấp hơn, hoặc là có thể hiểu rằng chúng đã được lựa chọn một cách
đồng đều và sẽ mức độ thường xuyên được lựa chọn sẽ giảm dần theo thời gian. Note: các setting
nâng cao của UCB action selection thường không khả thi trong thực chiến.

Gradient Bandit Algorithms.

Đến thời điểm hiện tại, chúng ta đã đề cập tới các phương pháp dự đoán action values và sử dụng
những dự đoán đó cho việc lựa chọn hành động. Đây thường là một cách tiếp cận tốt nhưng nó không
phải cách tiếp cận duy nhất. Ở phần này, chúng ta sẽ cân nhắc đến sự ưa thích số học cho từng action
a, được xác định là Ht(a) thuộc R. Với sự ưa thích càng lớn thì sự thường xuyên trong việc lựa chọn
action đó càng nhiều, chúng ta cũng cần hiểu rằng sự ưa thích không đánh đồng với reward. Chỉ có sự
ưu tiên giữa các hành động với nhau là mang ý nghĩa quan trọng, nếu ta cho thêm 1000 cho tất cả sự
ưa thích action thì nó hoàn toàn không hề gây ra ảnh hưởng tới phân phối xác xuất của action, điều
này được xác định dựa vào softmax distribution.
H t (a)
e
Pr { A t =a }= k
=π t (a)
∑e H t (b )

b=1
Ở đây chúng ta cũng đề cập tới một kí hiệu quan trọng khác là π t (a), dành cho xác xuất để thực hiện
hành động a tại t. Khởi tạo tất cả sự ưa thích với các action là như nhau (vd H1(a) = 0 for a in A) điều
này dẫn tới các hành động đều có xác xuất là như nhau trong việc được lựa chọn.

Có phương pháp natural learning algorithm dành cho softmax action preferences (sự ưu tiên) dựa
trên ý trưởng của stochastic gradient ascent (ngược lại với decent). Ở mỗi step, sau khi thực hiện một
action At và nhận được Rt, giá trị action preferences được cập nhật bởi công thức
(2.12)
Ở đây thì giá trị α > 0 là tham số step-size, và Rt ∈ ℝ là trung bình của rewards tới thời điểm trước t
(không có Rt) có thể dễ dàng được tính bằng công thức incremental. Rt được định là baseline mà các
reward được so sánh với. Nếu mà reward là cao hơn mốc, thì xác xuất lấy At trong tương lai được gia
tăng và nếu reward ở dưới mốc thì xác xuất sẽ giảm. Các hành động không được lựa chọn sẽ di
chuyển theo hướng ngược lại. (Mình có thể hiểu dựa trên phân phối softmax)

Trong ảnh 2.5 đã đưa ra được kết quả của thuật toán gradient bandit dựa trên bài toán 10 armed
test-bed với giá trị reward chính xác được lựa chọn vẫn trên nền Normal Distribution với mean +4
thay vì 0 (variance giữ nguyên). Chúng ta muốn đẩy giá trị này lên để tất cả rewards đều không có bất
kì sự ảnh hưởng nào lên thuật toán gradient bandit bởi reward của baseline(ngưỡng) term, để có thể
ngay lập tức hòa nhập được với mức mới. Ngược lại, nếu baseline bị lược bỏ thì performance sẽ bị
giảm một cách đáng kể.

Giải thuật cho Bandit Gradient Algorithm as Stochastic Gradient Ascent.

Một khi đã có một góc nhìn đủ sâu vào gradient bandit algorithm bằng cách hiểu nó như là một
stochastic approximation tới gradient ascent. Trong chính xác gradient ascent, mỗi action preference
Ht(a) (mức độ ưu tiên hành động) sẽ được tăng cường bằng mức tăng của ảnh hưởng hiệu suất.

∂ E[ Rt ]
H t +1 (a)=H t (a)+ α
∂ H t (a)
(2.13)

Khi mà ta tính toán performance là expected reward:

E [Rt ]=∑ π t (x)q ∗( x )


x

Thước đo hiệu quả nhất cho sự biến đổi này chính là partial derivative của chính performance này với
action preference. Và tất nhiên, điều này là bất khả thi để có thể triển khai gradient ascent một cách
chính xác trong trường hợp này do thực sự ta không hề biết giá trị q ∗ (x ), nhưng trong thuật toán
cập nhật (2.12) là tương đương với (2.13) trong value mong đợi, tạo ra một đối chiếu cho stochastic
gradient ascent. Phương pháp tính toán đưa ra chỉ cần biết một chút về tích phân nhưng cũng sẽ mất
một vài bước. Trước tiên ta sẽ sẽ nhìn vào phần exact performance gradient:
Ở đây Bt, được xác định là baseline, có thể là bất kì một scalar nào không phụ thuộc vào x. Chúng ta
có thể thêm baseline vào đây mà không thay đổi tính công bằng bởi vì tổng gradient tiến tới 0 với mọi
∂ π (x)
actions, ∑ ∂ Ht ( a) =0. Với Ht(a) thay đổi, một vào xác xuất của actions sẽ lên hoặc xuống, nhưng
x t
tổng sự thay đổi bằng 0 bởi vì tổng của xác xuất luôn bằng 1.

Tiếp đến, chúng ta nhân với π t ( x )/π t (x ):

Lúc này, equation trên đã chuyển về trạng thái mong đợi, tổng tất cả values của x của biến ngẫu nhiên
At, sau đó nhân với xác xuất của việc lựa chọn các values đó. Đưa ra:

Ở đây chúng ta lựa chọn baseline Bt =R t và thay thế Rt cho q*(At), điều này là được phép bởi vì
∂ π t (x)
E [Rt ∨ At ]=q∗ ( A t ). Tóm gọn lại chúng ta sẽ nhận định =π t (x)(1a =x − π t (a)), với
∂ H t (a)
1a= x được định nghĩa là 1 nếu a=x trong các trường hợp khác là 0. Từ đó ta có:

Ngược lại, mục tiêu của chúng ta là khởi tạo performance gradient như là một sự mong đợi của một
thứ giá đó chúng ta nhận được sau mỗi step, và như chúng ta vừa làm, chúng ta sẽ cập nhật mỗi step
với tỷ lệ của mỗi sample. Thay thế sự mong đợi của mỗi sample bên trên với performance gradient
trong (2.13):

Chúng ta cũng có thể nhận ra ngay là nó khá tương đồng với thuật toán ban đầu chúng ta nhắc tới
(2.12).

∂ π t (x )
Bây giờ, chúng ta chỉ còn cần chứng minh rằng =π (x)(1 a=x − π t (a)) thỏa mãn điều kiện
∂ H t (x ) t
đạo hàm (quy tắc thương số chuẩn cho đạo hàm):

Sử dụng công thức trên ta có thể viết:


Chúng ta đã vừa cho ra các giá trị cập nhật mong đợi của thuật toán gradient bandit là tương đương
với đạo hàm của reward mong đợi, và điều này cho thấy thuật toán này là một phân vùng nhỏ của
stochastic gradient ascent. Điều này cũng đảm bảo rằng thuật toán có tính hội tụ mạnh.

Lưu ý rằng chúng ta không cần có bất kì điều kiện nào với baseline ngoài trừ việc nó không phụ thuộc
vào hành động được lựa chọn. Lấy ví dụ, chúng ta có thể đặt nó bằng không hoặc là 1000 mà nó vẫn
sẽ là một phân vùng của stochastic gradient ascent. Việc lựa chọn cho baseline không hề ảnh hưởng
tới giá trị cập nhật kì vọng của thuật toán, nhưng mà nó sẽ ảnh hưởng tới variance (phương sai) của
việc cập nhật và tốc độ hội tụ (đã được show tỏng 2.5). Việc lựa chọn nó như là trung bình của
rewards có thể không là tối ưu nhất nhưng mà nó đơn giản và có hiệu quả tốt trong thực chiến.

Associative Search (Contextual Bandits) (Tìm kiếm có liên kết)

Như ta đã đi qua, chúng ta đã liên hệ tới các task mà không có tính liên kết, điều này có thể hiểu là ta
không cần phải liên kết các hành động khác nhau với nhiều tính huống khác nhau. Trong những task
trên, learner (hoặc là agent) luôn tìm đơn hành động tốt nhất khi mà task là cố định, hoặc là tìm kiếm
các các action tốt nhất khi mà có sự thay đổi theo thời gian với những task bất định hình. Mặc dù vậy,
trong các bài toán phổ thông của RL thì nó sẽ không chỉ có một tình huống, và mục tiêu sẽ là học được
một policy, mapping các trạng thái khác nhau với các hành động cụ thể sao cho hành động đó là tốt
nhất trong tình huống đó. Để set trạng thái cho toàn bộ vấn đề, chúng ta sẽ thảo luận cách đơn giản
nhất trong các task không liên kết, mở rộng tới các task liên kết.

Lấy ví dụ, giả sử ta có một vài task k-armed bandit, và mỗi step ta lựa chọn một task trên ngẫu nhiên.
Dẫn đến các bandit task sẽ thay đổi ngẫu nhiên trên từng step. Nếu xác xuất thay đổi của mỗi task là
cố định theo thời gian thì đây sẽ là trường hợp single stationary k-armed bandit task (task k-armed
bandit đơn cố định). Lần nữa giả sử, là khi bandit task được lựa chọn cho ta, và ta được cung cấp một
vài manh mối về cách nhận dạng chúng (Không phải action values). Có thể là ta đang đối mặt với một
máy gacha sẽ thay đổi màu sắc mỗi khi thay đổi action values của chính nó. Lúc này, chúng ta sẽ phải
học từng policy liên kết với từng task, trong ví dụ trên chính là màu sắc, và lựa chọn hành động tốt
nhất cho từng task đó trong thời điểm hiện tại. Với một policy hợp lý, ta thường sẽ thể hiện tốt hơn
khi không có bất kì thông tin nào được cung cấp để phân biệt một bandit task với những cái khác.

Đây là một ví dụ của Associative Search task, nó được gọi như vậy do nó bao gồm cả trial-and-error
learning để tìm action tốt nhất và cả liên kết các actions đó với tình huống mà nó có thể thực hiện tốt
nhất. Associative Search task hiện nay thường được gọi là contextual bandits trong các tài liệu. Ta
cũng nên hiểu Associative Search task là mức trung gian giữa k-armed bandit problem và các bài
reinforcement learning đầy đủ. Chúng giống với các RL problem ở chỗ chúng sẽ phát triển lên các
policy nhưng lại giống với k-armed bandit problem ỏ các action chỉ ảnh hưởng tới reward tức thời.
Nếu action được cho phép ảnh hưởng tới tình huống (next situation) giống như là reward, thì ta sẽ có
một full RL problem. Chúng ta sẽ thảo luận về các problem này sau.
Bài tập:

Finite Markov Decision Processes (MDP có giới hạn)

Sau khi tìm hiểu và biết được các dạng bài toán bandit cơ bản, chúng ta sẽ gác lại nó và đi vào vấn đề
chính của RL, hiểu một cách rõ ràng hơn, chúng ta sẽ đi sâu vào các dạng bài RL thực tế. Trước khi làm
điều đó, việc ta hiểu qua format của RL là điều vô cùng cần thiết, và trong phần này, chúng ta sẽ tìm
hiểu về MDPs(Finite Markov Decision).

Agent-Environment Interface.

MDPs mang hàm nghĩa của một frame các vấn đề khi học tập từ interaction mới mục tiêu là đạt được
kết quả. Learner hay đối tượng đưa ra quyết định gọi là Agent. Thứ mà các đối tượng trên giao tiếp
với, so sánh với các thành phần khác ngoại trừ chính bản thân nó gọi là Environment. Sự tương tác
giữa chúng là liên tục không ngừng, agent sẽ lựa chọn hành động và environment sẽ trả về dựa trên
hành động đó một trạng thái mới. Environment đôi khi cũng có thể trả về một rewards, hoặc là một
giá trị số học mà agent cố gắng để tối ưu qua thời gian.
Nói chính xác hơn, agent và environment giao tiếp với nhâu dưới một dạng chuỗi thời gian rời rạc
(discrete time steps), t = 1, 2, 3, … Tại mỗi thời điểm t, agent sẽ nhận một representation của
environment’ state, St thuộc S, và dựa trên các hành động cơ bản, At thuộc A(s). Sau 1 time step, là hệ
quả của action đó, agent nhận được một giá trị reward, R(t+1) thuộc R trong tập R, và kiếm được một
state mới, St+1. Sau khi kết hợp ta sẽ có được một chuỗi như sau:

Trong finite MDP, với mỗi một tập states, actions, hay rewards (S, A, R) luôn có giới hạn số lượng phần
tử. Trong trường hợp này, một biến ngẫu nhiên Rt và St sẽ định nghĩa một cách rõ ràng trong discrete
probability distributions, phụ thuộc hoàn toàn vào preceding state và action, chúng ta sẽ đặt là s’ và r,
được định nghĩa và viết như sau:

Với mọi s’, s thuộc S, r thuộc R, và a thuộc A(s). phương trình p định nghĩa được sự biến động của
MDP. Dấu chấn trên dấu bằng thể hiện rằng đây là định nghĩa. Phương trình trên p: S x R x S x A là
một tập các function đã được sắp xếp của bốn augments. Dấu ‘|’ thể hiện cho xác xuất có điều kiện,
nhưng nó cũng xác định cho ta rằng p được xác định là một phân bố xác xuất(probability distribution)
với mỗi lựa chọn của s và a.

Ở trong MDP, xác xuất được cho bởi p hoàn toàn mô hình hóa lên sự biến động của môi trường. Xác
định rằng xác xuất của mỗi giá trị khả định cho St và Rt phụ thuộc vào preceding state và action, S(t-1)
và A(t-1). Điều này được thể hiện là một sự giới hạn không chỉ về quá trình đưa ra dự đoán mà còn
state. Dẫn đến state phải mang được đủ thông tin hoặc đặc trưng của agent-environment interaction
mà mang ý nghĩa quyết định đến sự khác biệt trong tương lai. Nếu điều trên được thỏa mãn thì state
sẽ được gọi là Markov property.
Goals and Rewards.

Trong RL, mục tiêu của agent là formalized trong điều kiện của một tín hiệu đặc biệt, gọi là reward,
được gửi xuyên suốt từ environment tới agent. Tại mỗi một time step, reward chỉ là một đơn trị, Rt
thuộc R. Nói rõ ràng hơn, mục tiêu của agent là tối đa hóa tổng reward nhận được. Điều này nghĩa là
không phải tối ưu những reward nhất thời mà là cumulative reward. Chúng ta cũng có thể xác định
điều này là reward hypothesis:

Mặc dù điều bên trên có thể xuất hiện một vài giới hạn, nhưng trong thực chiến đã chứng minh độ đa
dụng và khả năng áp dụng cao của nó. Lấy ví dụ, để có thể làm một con robot học cách đi bộ,
researchers đã cấp reward cho mỗi lần mà robot thể hiện được sự tịnh tiến. Trong giải mê cung, mọi
tiến trình trong mê cung hầu như là -1 để thúc đẩy việc ưu tiên giả mê cung với tốc độ nhanh nhất, …

Chúng ta có thể thấy rõ ràng từ các ví dụ trên, Agent luôn luôn học để tối ưu hóa reward. Nếu ta
muốn nó làm gì cho ta, chúng ta phải cung cấp rewards cho nó để có thể tối ưu hóa goal. Nó cũng thể
hiện rõ rằng các reward mà ta setup sẽ mang hàm ý tổng quát cho bài toán tối ưu.

Returns and Episodes.

Chúng ta đã bàn luôn về học tập có mục tiêu. Chúng ta cũng đã nói về việc mục tiêu của agent là tối
đa hóa cumulative reward mà nó đạt được trong thời gian dài, vây thì làm thế nào để ta có thể định
nghĩa nó một cách rõ ràng? Nếu ta xác định chuỗi các rewards nhận được sau một time step t là
Rt +1 , R t+ 2 , Rt +3 ,.. . thì cái thứ chính xác mà ta muốn tối ưu trong bài toán này là gì? Trên thực tế, c
chúng ta luôn cố gắng để tối ưu hóa expected return, khi mà return (Gt), được định nghĩa là một
phương trình của một chuỗi các sequence. Đơn giản nhất như sau:

Trong đây với T là bước cuối cùng (thời điểm vàng, thời điểm mấu chốt, thời điểm hoàn thành, …). Với
cách tiếp cận này thì nó được định nghĩa rõ ràng hơn khi có thời điểm T, khi mà agent-environment
interaction được chia nhỏ ra thành các tập chuỗi con, được gọi là episodes, giống như khi ta chơi
game, chúng ta luôn phải thực hiện đi thực hiện lại một vài vấn đề. Mỗi episode kết thúc khi gặp một
state đặc biệt gọi là terminal state, theo sau đó là reset về state khởi tạo mặc định hoặc là một sample
của standard distribution của tarting states. Kể cả khi ta nghĩ rằng một episodes kết thúc trong nhiều
cách khác nhau, như là thắng hoặc thua game, thì episode tiếp theo sẽ bắt đầu độc lập với các
episodes trước. Task trong mỗi episodes được gọi là episodic tasks. Trong Episodic tasks chúng ta đỗi
khi sẽ phải phân biệt các tập của tất cả các nonterminal states, xác định là S, với tập tất cả các states
có chứ terminal state, xác định là S+. Thời gian termination, T, một biến ngẫu nhiên có thể đạt được
từ episode qua episode.

Trong các trường hợp khác, nhiều trường hợp agent-environment interaction không tự break thành
các identifiable episodes, nhưng lại liên tục không giới hạn. Lấy ví dụ, đây có thể là một cách tự nhiên
để formulate các quá trình điều khiển, hoặc là ứng dụng cho robot với tuổi đời lâu dài. Các trường
hợp này được gọi là continuing task. Phương trình trả về là vấn đề cho bài toán trên do T = inf, và giá
trị trả về cũng vậy, điều này có thể dẫn tới giá trị ta muốn tối ưu có thể dẫn đến vô hạn.

Các đơn giản nhất để giải quyết nó chính là discounting. Dựa vào các tiếp cận này, agent sẽ cố lựa
chọn các hành động sao cho tổng các discounted rewards mà nó nhận được trong tương lai là tối ưu.
Trong thực tế, nó sẽ chọn At sao cho tối ưu hóa expected discounted return.

Trong này γ là một tham số với 0 <= γ <= 1, được gọi là discount rate.

Discount rate thể hiện value của các rewards trong tương lai: một reward nhận được tỏng k time
steps trong tương lại chỉ có trọng số γ k −1 với những gì đáng nhẽ nó có. Nếu discount rate nhỏ hơn 1
thì tông chuỗi hô hạn trên sẽ luôn tính được khi mà chuỗi {Rk} giới hạn. Nếu discount rate = 0 thì
agent sẽ “myopic” khi chỉ tối ưu hóa reward tức thời: mục tiêu sẽ là tối hóa việc chọn hành động At
để maximize Rt+1.

Lưu ý rằng điều này hoạt động với tất cả time steps t < T, kể cả khi termination xảy ra tại t + 1, cung
cấp cho chúng ta xác định Gt = 0. Điều này thường dễ để tính toán returns từ các chuỗi rewards.
Lưu ý rằng giá 3.8 tuy là một tổng vô hạn nhưng Gt vẫn là số hữu hạn do discount rate < 1.

Giải bài toán Robot Múa cột.

You might also like