Từ this, chúng ta đều biết:
Sự hội tụ của Q-learning khoản giữ lại sử dụng bất kỳ chính sách thăm dò, và chỉ yêu cầu rằng mỗi tiểu bang cặp hành động (s,a)
được thực hiện vô thường.
epsilon-greedy policy
là sự cân bằng giữa thăm dò và khai thác, cả hai đều đảm bảo sự hội tụ và hiệu suất thường xuyên tốt.Nhưng trong các vấn đề thực tế, chúng ta thường cần một số chẩn đoán để thay đổi tốc độ học tập alpha
để thể hiện sự trở lại tốt hơn. Nếu không, yêu cầu infinite often
khó đáp ứng.
Tôi liệt kê ví dụ bên dưới. Đây là một vấn đề cổ điển, trong đó bạn có một mạng lưới và bạn có thể có số tiền thưởng khác nhau trong mỗi ô. Ví dụ: lưới 4x4 được hiển thị bên dưới, trong đó mỗi ô chứa một phần thưởng là 1
, ngoại trừ ô trên cùng bên trái (bạn có phần thưởng lớn hơn với số tiền là 10
). Một robot đang di chuyển trong lưới. Các hành động pháp lý đang di chuyển LEFT
, RIGHT
, UP
và DOWN
, nhưng rô-bốt không thể di chuyển ra khỏi lưới.
Vì vậy, không gian trạng thái của chúng tôi chứa 16 trạng thái riêng biệt, tương ứng với 16 ô. Đối với mỗi tiểu bang, có một số hành động pháp lý khác nhau do ràng buộc biên giới. Mục tiêu của chúng tôi là tính toán chính sách tối ưu (cho bất kỳ trạng thái s
nào, đưa ra một hành động tối ưu a
).
+++++++++++++++++++++
+ 10 + 1 + 1 + 1 +
+++++++++++++++++++++
+ 1 + 1 + 1 + 1 +
+++++++++++++++++++++
+ 1 + 1 + 1 + 1 +
+++++++++++++++++++++
+ 1 + 1 + 1 + 1 +
+++++++++++++++++++++
Giả sử chúng ta sử dụng một epsilon-greedy policy
với epsilon=0.1
, một tỷ lệ học liên tục alpha=0.1
. Chúng ta bắt đầu với một vị trí ngẫu nhiên trên lưới. Bất cứ khi nào chúng tôi đạt đến góc trên bên trái, chúng tôi khởi động lại với một vị trí ngẫu nhiên một lần nữa.
Dưới đây là kết quả của việc chạy mô phỏng 200.000 di chuyển. Khối ngoài cùng bên trái hiển thị chính sách tham chiếu hiện tại ở mỗi ô.
-->
di chuyển đúng
<--
di chuyển trái
^
Chuyển lên
v
Di chuyển xuống
Vì vậy, bạn thấy điều này là xa từ một chính sách tối ưu. Rõ ràng là trong một chính sách tối ưu, mỗi ô nên trỏ sang trái hoặc lên vì chúng ta có phần thưởng lớn hơn đáng kể ở vị trí (0,0)
.
v v v v | 2 9 5 4
v v v v | 14 98 75 14
--> v v <-- | 258 3430 3312 245
--> --> <-- <-- | 3270 93143 92978 3191
Khối bên phải hiển thị số lần chúng tôi truy cập từng ô cho đến thời điểm này. Bạn thấy rằng chúng tôi dành hầu hết các lượt truy cập ở dưới cùng nhưng chúng tôi truy cập hàng trên cùng rất hiếm. Đây là lý do tại sao chúng tôi chưa đạt được chính sách tối ưu.
Nếu chúng tôi thay đổi tỷ lệ học là alpha=1/(number of times you visited (s,a) so far)
, chúng tôi có thể đạt được chính sách tối ưu (được hiển thị bên dưới) trong vòng 20.000 bước. Ngoài ra số lần chúng tôi truy cập mỗi ô được phân phối đồng đều hơn mặc dù không hoàn hảo.
--> <-- <-- <-- | 34 7997 7697 294
^^^<-- | 731 898 524 132
^^^^ | 709 176 88 94
^^^^ | 245 256 96 77
Đối với vấn đề lớn hơn với nhiều trạng thái hơn, ví dụ: lưới 10x10, tôi thấy tốt hơn nên sử dụng lớn hơn epsilon
. Ví dụ: dưới đây là kết quả của mô phỏng sau khi 80.000 di chuyển trên lưới 10x10 với epsilon=0.5
. Nó gần như tối ưu trừ góc dưới cùng bên phải. Ngoài ra còn có idea về cách sử dụng Simulated Annealing để giúp cải thiện tốc độ hội tụ của Q-learning.
v <-- <-- <-- <-- <-- <-- <-- <-- <-- | 19 2500 1464 716 386 274 216 159 121 71
^ <-- <-- <-- <-- v <-- <-- <-- <-- | 9617 11914 3665 1071 580 410 319 225 207 131
^ ^^<-- <-- <-- <-- v <-- <-- | 5355 5716 2662 1675 1465 611 302 183 162 101
^ ^^^^<-- <-- <-- <-- <-- | 1604 1887 1192 621 1056 882 693 403 206 100
^ ^^^^^^<-- <-- <-- | 639 735 731 333 412 399 480 294 172 114
^ ^^<--^^^<-- <--^ | 373 496 640 454 272 266 415 219 107 98
^ ^^^^^^^<--^ | 251 311 402 428 214 161 343 176 114 99
^ ^^^<-- -->^<-- <-- <-- | 186 185 271 420 365 209 359 200 113 70
^ ^^^^^^^ v v | 129 204 324 426 434 282 235 131 99 74
^ ^^^^<--^<-- <-- <-- | 100 356 1020 1233 703 396 301 216 152 78
BTW, mã Python (~ 100 dòng) cho vấn đề đồ chơi là here.
Dường như, ngay cả cụm từ Q (S, A) không hạn chế giá trị hành động phát triển vô hạn. Giả sử trường hợp sau: T (s, a, s) = 1 R (s, a, s) = 1 tối đa (Q (s, a)) = Q (s, a) Trong trường hợp này , giá trị hành động sẽ tiếp tục trôi dạt theo hướng vô cùng tích cực. Lý do thực sự tại sao nó không phát triển đến vô cùng (trong MDP không có đường chân trời hữu hạn), là do giá trị của gamma (luôn nhỏ hơn 1), gán ít tầm quan trọng hơn và ít quan trọng hơn cho các giá trị hành động tiếp theo, hạn chế sự trôi dạt về phía vô cùng. – user3575425