Sau đây tôi sẽ giới thiệu cho bạn đọc cách biểu diễn và ký hiệu toán học của các khái niệm đã được trình bày trong bài trước, và sẽ được sử dụng nhiều lần trong loạt bài này. Trong bài này, bạn đọc sẽ học cách biểu diễn vấn đề trong học tăng cường bằng cách sử dụng một khung toán học được gọi là Quy trình ra quyết định Markov (Markov Decision Processes) hay viết gọn là thuật toán Markov cho phép mô hình hóa hầu như bất kỳ môi trường phức tạp nào.
Thông thường, các chuyển động của môi trường bị ẩn và không thể truy cập được đối với tác nhân, tuy nhiên, như chúng ta sẽ thấy trong các bài viết sắp tới, tác nhân không cần biết thuật toán Markov chính xác của một vấn đề để tối ưu việc ra quyết định. Nhưng hiểu biết về thuật toán Markov là điều quan trọng đối với bạn đọc/ nhà nghiên cứu vì các tác nhân thường được thiết kế với giả định rằng một thuật toán Markov, ngay cả khi không thể truy cập được, đang chạy ngầm bên dưới.
Điều kiện tiên quyết : bạn cần đọc bài viết trước của bài này (click button bên dưới).
Thuật toán Markov
Một cách chính thức, hầu như tất cả các vấn đề trong học tăng cường đều có thể được đóng khung dưới dạng một thuật toán Markov. Hiện tại, chúng ta có thể coi rằng thuật toán Markov về cơ bản bao gồm năm phần tử \left \langle S,A,T,R,\gamma \right \rangle trong đó các ký hiệu có nghĩa là:
S : một tập hợp các trạng thái
A: một tập hợp các hành động
T: hàm chuyển tiếp
R: hàm phần thưởng
\gamma: hệ số chiết khấu
Ta sẽ mô tả từng phần tử một.
Các trạng thái
Một trạng thái là một cấu hình độc nhất và khép kín của môi trường. Tập hợp tất cả các trạng thái có thể có được gọi là không gian trạng thái. Có các trạng thái đặc biệt ví dụ như là trạng thái bắt đầu hoặc trạng thái cuối.
Trong ví dụ hồ đóng băng của chúng ta ở bài trước, không gian trạng thái của môi trường bao gồm 16 trạng thái:
print(“State space: “, env.observation_space)
State space: Discrete(16)
Ví dụ: trong môi trường hồ đóng băng, chỉ có một trạng thái bắt đầu (là trạng thái 0) và năm trạng thái cuối (trạng thái 5, 7, 11, 12 và 15):
Tất cả các trạng thái trong thuật toán Markov đều có thuộc tính "Markov", đề cập đến thực tế là tương lai chỉ phụ thuộc vào trạng thái hiện tại, không phải toàn bộ lịch sử tương tác: xác suất của trạng thái tiếp theo, với trạng thái hiện tại, sẽ giống nhau nếu như bạn cho nó biết toàn bộ lịch sử của các tương tác. Nói cách khác, tương lai và quá khứ độc lập có điều kiện với hiện tại, vì trạng thái hiện tại đã đóng gói tất cả các thông tin mà chúng ta cần để quyết định tương lai.
Các hành động
Tại mỗi trạng thái, môi trường tạo sẵn một tập hợp các hành động, một không gian hành động, tác nhân sẽ chọn một hành động trong không gian đó. Tác nhân ảnh hưởng đến môi trường thông qua các hành động này và môi trường có thể thay đổi trạng thái như một phản ứng đối với hành động do tác nhân thực hiện. Môi trường làm cho tập hợp tất cả các hành động có sẵn được biết trước.
Trong môi trường hồ đóng băng, có bốn hành động khả dụng ở tất cả các trạng thái: LÊN, XUỐNG, PHẢI hoặc TRÁI:
print("Action space: ", env.action_space)
Action space: Discrete(4)
Sau khi chúng ta đã đi qua định nghĩa các trạng thái và hành động, chúng ta có thể nhìn lại thuộc tính "Markov". Xác suất của trạng thái tiếp theo S_{t + 1}, với trạng thái hiện tại S_{t} và hành động hiện tại A_{t} tại thời điểm t, sẽ giống như khi bạn cung cấp cho nó toàn bộ lịch sử của các tương tác. Nói cách khác, điều này có nghĩa là xác suất chuyển từ trạng thái này sang trạng thái khác trong hai trường hợp riêng biệt, cho cùng một hành động, là như nhau bất kể tất cả các trạng thái trước đó hoặc hành động gặp phải trước thời điểm đó.
Trong ví dụ hồ đóng băng, chúng ta biết rằng từ trạng thái 2, tác nhân chỉ có thể chuyển sang trạng thái 1, 3, 6 hoặc 2 và điều này đúng bất kể trạng thái trước đó của tác nhân là 1, 3, 6 hay 2. Nghĩa là , bạn không cần lịch sử của các trạng thái mà tác nhân đã ghé thăm để làm gì cả.
Hàm chuyển tiếp
Trạng thái mà tác nhân sẽ đến (và môi trường thay đổi trạng thái của nó) được quyết định bởi hàm chuyển tiếp và được ký hiệu là T. Tùy thuộc vào môi trường, tác nhân có thể chọn các hành động theo cách xác định hoặc ngẫu nhiên.
Môi trường xác định (deterministic)
Hãy tưởng tượng ví dụ về hồ đóng băng không phải là một bề mặt trơn trượt. Chúng ta có thể tạo môi trường này với thuộc tính is_slippery = False
để tạo môi trường ở chế độ xác định:
env = gym.make('FrozenLake-v0', is_slippery=False)
Trong trường hợp này, xác suất tại thời điểm t của trạng thái tiếp theo S_{t + 1} cho trạng thái hiện tại S_{t} và hành động A_{t} luôn là 1. Nói cách khác, một môi trường xác định là một môi trường trong đó luôn luôn chỉ có một trạng thái tiếp theo có thể xảy ra cho một hành động. Trong trường hợp này ta có thể coi hàm chuyển tiếp như một bảng tra đơn giản của ma trận hai chiều (2D). Trong ví dụ hồ đóng băng, chúng ta có thể lấy nó bằng env.env.P
để xuất ra hàm dưới dạng một từ điển:
{
0: {0: [(1.0, 0, 0.0, False)],
1: [(1.0, 4, 0.0, False)],
2: [(1.0, 1, 0.0, False)],
3: [(1.0, 0, 0.0, False)]},
1: {0: [(1.0, 0, 0.0, False)],
1: [(1.0, 5, 0.0, True)],
2: [(1.0, 2, 0.0, False)],
3: [(1.0, 1, 0.0, False)]},
.
.
.
14: {0: [(1.0, 13, 0.0, False)],
1: [(1.0, 14, 0.0, False)],
2: [(1.0, 15, 1.0, True)],
3: [(1.0, 10, 0.0, False)]},
15: {0: [(1.0, 15, 0, True)],
1: [(1.0, 15, 0, True)],
2: [(1.0, 15, 0, True)],
3: [(1.0, 15, 0, True)]}
}
Trong kết quả đầu ra, env.P
trả về tất cả các trạng thái trong đó mỗi trạng thái chứa một từ điển ánh xạ tất cả các hành động có thể (0,1,2,3) từ trạng thái đó sang trạng thái tiếp theo nếu chúng ta thực hiện hành động đó. Và hơn nữa, mỗi hành động có chứa một danh sách (list), trong đó mỗi phần tử của danh sách là một bộ (tuple) hiển thị xác suất chuyển tiếp , trạng thái tiếp theo, phần thưởng và liệu một tập có kết thúc ở đó hay không (done = True
nếu trạng thái tiếp theo là vị trí lỗ hoặc là mục tiêu).
*** Mình sẽ giải thích thêm về kết quả vì chắc chắn nhiều bạn sẽ không hiểu kết quả này. Trong ví dụ hồ đóng băng thì hành động 0 nghĩa là đi sang trái, 1 là đi xuống, 2 là sang phải và 3 là đi lên. Giả sử tác nhân đang ở ô bắt đầu (trạng thái 0), nếu ta chọn hành động 0 (sang trái) thì trạng thái tiếp theo của tác nhân vẫn là trạng thái 0 bởi vì thế - giới - lưới của tác nhân không tồn tại trạng thái nào bên trái trạng thái 0 cả. Ta kết luận rằng, xác suất để tác nhân ở trạng thái tiếp theo là trạng thái 0, với trạng thái hiện tại là trạng thái 0, và thực hiện một hành động là đi sang trái là 100% (các bạn đọc kỹ giải thích nhé, và tự suy diễn cho các trường hợp còn lại khi tác nhân chọn các hành động khác).
Ví dụ: trong môi trường “không đóng băng” này (không trơn trượt), nếu chúng ta thực hiện trình tự / kế hoạch như trong hình sau, tác nhân sẽ đến nơi an toàn đến điểm cuối (ta có thể gọi trình tự này là một "kế hoạch tốt"):
Chúng ta có thể lập trình kế hoạch này bằng đoạn code dưới.
actions = {'Left': 0, 'Down': 1, 'Right': 2, 'Up': 3 } good_plan = (2 * ['Right']) + (3 * ['Down']) + ['Right'] env = gym.make(“FrozenLake-v0”, is_slippery=False) env.reset() env.render() for a in good_plan: new_state, reward, done, info = env.step(actions[a]) env.render() if done: break
Ở đây, môi trường phản ứng một cách xác định với các hành động của tác nhân. Tuy nhiên, trong thực tế thì chúng ta rất ít khi biết được các phản ứng môi trường. Đó là trường hợp môi trường phản ứng ngẫu nhiên.
Môi trường ngẫu nhiên (stochastic)
Như chúng ta biết, trạng thái tiếp theo của tác nhân phụ thuộc vào hàm chuyển tiếp. Nhưng trong môi trường ngẫu nhiên, tại thời điểm t, hàm chuyển tiếp T ánh xạ một bộ chuyển tiếp (S_{t}, A_{t}, S_{t + 1}) tới xác suất chuyển tiếp tương ứng p từ trạng thái nguồn S_{t} sang trạng thái đích S_{t + 1} khi thực hiện hành động A_{t}.
Giờ đây, để nắm bắt tất cả các chi tiết về môi trường và các phản ứng có thể xảy ra đối với hành động của tác nhân, hàm chuyển tiếp không thể được biểu diễn dưới dạng ma trận 2D như trong trường hợp của môi trường xác định. Trong trường hợp này, chúng ta cần một ma trận 3D với kích thước trạng thái nguồn, không gian hành động và không gian mục tiêu, trong đó mỗi phần tử chỉ ra xác suất chuyển từ trạng thái nguồn S_{t} sang trạng thái đích S_{t + 1} với hành động cho trước A_{t}.
Chúng ta chạy lại dòng env.env.P (is_slippery = False)
env = gym.make(“FrozenLake-v0”)
print(env.env.P)
Ta có kết quả như dưới.
{
0: {0: [(0.3333333333333333, 0, 0.0, False),
(0.3333333333333333, 0, 0.0, False),
(0.3333333333333333, 4, 0.0, False)],
1: [(0.3333333333333333, 0, 0.0, False),
(0.3333333333333333, 4, 0.0, False),
(0.3333333333333333, 1, 0.0, False)],
2: [(0.3333333333333333, 4, 0.0, False),
(0.3333333333333333, 1, 0.0, False),
(0.3333333333333333, 0, 0.0, False)],
3: [(0.3333333333333333, 1, 0.0, False),
(0.3333333333333333, 0, 0.0, False),
(0.3333333333333333, 0, 0.0, False)]},
.
.
.
14: {0: [(0.3333333333333333, 10, 0.0, False),
(0.3333333333333333, 13, 0.0, False),
(0.3333333333333333, 14, 0.0, False)],
1: [(0.3333333333333333, 13, 0.0, False),
(0.3333333333333333, 14, 0.0, False),
(0.3333333333333333, 15, 1.0, True)],
2: [(0.3333333333333333, 14, 0.0, False),
(0.3333333333333333, 15, 1.0, True),
(0.3333333333333333, 10, 0.0, False)],
3: [(0.3333333333333333, 15, 1.0, True),
(0.3333333333333333, 10, 0.0, False),
(0.3333333333333333, 13, 0.0, False)]},
15: {0: [(1.0, 15, 0, True)],
1: [(1.0, 15, 0, True)],
2: [(1.0, 15, 0, True)],
3: [(1.0, 15, 0, True)]}
}
Hàm chuyển tiếp này cho biết rằng có 33.3% khả năng chúng ta sẽ chuyển sang ô (trạng thái) dự định và 66.6% khả năng chúng ta sẽ chuyển sang các hướng trực giao. Cũng có khả năng chúng ta sẽ quay trở lại trạng thái hiện tại nếu đang ở cạnh bức tường.
Ta có thể biểu diễn trực quan môi trường dưới dạng một biểu đồ với các nút đại diện cho các trạng thái và các cạnh, được gắn nhãn xác suất (và phần thưởng), thể hiện sự chuyển đổi có thể xảy ra từ trạng thái này sang trạng thái khác. Để đơn giản và rõ ràng, tôi đã thêm vào hình ảnh bên dưới chỉ hàm chuyển tiếp cho tất cả các hành động của trạng thái 14. Tập hợp con các trạng thái này cho phép minh họa tất cả các chuyển đổi có thể có khi tác nhân có trạng thái hiện tại là ô 14.
Bây giờ nếu chúng ta thực hiện một chuỗi các hành động nằm trong "kế hoạch tốt" nhiều lần, chúng ta có thể thấy rằng nó không hoạt động theo cách xác định, cho kết quả rất khác nhau. Chúng ta sẽ quay lại ví dụ này trong các bài viết sau.
Hàm phần thưởng
Khi một hành động được thực hiện, môi trường sẽ phân phối phần thưởng như một thước đo độ tốt cho các chuyển tiếp bằng cách sử dụng hàm phần thưởng (hoặc xác suất phần thưởng). Đây chỉ là một giá trị vô hướng mà tác nhân thu được trong mỗi bước thời gian (hoặc một số bước thời gian cố định) từ môi trường (giá trị phần thưởng này có thể dương hoặc âm, lớn hoặc nhỏ).
Điều quan trọng cần lưu ý là thuật ngữ "học tăng cường" có nguồn gốc từ khoa học hành vi. Nó đề cập đến một kích thích được đưa ra ngay sau hành vi để làm cho hành vi đó có nhiều khả năng xảy ra hơn trong tương lai. Việc cái tên này được mượn không phải ngẫu nhiên. Chúng ta nên thiết kế phần thưởng như một cơ chế phản hồi để cho tác nhân biết rằng nó đã chọn hành động thích hợp. Phần thưởng sẽ là cách chúng ta nói với tác nhân rằng nó đang làm tốt hoặc đang làm tệ. Nói cách khác, phần thưởng nói cho tác nhân biết nó đã hoạt động tốt như thế nào.
Ví dụ, hãy xem xét một tác nhân muốn học cách thoát khỏi mê cung. Tín hiệu phần thưởng nào sẽ khuyến khích tác nhân thoát khỏi mê cung càng nhanh càng tốt? Phần thưởng có thể là -1 cho mỗi bước đi mà tác nhân thực hiện bên trong mê cung. Khi tác nhân thoát ra được, nó sẽ nhận được phần thưởng là +10 và một tập sẽ kết thúc. Bây giờ, hãy xem xét một tác nhân muốn học cách cân bằng một cái đĩa trên đầu. Tín hiệu phần thưởng nào sẽ khuyến khích tác nhân giữ đĩa cân bằng càng lâu càng tốt? Ví dụ: có thể là phần thưởng +1 cho mỗi bước mà tác nhân giữ đĩa cân bằng trên đầu. Nếu đĩa rơi, một tập sẽ kết thúc. Tôi hy vọng rằng với hai ví dụ đơn giản này, người đọc đã có ý tưởng về cách phần thưởng có thể góp phần "tăng cường" việc học hỏi của tác nhân.
Tóm lại, phần thưởng cung cấp cho tác nhân phản hồi của môi trường về mức độ thành công của nó, phần thưởng nhận được sẽ củng cố hành vi của tác nhân theo hướng tích cực hoặc tiêu cực. Tuy nhiên, nó chỉ phản ánh thành công của hoạt động gần đây nhất của tác nhân chứ không phải tất cả những thành công mà tác nhân đạt được kể từ khi bắt đầu một tập. Điều mà tác nhân đang cố gắng đạt được là phần thưởng tích lũy lớn nhất qua chuỗi hành động của nó và chúng ta cần một phản hồi khác, đó là lợi nhuận. Nhưng trước khi giới thiệu lợi nhuận, hãy để tôi giới thiệu một thành phần khác của thuật toán Markov, hệ số chiết khấu.
Hệ số chiết khấu
Nhiệm vụ mà tác nhân đang cố gắng giải quyết có thể có hoặc không có kết thúc tự nhiên. Các nhiệm vụ có kết thúc tự nhiên, chẳng hạn như một trò chơi, được gọi là các nhiệm vụ nhiều tập (episodic task). Trình tự các bước thời gian từ khi bắt đầu đến khi kết thúc một nhiệm vụ nhiều tập được gọi là một tập (episode). Môi trường trong hồ đóng băng là nhiệm vụ nhiều tập, bởi vì có các trạng thái cuối: đó là trạng thái mục tiêu và các trạng thái thất bại (các lỗ). Ngược lại, các nhiệm vụ không có điểm cuối tự nhiên được gọi là các nhiệm vụ tiếp tục, chẳng hạn như học chuyển động về phía trước.
Do có khả năng xảy ra chuỗi thời gian vô hạn ( ***ta có thể hiểu mỗi một hành động từ tác nhân tương ứng với một bước thời gian, tập hợp tất cả các bước thời gian ta có chuỗi thời gian), chúng ta cần một cách để chiết khấu giá trị phần thưởng theo thời gian. Nghĩa là, chúng ta cần một cách để nói với tác nhân rằng việc nhận phần thưởng nên được thực hiện sớm nhất có thể. Vì vậy, chúng ta thường sử dụng giá trị thực dương nhỏ hơn 1 để chiết khấu theo cấp số nhân giá trị của phần thưởng trong tương lai. Càng về sau, tác nhân nhận được phần thưởng càng ít giá trị hơn trong hiện tại.
Con số này được gọi là hệ số chiết khấu, hoặc gamma ký hiệu là \gamma và phạm vi của nó là [0,1]. Hệ số chiết khấu được tác nhân sử dụng để điều chỉnh mức độ quan trọng của phần thưởng theo thời gian.
Lợi nhuận
Chúng ta đã giới thiệu ở bài trước rằng các tác nhân thường được thiết kế (hay mục tiêu của tác nhân) để tối đa hóa lợi nhuận, phần thưởng tích lũy được ký hiệu là G. Chúng ta đã giới thiệu gamma, giờ chúng ta có thể xem cách tính lợi nhuận từ gamma và phần thưởng. Đối với mỗi tập, chúng ta xác định lợi nhuận chiết khấu tại thời điểm t, như sau:
G_{t} = R_{t+1} + \gamma\cdot R_{t+2} + ... = \sum_{k=0}^{\infty }\gamma^{k}\cdot R_{t+k+1}
Đối với mỗi bước thời gian t, chúng ta tính toán lợi nhuận chiết khấu G_{t} là tổng của các phần thưởng tiếp theo, nhưng phần thưởng ở xa hơn được nhân với hệ số chiết khấu với lũy thừa là của số bước chúng ta đi. Nếu gamma bằng 1, thì lợi nhuận chiết khấu chỉ bằng tổng của tất cả các phần thưởng tiếp theo. Nếu gamma bằng 0, lợi nhuận sẽ chỉ là phần thưởng ngay lập tức mà không có bất kỳ trạng thái nào tiếp theo. Thông thường, gamma được đặt ở khoảng giữa, chẳng hạn như 0.9 hoặc 0.99.
Các hành động có hậu quả ngắn hạn và dài hạn và tác nhân cần hiểu rõ về những tác động phức tạp mà hành động của mình gây ra đối với môi trường. Như chúng ta sẽ thấy ở phần sau của loạt bài này, lợi nhuận sẽ giúp tác nhân trong nhiệm vụ này: tác nhân sẽ luôn chọn một hành động hướng tới mục tiêu tối đa hóa lợi nhuận. Nhưng như chúng ta sẽ thấy, thực sự chính xác hơn khi nói rằng tác nhân tìm cách tối đa hóa lợi nhuận kỳ vọng. Điều này là do nói chung, một tác nhân không thể dự đoán hoàn toàn chắc chắn phần thưởng trong tương lai (và do đó là lợi nhuận), vì vậy nó phải dựa vào một dự đoán hoặc ước tính.
Mục tiêu của tác nhân
Hãy xem cách tác nhân đưa ra quyết định để đáp ứng các mục tiêu của mình: tìm một chuỗi hành động sẽ tối đa hóa lợi nhuận G trong một tập. Nói cách khác, tác nhân phải có một kế hoạch, một chuỗi các hành động từ trạng thái BẮT ĐẦU đến trạng thái MỤC TIÊU.
Trước đây chúng ta đã nói về một "kế hoạch tốt" cho ví dụ hồ đóng băng. Nhưng khi chúng ta chạy nó trong một môi trường ngẫu nhiên, kế hoạch tốt sẽ thất bại, do những hành động được thực hiện sẽ không luôn hoạt động theo cách chúng ta dự định. Hãy nhớ rằng trong môi trường hồ đóng băng, các hành động ngoài ý muốn có xác suất cao hơn: 66.6% so với 33.3%.
Và do đặc điểm ngẫu nhiên của môi trường, tác nhân của chúng ta sẽ đi tới một ô không nằm trong kế hoạch. Vậy chúng ta cần phải làm gì sau đó? Những gì chúng ta cần là một kế hoạch cho mọi trạng thái có thể xảy ra, một “kế hoạch chung”, một Chính sách, bao gồm tất cả các trạng thái tiếp theo có thể xảy ra.
Chính sách
Chính sách, là chiến lược (ví dụ: một số bộ quy tắc) mà tác nhân sử dụng để xác định hành động tiếp theo dựa trên trạng thái hiện tại. Thường được ký hiệu là \pi (a|s) , một chính sách là một hàm xác định hành động tiếp theo a với một trạng thái s đã cho.
Chính sách \pi (a|s) được định nghĩa là xác suất chứ không phải là một hành động cụ thể. Nói cách khác, nó là một chính sách ngẫu nhiên có phân phối xác suất trên các hành động mà tác nhân có thể thực hiện ở một trạng thái nhất định.
Trong quá trình học, chính sách có thể thay đổi khi tác nhân có thêm kinh nghiệm. Ví dụ, tác nhân có thể bắt đầu từ một chính sách ngẫu nhiên, trong đó xác suất của tất cả các hành động là đồng nhất; trong quá trình đó, tác nhân hy vọng sẽ học cách tối ưu hóa chính sách của mình để đạt được chính sách tối ưu.
Ngay cả đối với những môi trường khá đơn giản, chúng ta có thể có nhiều chính sách khác nhau. Sau đó, chúng ta cần một phương pháp để tự động tìm ra các chính sách tối ưu. Vì mục đích này, chúng ta sẽ sử dụng trong tương lai một "hàm giá trị" để xác định điều gì tốt cho tác nhân về lâu dài (không giống như phần thưởng trước mắt). Tôi sẽ giới thiệu hai khái niệm mới, hàm giá trị trạng thái và hàm giá trị hành động, giúp tìm hiểu và tìm ra các chính sách tối ưu cho tác nhân.
Hàm giá trị trạng thái
Hàm giá trị trạng thái, còn được gọi là hàm giá trị, hoặc hàm V, đo lường mức độ tốt của mỗi trạng thái, nó cho chúng ta biết tổng lợi nhuận mà chúng ta có thể mong đợi trong tương lai nếu chúng ta bắt đầu từ trạng thái đó. Nói cách khác, tốt hay xấu khi ở trong một trạng thái cụ thể theo lợi nhuận G khi tuân theo một chính sách \pi . Nó thường được ký hiệu là V_{\pi}\left ( {s} \right ).
Tuy nhiên, đại lượng G trả về không hữu ích lắm trong thực tế, vì nó được định nghĩa cho mỗi tập cụ thể, do đó nó có thể rất khác nhau, ngay cả đối với cùng một trạng thái. Nhưng, nếu chúng ta đi đến cực trị và tính toán lợi nhuận kỳ vọng cho một trạng thái (bằng cách lấy trung bình một số lượng lớn các tập), chúng ta sẽ nhận được giá trị hữu ích hơn nhiều cho V_{\pi}\left ( {s} \right ).
Hàm giá trị hành động
Chúng ta có thể mở rộng định nghĩa của hàm giá trị trạng thái cho các cặp trạng thái - hành động, xác định một giá trị cho mỗi cặp hành động - trạng thái, được gọi là hàm giá trị-hành động, còn được gọi là hàm Q. Nó thường được ký hiệu là Q_{\pi}\left ( s, a \right ) và đề cập đến lợi nhuận dự kiến G khi tác nhân ở trạng thái s và thực hiện hành động a tuân theo chính sách \pi.
Ước tính hàm giá trị trạng thái và hàm giá trị hành động là một thành phần thiết yếu của phương pháp học tăng cường. Trong các bài viết tiếp theo của loạt bài này, chúng ta sẽ đi vào chi tiết hơn và đề cập đến các cách tính toán và ước lượng các hàm này.
Bạn đọc có thể xem bài viết gốc bằng tiếng Anh tại đây.
About Author

I’m Viet, the founder of this website with 8+ years experience in data analytics. My sharing is focus on data, which specialise on both Analytics and Business Intelligence platform as well as Data Science and Machine Learning platform.
Trong các bài viết tiếp theo của loạt bài này, chúng ta sẽ đi vào chi tiết hơn và đề cập đến các cách tính toán và ước lượng các hàm này.
Bài tiếp theo loạt bài trên link ở đâu vậy ạ?
Em đọc bài gốc bằng tiếng Anh nhé: https://towardsdatascience.com/tagged/deep-r-l-explained