Chương 3: Các thuật toán học cơ bản (Learning Algorithm / 学習アルゴリズム)

Estimated reading: 110 minutes 45 views

Trong chương này, chúng ta sẽ giải thích các thuật toán học cơ bản của hàm giá trị (Value Function / 価値関数) và hàm chính sách (Policy Function / 方策関数) (trên thực tế là các tham số để xấp xỉ hàm (Function Approximation / 関数近似) chúng) đã được định nghĩa ở Chương 2. Ngoài ra, trong Học tăng cường sâu (Deep Reinforcement Learning / 深層強化学習) vốn đã trở thành tiêu chuẩn gần đây, tôi cũng muốn giới thiệu về các công nghệ hỗ trợ học tập đang được phổ biến rộng rãi, vì chúng thường được sử dụng như một điều hiển nhiên trong Học tăng cường (Reinforcement Learning / 強化学習) mới nhất. Lưu ý rằng ở chương trước, vì cần có hàm chính sách để định nghĩa hàm giá trị nên chúng ta đã định nghĩa hàm chính sách trước, nhưng trong thuật toán học thì ngược lại; do hàm giá trị tham gia sâu vào việc học hàm chính sách, nên chúng ta sẽ giới thiệu nền tảng của thuật toán học cho hàm giá trị trước.

3-1 Học Hàm giá trị (Value Function / 価値関数)

Trước tiên, chúng tôi sẽ giới thiệu về thuật toán học cơ bản của các hàm giá trị $V(s), Q(s, a)$, vốn là giá trị kỳ vọng (Expected Value / 期待値) liên quan đến lợi tức (Return / 収益). Khi có thể dự đoán được lợi tức trong tương lai tại thời điểm hiện tại thông qua hàm giá trị, chúng ta có thể lập kế hoạch xem nên hành động như thế nào (dùng chính sách nào) từ đó để tối đa hóa lợi tức, vì vậy hầu hết

các thuật toán Học tăng cường đều học $V(s)$, $Q(s, a)$ hoặc cả hai. Cần lưu ý rằng, việc học $V(s)$ và $Q(s, a)$ về cơ bản được công thức hóa gần như giống hệt nhau, chỉ khác biệt ở chỗ hành động $a$ có được thêm vào điều kiện hay không, vì vậy phần dưới đây về cơ bản sẽ sử dụng $V(s)$ để mô tả. Nếu bạn muốn biết chi tiết về thuật toán học của hàm giá trị bao gồm cả $Q(s, a)$, bạn nên tham khảo một cuốn sách khác [1].

Vậy, khi học $V(s)$, tức là tối ưu hóa (Optimize / 最適化) tham số $\theta$ được sử dụng trong phép xấp xỉ hàm của nó, mục tiêu (tín hiệu huấn luyện (Teacher Signal / 教師信号)) của nó rất rõ ràng là “giá trị kỳ vọng của lợi tức” dựa theo định nghĩa của hàm giá trị. Nói cách khác, chúng ta chỉ cần nhắm đến việc cực tiểu hóa một hàm mất mát (Loss Function / 損失関数) như sai số bình phương (Squared Error / 二乗誤差) trong phương trình sau.

$$\min \mathcal{L}_V \tag{3.1}$$
$$\mathcal{L}_V = \mathbb{E}_{s_t \in \mathcal{S}} \left[ \frac{1}{2} \left\{ \mathbb{E}_{a_t \sim \pi(a_t \mid s_t), p_{\mathcal{T}}(\tau \mid s_t, a_t; \pi)} [R_t \mid s_t] – V(s_t) \right\}^2 \right]$$

Ở đây, giá trị kỳ vọng đối với $s_t$ ở đầu phương trình thực chất là một mô tả để xấp xỉ (Approximate / 近似) chính xác hàm giá trị đối với bất kỳ trạng thái nào. Trên thực tế, điều này có thể đạt được bằng cách tính toán và cực tiểu hóa tổn thất này mỗi lần đối với trạng thái mà tác tử (Agent / エージェント) đang đối mặt trong học trực tuyến (Online Learning / オンライン学習) truyền thống, hoặc đối với việc lấy mẫu từ dữ liệu đã trải qua từ trước đến nay và được lưu trữ trong bộ đệm (Buffer / バッファ) trong phương pháp Phát lại kinh nghiệm (Experience Replay / 経験再生) sẽ được mô tả sau.

Điểm khó khăn khiến việc học hàm giá trị khác với Học có giám sát (Supervised Learning / 教師あり学習) thông thường là không thể thu được giá trị thực (True Value / 真値) của giá trị kỳ vọng của lợi tức được đưa ra làm mục tiêu. Do không thể có được giá trị thực, các phương pháp sẽ phân nhánh tùy thuộc vào cách xấp xỉ giá trị mục tiêu này. Nếu phân loại sơ bộ các phương pháp đó, chúng được chia thành phương pháp Monte Carlo (Monte Carlo; MC) [2] – vốn có thể nói là dựa trên kinh nghiệm nhiều hơn, và phương pháp sai số chênh lệch thời gian (Temporal Difference Error Method / 時間差分誤差法) (hoặc gọi đơn giản là phương pháp TD) [3] sử dụng cấu trúc đệ quy của lợi tức (Hình 3-1).

a) Phương pháp Monte Carlo (Monte Carlo Method / モンテカルロ法)

Mục tiêu học: Chuỗi phần thưởng thực tế ($r_t, r_{t+1}, r_{t+2}…$)

Đối tượng học: $V_t$

b) Phương pháp TD (TD Method / TD法)

Mục tiêu học: $r_t$ và giá trị của trạng thái tiếp theo $V_{t+1}$

Đối tượng học: $V_t$

Hình 3-1 Các phương pháp học chính của hàm giá trị: Để học hàm giá trị tại thời điểm hiện tại, phương pháp Monte Carlo nhắm mục tiêu vào tổng các phần thưởng thực sự thu được, trong khi phương pháp TD nhắm mục tiêu vào phần thưởng tức thời (Immediate Reward / 即時報酬) và hàm giá trị ở thời điểm tiếp theo.

3-1-1 Phương pháp Monte Carlo

Về bản chất, phương pháp Monte Carlo không chỉ giới hạn ở việc học hàm giá trị, mà nó chỉ ra một phương pháp tính toán xấp xỉ giá trị kỳ vọng bằng một lượng lớn các mẫu (Sample / サンプル) [4]. Nhìn chung, nó có nghĩa là giá trị kỳ vọng của một hàm $f(x)$ phụ thuộc vào một biến ngẫu nhiên (Random Variable / 確率変数) $x \sim p(x)$ có thể được xấp xỉ bằng phương pháp Monte Carlo như sau.

$$\mathbb{E}_{p(x)}[f(x)] \simeq \frac{1}{N} \sum_{i=1}^N f(x_i) \tag{3.2}$$
$$x_{1, 2, \dots, N} \sim p(x)$$

Nói cách khác, phép toán tích phân (hoặc tính tổng) gọi là giá trị kỳ vọng được xấp xỉ bằng trung bình của một nhóm các đầu ra được tính toán từ hàm số đối với $N$ điểm dữ liệu thực sự được sinh ra từ $p(x)$. Bằng cách cho $N \to \infty$, sự xấp xỉ này sẽ tiệm cận trùng khớp với giá trị kỳ vọng

điều này đã được biết đến. Một ví dụ dễ hiểu là tung đồng xu, giả sử mặt ngửa được 1 và mặt sấp được 0, ta có thể biết giá trị kỳ vọng của giá trị thu được từ việc tung đồng xu là 1/2 (nếu xác suất xuất hiện của mặt sấp và mặt ngửa là như nhau), nhưng có thể hiểu một cách trực quan rằng nếu ta thực sự thử tung đồng xu nhiều lần và tính trung bình các giá trị thu được theo số lần thử, thì khi số lần thử tăng lên, kết quả sẽ tiến gần đến 1/2. Như vậy, ngay cả khi phép toán giá trị kỳ vọng không thể được thực hiện một cách giải tích, nó vẫn có thể được xấp xỉ bằng trung bình của các đầu ra có thể được suy ra từ một số lượng lớn các lần thử tuân theo phân phối xác suất (Probability Distribution / 確率分布) được sử dụng cho phép toán kỳ vọng đó. Chính vì vậy, giá trị kỳ vọng liên quan đến trạng thái của hàm mất mát được định nghĩa trong công thức (3.1) có thể được thay thế bằng tính toán tổn thất đối với các trạng thái thu được thông qua kinh nghiệm.

Nếu sử dụng kỹ thuật này, vì hàm giá trị cũng là giá trị kỳ vọng của lợi tức, nên nó có thể được xấp xỉ trực tiếp bằng cách thu thập chuỗi trạng thái – hành động cần thiết để tính toán lợi tức đó [2]. Nói cách khác, để học sao cho hàm giá trị $V(s)$ tại một trạng thái $s$ bất kỳ xuất ra chính xác giá trị kỳ vọng của lợi tức, chúng ta chỉ cần xấp xỉ giá trị kỳ vọng của lợi tức bằng phương pháp Monte Carlo và cung cấp nó dưới dạng tín hiệu huấn luyện. Tuy nhiên, nếu xử lý nó một cách ngây ngô thì sẽ hơi rắc rối, do đó chúng ta sẽ chuyển đổi hàm mất mát cần cực tiểu hóa như sau.

$$\mathcal{L}_V^{\text{MC}} = \frac{1}{K} \sum_{i=1}^K \left[ \frac{1}{2} \left\{ \frac{1}{M_i} \sum_{j=1}^{M_i} R_{ij} – V(s_i) \right\}^2 \right]$$
$$= \frac{1}{K} \sum_{i=1}^K \left\{ \frac{1}{2} \left( \frac{1}{M_i} \sum_{j=1}^{M_i} (R_{ij} – V(s_i)) \right)^2 \right\}$$
$$\le \frac{1}{K} \sum_{i=1}^K \frac{1}{M_i} \sum_{j=1}^{M_i} \left\{ \frac{1}{2} (R_{ij} – V(s_i))^2 \right\}$$
$$= \frac{1}{N} \sum_{i=1}^N \left\{ \frac{1}{2} (R_i – V(s_i))^2 \right\} \tag{3.3}$$

Ở đây, bất đẳng thức thu được từ Bất đẳng thức Cauchy-Schwarz (Cauchy-Schwarz Inequality / コーシーシュワルツの不等式). Đây là cận trên của

bài toán cực tiểu hóa ban đầu, và vì cả hai cuối cùng đều là tổng của các sai số bình phương nên cận dưới là 0; do đó, nếu chúng ta cực tiểu hóa hàm mất mát thu được dưới dạng cận trên, thì bài toán cực tiểu hóa ban đầu cũng có thể đạt được. $R_{ij}$ là lợi tức thu được từ kinh nghiệm thực tế thứ $j$ của lợi tức được xác định một cách xác suất khi lấy một trạng thái $s_i$ làm điểm bắt đầu. $M_i$ là số lượng kinh nghiệm lấy cùng $s_i$ làm điểm bắt đầu, và $K$ là tổng số các $s$ đã trải qua (không trùng lặp). $N$ trở thành số lượng kinh nghiệm đơn thuần mà không cần phân biệt các $s$ như vậy, và $R_{ij}$ cũng được viết thành $R_i$ để loại bỏ sự phân biệt. Bằng cách này, thông qua việc biến đổi bằng bất đẳng thức, hai phép tổng trở nên liền kề nhau, do đó chúng ta có thể xử lý bài toán cực tiểu hóa gộp chung lại. Nói cách khác, đối với tất cả các $s_i (i=1, 2, \dots, N)$ đã trải qua, ta chỉ cần tính toán độc lập sai số bình phương giữa (giá trị xấp xỉ của) hàm giá trị và lợi tức $R_i$ thu được theo kinh nghiệm từ những điểm đó làm điểm bắt đầu, rồi cực tiểu hóa trung bình của chúng.

Lưu ý rằng, khi xấp xỉ lợi tức bằng phương pháp Monte Carlo, một điểm cần chú ý là đặc biệt với lợi tức kiểu chiết khấu, nó đòi hỏi một chuỗi trạng thái – hành động có độ dài vô hạn. Nói cách khác, bản thân $R_i$ về mặt lý thuyết sẽ không bao giờ tính toán xong. Tuy nhiên, vì thực tế nhiều bài toán giao cho Học tăng cường sẽ kết thúc (sự chia cắt này được gọi là một Tập kịch bản (Episode / エピソード)) bằng một chuỗi trạng thái – hành động có độ dài hữu hạn (mặc dù độ dài là chưa biết), nên ta chỉ cần cộng dồn phần thưởng cho đến lúc đó; còn nếu bắt buộc phải xử lý chuỗi trạng thái – hành động có độ dài vô hạn, có lẽ ta sẽ phải cắt đứt cưỡng bức ở giai đoạn mà lũy thừa của hệ số chiết khấu $\gamma$ đã tiến đủ gần về 0 để xấp xỉ chính bản thân $R_i$.

Mặt khác, ưu điểm của phương pháp Monte Carlo là nó có thể học một cách mạnh mẽ (Robust / 頑健) ngay cả khi hàm phần thưởng không tuân thủ nghiêm ngặt Quá trình quyết định Markov (Markov Decision Process / マルコフ決定過程) [5, 6]. Mặc dù phương pháp TD được giới thiệu tiếp theo rút ra một quy tắc học (Learning Rule / 学習則) dựa trên tiền đề là Quá trình quyết định Markov, nhưng trường hợp của phương pháp Monte Carlo lại dựa trên lợi tức, và suy cho cùng, ngay cả khi phần thưởng ở mỗi thời điểm được gộp lại và trao cho tác tử vào cuối tập kịch bản, nội dung học tập vẫn không có sự khác biệt. Trong những trường hợp khó có thể đánh giá từng bước trong một tập kịch bản, bạn có thể cân nhắc việc đưa vào sử dụng phương pháp Monte Carlo.

Việc học hàm giá trị bằng phương pháp Monte Carlo sử dụng lợi tức thu được từ kinh nghiệm, nên lý tưởng nhất là nó có thể thu được giá trị kỳ vọng của lợi tức thực sự mà không bị độ lệch (Bias / バイアス). Tuy nhiên, có thể dễ dàng tưởng tượng rằng sự phân bố của các chuỗi trạng thái – hành động dùng để thực sự tính toán lợi tức sẽ có phương sai (Variance / 分散) ngày càng mở rộng khi chuỗi càng dài (giống như vòng tròn dự báo bão lớn dần lên). Nếu ta có thể chuẩn bị vô số chuỗi cho mỗi trạng thái, thì phương sai này sẽ không gây ra vấn đề lớn; nhưng trên thực tế, ta phải tiến hành xấp xỉ bằng phương pháp Monte Carlo với một số lượng chuỗi hữu hạn không nhiều đến thế. Khi đó, hàm giá trị học được sẽ bị phân tán lớn tùy thuộc vào xu hướng của các chuỗi được lấy mẫu. Phương sai của kết quả học tập này rất phiền toái trong thực tế ứng dụng, và trong những trường hợp cực đoan, nó thậm chí còn phân định sự thành bại của bài toán muốn giải quyết.

3-1-2 Phương pháp TD

Vì phương pháp Monte Carlo chỉ cập nhật hàm giá trị sau khi thu được toàn bộ chuỗi trạng thái – hành động cho đến khi kết thúc tập kịch bản, nên nó chịu ảnh hưởng mạnh mẽ từ phương sai lớn vốn có của phân phối tạo ra toàn bộ chuỗi trạng thái – hành động này. Vậy, làm thế nào để chúng ta có thể ước lượng (Estimate / 推定) giá trị kỳ vọng của lợi tức – đóng vai trò là tín hiệu huấn luyện đối với hàm giá trị – trong khi vẫn kìm hãm được ảnh hưởng của hành vi mang tính xác suất? Điều này có thể được nhìn thấy bằng cách tập trung vào cấu trúc đệ quy của lợi tức dưới đây.

$$R_t = \sum_{k=0}^\infty \gamma^k r_{t+k}$$
$$= r_t + \sum_{k=1}^\infty \gamma^k r_{t+k}$$
$$= r_t + \gamma \sum_{k=0}^\infty \gamma^k r_{t+1+k}$$
$$= r_t + \gamma R_{t+1} \tag{3.4}$$

Như vậy, lợi tức $R_t$ kể từ thời điểm $t$ trở đi có thể được biểu diễn dưới dạng tổng của phần thưởng $r_t$ tại thời điểm hiện tại và lợi tức $R_{t+1}$ từ thời điểm tiếp theo được chiết khấu 1 lần. Điều này cũng đúng với kiểu hữu hạn chứ không chỉ riêng kiểu chiết khấu. Ngoài ra, cấu trúc đệ quy này trong ngữ cảnh Điều khiển tối ưu (Optimal Control / 最適制御) có thể nói là thỏa mãn Phương trình Hamilton-Jacobi-Bellman (Hamilton-Jacobi-Bellman Equation / Hamilton-Jacobi-Bellman 方程式) (trong đó trường hợp đặc biệt là Phương trình Bellman (Bellman Equation / ベルマン方程式)), và Quy hoạch động (Dynamic Programming / 動的計画法) thường được sử dụng để tối ưu hóa nó [7].

Cấu trúc đệ quy này cũng có thể được xác nhận trong hàm giá trị,

$$V(s_t) = \mathbb{E}_{a_t \sim \pi(a_t \mid s_t), p_{\mathcal{T}}(\tau \mid s_t, a_t; \pi)} [R_t \mid s_t]$$
$$= \mathbb{E}_{a_t \sim \pi(a_t \mid s_t), p_{\mathcal{T}}(\tau \mid s_t, a_t; \pi)} [r_t + \gamma R_{t+1} \mid s_t]$$
$$= \mathbb{E}_{a_t \sim \pi(a_t \mid s_t), s_{t+1} \sim p_e(s_{t+1} \mid s_t, a_t)} [r_t \mid s_t]$$
$$+ \mathbb{E}_{a_t \sim \pi(a_t \mid s_t), s_{t+1} \sim p_e(s_{t+1} \mid s_t, a_t)} [ \gamma \mathbb{E}_{a_{t+1} \sim \pi(a_{t+1} \mid s_{t+1}), p_{\mathcal{T}}(\tau \mid s_{t+1}, a_{t+1}; \pi)} [R_{t+1} \mid s_{t+1}] \mid s_t ]$$
$$= \mathbb{E}_{a_t \sim \pi(a_t \mid s_t), s_{t+1} \sim p_e(s_{t+1} \mid s_t, a_t)} [r_t + \gamma V(s_{t+1}) \mid s_t] \tag{3.5}$$

Như vậy, mặc dù phép toán kỳ vọng đối với chính sách $\pi$ và xác suất chuyển trạng thái $p_e$ vẫn còn đó, nhưng $V(s_t)$ có thể được biểu diễn bằng $r_t$ và hàm giá trị của thời điểm tiếp theo $V(s_{t+1})$. Phép toán kỳ vọng còn lại này có thể được xấp xỉ bằng cách sử dụng phương pháp Monte Carlo vừa nãy; tuy nhiên, khác với giá trị kỳ vọng đối với chuỗi trạng thái – hành động $p_{\mathcal{T}}$ vừa nãy, hành vi xác suất ở đây chỉ là sinh ra từ $\pi, p_e$ mỗi thứ 1 lần, do đó có thể triệt tiêu đáng kể phương sai của nó. Đồng thời, có thể tưởng tượng rằng vì $r_t$ bao gồm trong hàm giá trị tuân theo hành vi xác suất và giá trị thực tế của nó được môi trường cung cấp, nên nội dung cần dự đoán sẽ giảm đi và độ chính xác sẽ tăng lên. Đặc biệt, nếu hàm phần thưởng chỉ phụ thuộc vào $s_t$, thì $r_t$ sẽ nằm ngoài phép toán kỳ vọng và được đưa ra một cách quyết định (Deterministic / 決定的).

Tận dụng cấu trúc đệ quy của phương trình (3.5), ta có thể thấy rằng chỉ cần giải bài toán cực tiểu hóa theo trình tự tương tự như phương pháp Monte Carlo là được.

$$\mathcal{L}_V^{\text{TD}} = \frac{1}{N} \sum_{i=1}^N \left\{ \frac{1}{2} (r_i + \gamma V(s_i’) – V(s_i))^2 \right\} \tag{3.6}$$

Ở đây, $r + \gamma V(s’) – V(s) = \delta$ trở thành sai số (Error / 誤差) đối với “chênh lệch thời gian” của 1 bước thời gian, do đó nó được gọi là sai số TD (TD Error / TD誤差). Ngoài ra, nếu bạn muốn biết liệu hàm giá trị (Value Function / 価値関数) được học thông qua bài toán cực tiểu hóa này có thực sự hội tụ về giá trị kỳ vọng của lợi tức (Return / 収益) hay không, bạn có thể tham khảo tài liệu [1] để biết chi tiết. Một điểm cần lưu ý là, khác với phương pháp Monte Carlo trước đó, trong phương pháp TD thì tín hiệu huấn luyện (Teacher Signal / 教師信号) sẽ bao gồm cả giá trị dự đoán $V(s_{t+1})$, tương đương với phương pháp Bootstrap (Bootstrap Method / ブートストラップ法) [8]. Về mặt trực quan, ở giai đoạn quá trình học chưa hội tụ đủ, giá trị dự đoán này chắc chắn vẫn còn sai số, và tín hiệu huấn luyện chứa sai số đó sẽ gây ra độ lệch (Bias / バイアス) cho $V(s_t)$.

Tùy thuộc vào bài toán, có những trường hợp tập kịch bản (Episode / エピソード) bị buộc phải chấm dứt tùy theo sự thất bại hay thành công, nhưng hàm giá trị của trạng thái $s_{\text{end}}$ lúc này trong phương pháp TD sẽ mãi mãi không thể học được và tiếp tục trở thành độ lệch do không tồn tại trạng thái của thời điểm tiếp theo. Trong trường hợp này, bằng cách coi $s_{\text{end}}$ là một trạng thái hấp thụ (Absorbing State / 吸収状態) [9] và giả định rằng trạng thái sẽ không thay đổi đối với bất kỳ hành động nào và trả về một phần thưởng không đổi $r_{\text{end}}$, lợi tức và hàm giá trị có thể được đưa ra một cách giải tích bằng công thức sau.

$$ V(s_{\text{end}}) = \frac{r_{\text{end}}}{1 – \gamma} \tag{3.7}$$

Sẽ tốt hơn nếu sử dụng điều này thay cho $V(s_{\text{end}})$ do bộ xấp xỉ hàm (Function Approximator / 関数近似器) xuất ra, nhưng vấn đề là có những trường hợp $r_{\text{end}}$ không rõ ràng. Trong nhiều thư viện Học tăng cường (sâu) (Deep Reinforcement Learning Library / (深層)強化学習ライブラリ) [10, 11, 12] được phát triển gần đây, người ta thường triển khai theo khuyến nghị của các sách giáo khoa và bài báo rằng nếu đặt $r_{\text{end}} = 0$ (tức là $V(s_{\text{end}}) = 0$ và $\delta = r – V(s)$) thì sẽ trở nên vô thông tin, nhưng trên thực tế cần phải cẩn thận. Lấy một ví dụ dễ hiểu, hãy xem xét một bài toán trong đó $s_{\text{end}}$ tương ứng với sự thất bại. Phần thưởng tại $s_{\text{end}}$ của bài toán này nếu là $r > 0$, việc bị kết thúc cưỡng bức có thể nói là hội tụ về một phần thưởng/giá trị ít hơn so với ban đầu, điều này dẫn đến việc khám phá các trạng thái khác để không rơi vào cùng một trạng thái (thất bại). Kết quả là điều này sẽ thúc đẩy việc tránh thất bại nên cũng tốt, nhưng ngược lại, nếu phần thưởng tại $s_{\text{end}}$ được thiết lập là $r < 0$, thì $s_{\text{end}}$ lại được coi là có giá trị cao hơn bình thường, và nó sẽ học để tích cực tiến tới đó. Như vậy, vì $r_{\text{end}}$ có thể vô tình mang lại một hình phạt (Penalty / ペナルティ) hoặc phần thưởng thêm (Bonus / ボーナス) ngầm định, nên đặc biệt phải chú ý đến việc thiết kế phần thưởng khi cắt đứt tập kịch bản do thất bại/thành công [13].

Nhân tiện, nếu hàm giá trị được xấp xỉ hàm tuyến tính (Linear Function Approximation / 線形関数近似), gradient (đạo hàm) của tham số (trọng số $w$ đối với cơ sở $\phi$) đối với bài toán cực tiểu hóa ở trên (để đơn giản, giả sử $N = 1$) và quy tắc cập nhật (Update Rule / 更新則) sử dụng nó được cho như sau.

$$ \nabla_w \mathcal{L}_V^{\text{TD}} = -(r_i + \gamma V(s_i’) – V(s_i))\phi(s_i) \tag{3.8} $$

$$ w \leftarrow w – \alpha \nabla_w \mathcal{L}_V^{\text{TD}} $$

$$ = w + \alpha(r_i + \gamma V(s_i’) – V(s_i))\phi(s_i) \tag{3.9}$$

Ở đây, $\alpha > 0$ là siêu tham số (Hyperparameter / ハイパーパラメータ) được gọi là tốc độ học (Learning Rate / 学習率) hoặc kích thước bước (Step Size / ステップサイズ). Quy tắc cập nhật này hoàn toàn nhất quán với các mô tả về học TD (TD Learning / TD学習) thường được giới thiệu trong các cuốn sách khác [1, 14], và hơn nữa, nếu cơ sở $\phi$ chỉ trả về 1 đối với các trạng thái thỏa mãn một điều kiện cụ thể và trả về 0 trong các trường hợp khác, thì nó sẽ trùng khớp với học TD trong Học tăng cường sử dụng biểu diễn bảng (Table Representation / テーブル表現). Cùng với sự phát triển của Học sâu (Deep Learning / 深層学習) và vi phân tự động (Automatic Differentiation / 自動微分) trong những năm gần đây, nhiều bài toán học đã được mô tả dưới dạng bài toán cực tiểu hóa hàm mất mát (Loss Function / 損失関数) tương ứng, và Học tăng cường (sâu) cũng có xu hướng đó, vì vậy trong cuốn sách này tôi đã thiết lập công thức dưới dạng bài toán cực tiểu hóa như trên. Tuy nhiên, hãy nhớ rằng điều này không có nghĩa là chúng ta đang xử lý một bài toán khác với công thức Học tăng cường truyền thống.

Đúng hơn là vì không còn bị ràng buộc bởi hàm mất mát sử dụng sai số bình phương (Squared Error / 二乗誤差) vốn nhất quán với Học tăng cường truyền thống nữa, nên việc đưa vào các hàm mất mát có xu hướng học khác nhau trở nên dễ dàng hơn, có thể nói như vậy. Ví dụ, trong Deep Q-Network (DQN) [15] vốn được coi là đại diện cho Học tăng cường sâu, việc học được ổn định bằng cách áp dụng kỹ thuật cắt xén (Clipping / クリッピング) khi gradient liên quan đến hàm mất mát trên vượt quá một độ lớn nhất định. Mặc dù điều này không hoàn toàn nghiêm ngặt tùy thuộc vào cách triển khai, nhưng nó có thể được giải thích như là việc thay thế mất mát sai số bình phương bằng Mất mát Huber (Huber Loss / Huber 損失) [16] có ngưỡng $d$ như sau.

$$ \mathcal{L}(x; d) = \begin{cases} \frac{1}{2} x^2 & |x| \le d \ d(|x| – \frac{1}{2} d) & \text{otherwise} \end{cases} \tag{3.10}$$

Hoặc, ngay cả trước khi Học tăng cường sâu ra đời, cũng đã có báo cáo cho rằng việc thay thế hoàn toàn mất mát sai số bình phương bằng mất mát giá trị tuyệt đối (Absolute Value Loss / 絶対値損失) có thể giúp quá trình cập nhật ổn định hơn [17].

3-1-3 Hàm lợi thế (Advantage Function / アドバンテージ関数)

Tại đây, tôi sẽ giới thiệu thêm một khái niệm nữa thường xuyên xuất hiện trong Học tăng cường (sâu) gần đây, đó là Hàm lợi thế [18, 19]. Hàm lợi thế $A(s, a)$ được định nghĩa bằng công thức sau.

$$ A(s, a) = Q(s, a) – V(s) \tag{3.11}$$

Tức là, nó chỉ ra lượng thay đổi giá trị biến thiên tùy theo hành động $a$, và là một loại hàm giá trị thể hiện mức độ tốt xấu của hành động một cách tương đối. Vì sự đánh giá tương đối này đôi khi rất hữu ích như sẽ mô tả sau, nên bạn hãy nhớ rằng có một số thuật toán Học tăng cường tận dụng hàm lợi thế.

Thêm vào đó, lý do tại sao mãi đến lúc này tôi mới giới thiệu nó là vì việc học trực tiếp $A(s, a)$ rất khó, nhưng mặt khác, $A(s, a)$ gần như trùng khớp với sai số TD $\delta$ liên quan đến $V(s)$. Nếu chúng ta khai triển hàm giá trị hành động (Action Value Function / 行動価値関数) $Q(s, a)$,

$$\begin{aligned} Q(s, a) &= \mathbb{E}_{p_{\mathcal{T}}(\tau \mid s_t, a_t; \pi)}[R_t \mid s_t, a_t] \\ &= \mathbb{E}_{s_{t+1} \sim p_e(s_{t+1} \mid s_t, a_t)}[r_t \mid s_t, a_t] \\ &\quad + \mathbb{E}_{s_{t+1} \sim p_e(s_{t+1} \mid s_t, a_t)} \left[\gamma \mathbb{E}_{a_{t+1} \sim \pi(a_{t+1} \mid s_{t+1}), p_{\mathcal{T}}(\tau \mid s_{t+1}, a_{t+1}; \pi)}[R_{t+1} \mid s_{t+1}] \mid s_t, a_t\right] \\ &= \mathbb{E}_{s_{t+1} \sim p_e(s_{t+1} \mid s_t, a_t)}[r_t + \gamma V(s_{t+1}) \mid s_t, a_t] \quad(3.12) \end{aligned}$$

ta có thể viết như trên. Nhân tiện, trong giá trị kỳ vọng được chia làm 2 phần ở dòng thứ 2 từ dưới lên, nếu ta chuyển số hạng liên quan đến $a_{t+1}$ từ bên trong ra bên ngoài, ta sẽ thu được cấu trúc đệ quy cho $Q(s, a)$, và nếu ta dùng nó làm tín hiệu huấn luyện thì nó sẽ trở thành phương pháp học của hàm giá trị hành động có tên là SARSA [20]. Hoặc, nếu chú ý rằng khi chính sách (Policy / 方策) $\pi$ là tối ưu ($\pi = \pi^*$) thì $V(s_{t+1}) = \max_{a_{t+1}} Q(s_{t+1}, a_{t+1})$, và ta sử dụng điều này làm tín hiệu huấn luyện, ta sẽ có được Q-learning [15, 21].

Dù sao đi nữa, bằng cách xấp xỉ (Approximate / 近似) giá trị kỳ vọng còn sót lại cuối cùng, ta có thể coi $Q(s, a) \simeq r + \gamma V(s’)$, và do đó $A(s, a) = Q(s, a) – V(s) \simeq r + \gamma V(s’) – V(s) = \delta$, nhờ vậy hàm lợi thế được kết nối với sai số TD. Kết quả là, khi triển khai các thuật toán Học tăng cường sử dụng hàm lợi thế xuất hiện sau này, ta có thể chọn học riêng biệt 2 loại hàm giá trị $Q(s, a)$ và $V(s)$ rồi sử dụng đúng như định nghĩa, hoặc chú trọng vào mối quan hệ với sai số TD để chỉ học $V(s)$ và tính toán xấp xỉ. Dựa trên quy tắc kinh nghiệm cá nhân mà nói, khi số lượng hàm cần học tăng lên, việc triển khai sẽ phức tạp hơn và việc điều chỉnh cũng thường khó khăn hơn, vì vậy trừ khi có lý do đặc biệt, tôi khuyên bạn nên chọn cách sau.

3-2 Tổng quát hóa hàm giá trị

Tôi đã giới thiệu phương pháp Monte Carlo và phương pháp TD ở trên, nhưng mỗi phương pháp đều có đặc điểm riêng nên khó có thể khẳng định chắc chắn nên sử dụng cái nào. Có lẽ vì vậy, một sự tổng quát hóa đã được thực hiện để kết nối và bao hàm hai phương pháp này một cách thích hợp. Ở đây, tôi sẽ giới thiệu 3 loại phương pháp tổng quát hóa đó.

3-2-1 Phương pháp TD n bước (n-step TD Method / nステップTD法)

Đầu tiên, hãy cùng xem xét phương pháp TD $n$ bước đơn giản nhất. Phương pháp TD đã sử dụng cấu trúc đệ quy của hàm giá trị (lợi tức) để đánh giá mức độ chênh lệch thời gian của 1 bước. Ở đây, vì nó có cấu trúc đệ quy, nên có thể dễ dàng tưởng tượng rằng không chỉ 1 bước mà ta cũng có thể xem xét sự chênh lệch của $n$ bước thời gian như sau.

$$V(s_t) \simeq \sum_{k=0}^{n-1} \gamma^k r_{t+k} + \gamma^n V(s_{t+n}) \tag{3.13}$$
$$\delta_t^n = \sum_{k=0}^{n-1} \gamma^k r_{t+k} + \gamma^n V(s_{t+n}) – V(s_t) \tag{3.14}$$

Dù đơn giản, nhưng nếu tận dụng cấu trúc đệ quy theo cách này, sẽ thu được nhiều thông tin hơn dưới dạng phần thưởng từ kinh nghiệm, đồng thời ảnh hưởng từ giá trị ước lượng (Estimated Value / 推定値) của hàm giá trị tại thời điểm tương lai chứa trong tín hiệu huấn luyện sẽ suy giảm theo cấp số nhân do hệ số chiết khấu (Discount Factor / 割引率), nên kết quả học tập sẽ ít bị sinh ra độ lệch hơn. Hơn nữa, nếu ta đưa đến giới hạn $n \to \infty$, vì $\lim_{n \to \infty} \gamma^n = 0$, nó sẽ trở thành tổng phần thưởng thực sự thu được qua kinh nghiệm và cũng có thể thấy rằng nó trùng khớp với phương pháp Monte Carlo. Dĩ nhiên, khi thực sự sử dụng phương pháp TD $n$ bước này, không phải cứ làm cho $n$ lớn lên một cách mù quáng để tiến gần đến phương pháp Monte Carlo là tốt, mà phải tìm ra một $n$ vừa phải trong khi lưu ý rằng phương sai (Variance / 分散) của các hành vi xác suất do chuyển trạng thái (State Transition / 状態遷移) ngẫu nhiên và chính sách sẽ ngày càng lớn. Tuy nhiên, không phải lúc nào cũng tìm được một giá trị tối ưu với chỉ một số $n$ duy nhất.

3-2-2 Phương pháp $\text{TD}(\lambda)$

Vì vậy, thay vì chỉ giới hạn ở một giá trị $n$ duy nhất trong phương pháp TD $n$ bước ($n$-step TD Method / $n$ステップTD法), người ta đã nghĩ ra phương pháp kết hợp nhiều giá trị $n$ khác nhau. Khi coi tín hiệu huấn luyện (Teacher Signal / 教師信号) (lợi tức $n$ bước ($n$-step Return / $n$ステップ収益)) trong phương pháp TD $n$ bước là $\sum_{k=0}^{n-1} \gamma^k r_{t+k} + \gamma^n V(s_{t+n}) = G_t^n$, sự kết hợp này được định nghĩa là lợi tức (Return / 収益) $\lambda$ bằng cách sử dụng $\lambda \in [0, 1]$ như sau.

$$G_t^\lambda = \begin{cases} G_t^\infty & \lambda = 1 \\ (1 – \lambda) \sum_{k=1}^\infty \lambda^{k-1} G_t^k & \text{otherwise} \end{cases} \tag{3.15}$$

Nói cách khác, $\lambda$ càng lớn thì trung bình cộng theo cấp số nhân (Exponential Moving Average / 指数加重平均) càng chú trọng vào các trường hợp $n$ lớn. Phương pháp sử dụng $G_t^\lambda$ này làm tín hiệu huấn luyện thường được gọi chung là phương pháp $\text{TD}(\lambda)$ ($\text{TD}(\lambda)$ Method / $\text{TD}(\lambda)$法).

$$\delta_t^\lambda = G_t^\lambda – V(s_t) \tag{3.16}$$

Như có thể thấy từ định nghĩa của $G_t^\lambda$, khi $\lambda = 1$, nó lại trùng khớp với phương pháp Monte Carlo (Monte Carlo Method / モンテカルロ法).

Theo một cách hiểu khác, nếu tạm thời coi phương trình (3.16) với điều kiện $\lambda \neq 1$, sau đó triển khai và sắp xếp lại, ta sẽ được như sau.

$$\delta_t^\lambda = (1-\lambda) \sum_{k=0}^\infty \lambda^k r_t + (1-\lambda) \sum_{k=1}^\infty \lambda^k \gamma r_{t+1} + \dots$$
$$+ \gamma V(s_{t+1}) – \gamma \lambda V(s_{t+1}) – \dots$$
$$- V(s_t)$$
$$= (r_t + \gamma V(s_{t+1}) – V(s_t)) + \gamma \lambda (r_{t+1} + \gamma V(s_{t+2}) – V(s_{t+1})) + \dots$$
$$= \sum_{k=0}^\infty (\gamma \lambda)^k \delta_{t+k} \tag{3.17}$$

Mặc dù đã giả định $\lambda \neq 1$ trong quá trình triển khai, nhưng khi biểu diễn phương pháp $\text{TD}(\lambda)$ dưới dạng này, nếu $\lambda = 1$, các thành phần của hàm giá trị (Value Function / 価値関数) nằm trong sai số TD (TD Error / TD誤差) sẽ triệt tiêu lẫn nhau ngoại trừ $V(s_t)$ và chỉ còn lại lợi tức $R_t$, do đó không cần thiết phải rẽ nhánh điều kiện cho $\lambda = 1$. Tóm lại, có thể hiểu rằng phương pháp $\text{TD}(\lambda)$, khi học hàm giá trị tại một trạng thái $s_t$, không chỉ sử dụng sai số TD tại thời điểm đó mà còn sử dụng sự tích lũy của các sai số TD đạt được trong tương lai. Nhờ đó, việc tái sử dụng nhiều thông tin hơn cho quá trình học có thể mang lại kỳ vọng cải thiện hiệu quả học tập (Learning Efficiency / 学習効率). Nhân tiện, trong những năm gần đây, Bộ ước lượng lợi thế tổng quát (Generalized Advantage Estimator / Generalized Advantage Estimator) (GAE) [22] đã được đề xuất như một phiên bản $n$ bước của hàm lợi thế (Advantage Function / アドバンテージ関数), tuy nhiên, phương trình cuối cùng cũng được đưa ra tương tự như trên; mặc dù có ý kiến cho rằng nó khác với phương pháp $\text{TD}(\lambda)$, nhưng về bản chất, chúng ta có thể thấy rằng chúng hoàn toàn tương đương nhau.

Lưu ý rằng, trong phương pháp $\text{TD}(\lambda)$, $\lambda$ tuy mang lại sự linh hoạt ở chỗ người thiết kế phải điều chỉnh (Tuning) tương tự như hệ số chiết khấu (Discount Factor / 割引率) $\gamma$ đối với lợi tức, nhưng nó cũng đòi hỏi sự tinh chỉnh thủ công giống như tham số $n$. Mặc dù phương pháp luận để xác định động giá trị của $\lambda$ [23] cũng đang được thảo luận, nhưng cảm giác chung là nó vẫn chưa thực sự phổ biến.

3-2-3 Dấu vết tính đủ điều kiện (Eligibility Trace / 適正度履歴)

Cho đến phần này, chúng ta đã giới thiệu phương pháp TD $n$ bước và phương pháp $\text{TD}(\lambda)$. Tuy nhiên, điểm khó khăn của những phương pháp này là để cập nhật giá trị ước lượng gần đúng của hàm giá trị $V(s_t)$ cho trạng thái $s_t$, ta phải đợi đến trước $n$ bước trong phương pháp TD $n$ bước, hoặc đối với phương pháp $\text{TD}(\lambda)$ – tương tự như phương pháp Monte Carlo – ta phải chờ cho đến khi ảnh hưởng trong tương lai bị suy giảm đủ nhỏ thông qua $\gamma \lambda$ đến mức có thể bỏ qua, hoặc chờ cho đến khi kết thúc tập kịch bản (Episode / エピソード), từ đó thu thập được chuỗi trạng thái – hành động và phần thưởng tương ứng ở mỗi thời điểm thì mới có thể thực hiện. Trong Học tăng cường sâu (Deep Reinforcement Learning / 深層強化学習) gần đây, do thường phân chia tách biệt giai đoạn thu thập dữ liệu kinh nghiệm với giai đoạn học hàm giá trị và hàm chính sách thông qua Phát lại kinh nghiệm (Experience Replay / 経験再生) được mô tả sau, nên vấn đề này dần không còn bị xem là trở ngại lớn nữa. Tuy nhiên, trong Học tăng cường truyền thống, sự chậm trễ trong thời điểm cập nhật này đòi hỏi phải tích lũy thêm những dữ liệu kinh nghiệm dư thừa.

Để thực hiện cập nhật ở từng bước thời gian một theo cách học trực tuyến (Online Learning / オンライン) truyền thống, người ta thường sử dụng khái niệm dấu vết tính đủ điều kiện (Eligibility Trace / 適正度履歴) [24], vốn là một góc nhìn khác của phương pháp $\text{TD}(\lambda)$. Theo cách này, trước tiên hãy xem xét việc sử dụng phương pháp $\text{TD}(\lambda)$ để cập nhật tham số $\theta$ dùng cho việc xấp xỉ hàm giá trị $V(s_t)$ thông qua đạo hàm bậc nhất (First-order Gradient / 一次勾配).

$$\mathcal{L}_V^{\text{TD}(\lambda)} = \frac{1}{2} (G_t^\lambda – V(s_t))^2 \tag{3.18}$$
$$\nabla_\theta \mathcal{L}_V^{\text{TD}(\lambda)} = -(G_t^\lambda – V(s_t)) \nabla_\theta V(s_t)$$
$$= – \sum_{k=0}^\infty (\gamma \lambda)^k \delta_{t+k} \nabla_\theta V(s_t)$$
$$= -\delta_t \nabla_\theta V(s_t) – \gamma \lambda \delta_{t+1} \nabla_\theta V(s_t) – \dots \tag{3.19}$$
$$\theta \leftarrow \theta – \alpha \nabla_\theta \mathcal{L}_V^{\text{TD}(\lambda)} \tag{3.20}$$

Như có thể thấy từ quy tắc cập nhật này, tại thời điểm $t$, do sai số TD trong tương lai $\delta_{t+k}$ $(k = 1, 2, \dots)$ là chưa biết, nên không thể thực hiện cập nhật ngay cho đến khi chúng thực sự được đo lường. Tuy nhiên, mặt khác, điều cần chú ý là phần nhân với $\delta_{t+k}$ chính là $-(\gamma \lambda)^k \nabla_\theta V(s_t)$, và ngay tại thời điểm $t$, bản thân những giá trị này đều có thể tính toán được. Ngoài ra, nếu ta chỉ trích xuất những thành phần liên quan đến $\delta_t$ từ khối lượng cập nhật tính đến thời điểm $t$,

$$\delta_t \{ -\nabla_\theta V(s_t) – (\gamma \lambda) \nabla_\theta V(s_{t-1}) – (\gamma \lambda)^2 \nabla_\theta V(s_{t-2})$$
$$- \dots – (\gamma \lambda)^t \nabla_\theta V(s_0) \}$$
$$= -\delta_t \sum_{k=0}^t (\gamma \lambda)^{t-k} \nabla_\theta V(s_k)$$
$$= -\delta_t e_t \tag{3.21}$$

bạn có thể nhận thấy điều này. Ở đây, tổng chiết khấu của các đạo hàm trong quá khứ được gọi chính xác là dấu vết tính đủ điều kiện $e_t$.

Bằng cách nhìn ngược về quá khứ như thế này, ngay cả khi không thể thực hiện toàn bộ quá trình cập nhật bởi $\delta_t$ tại thời điểm $t$, nếu ta chia nhỏ nó ra và thực hiện tuần tự trong tương lai, thì cuối cùng khi $t \to \infty$, quá trình cập nhật bằng $\delta_t$ sẽ được hoàn thành. Từ những điều trên, quy tắc cập nhật tuần tự của phương pháp $\text{TD}(\lambda)$ sử dụng dấu vết tính đủ điều kiện sẽ như sau.

$$e_t = \begin{cases} -\nabla_\theta V(s_0) & t = 0 \\ \gamma \lambda e_{t-1} – \nabla_\theta V(s_t) & t > 0 \end{cases} \tag{3.22}$$
$$\theta \leftarrow \theta – \alpha \delta_t e_t \tag{3.23}$$

Thông qua việc sử dụng dấu vết tính đủ điều kiện, ta có thể cập nhật bằng phương pháp $\text{TD}(\lambda)$ mà không cần phải chờ đến khi giá trị suy giảm đủ mức hoặc chờ kết thúc tập kịch bản. Hơn nữa, tương tự như phương pháp $\text{TD}(\lambda)$ gốc, do việc tái sử dụng thông tin từ các thời điểm khác nhau để cập nhật tham số, nên nó được kỳ vọng sẽ mang lại hiệu quả học tập cao hơn so với phương pháp TD thông thường.

Tuy nhiên, như một điểm cần lưu ý về mặt lý thuyết, việc tích lũy kinh nghiệm mới thông qua hàm giá trị và chính sách đã được cập nhật ít nhiều sẽ sinh ra độ lệch (Bias / バイアス), và các cải tiến nhằm triệt tiêu điều đó đã được đề xuất [25, 26]. Ngoài ra, cần lưu ý rằng đạo hàm được tích lũy trong $e_t$ là những giá trị được tính toán tại thời điểm $t$ hoặc trong quá khứ xa hơn, và xét đến việc $\theta$ được cập nhật tuần tự ở mỗi thời điểm, đạo hàm tính toán trong quá khứ được dựa trên tham số (Parameter / パラメータ) quá khứ $\theta_{\text{old}}$, chứ không phải tham số hiện tại $\theta$. Trong trường hợp hàm xấp xỉ tuyến tính (Linear Function Approximation / 線形関数近似) bao gồm cả biểu diễn bảng, $\nabla_\theta V(s_t) = \phi(s_t)$, và nó vẫn đồng nhất cho dù $\theta$ có biến động, do đó việc sử dụng đạo hàm quá khứ tích lũy này cho bản cập nhật tham số hiện tại sẽ không thành vấn đề. Thế nhưng, nếu đó là hàm xấp xỉ phi tuyến (Nonlinear Function Approximation / 非線形関数近似) sử dụng mạng nơ-ron sâu (Deep Neural Network / DNN), như đã đề cập ở chương trước, cơ sở $\phi$ có thể được coi là đang cập nhật, nên đạo hàm cũng sẽ biến động theo sự thay đổi của $\theta$. Nói cách khác, khi kết hợp hàm xấp xỉ phi tuyến với phương pháp $\text{TD}(\lambda)$ sử dụng dấu vết tính đủ điều kiện, nó sẽ thực hiện việc cập nhật khác biệt so với phương pháp $\text{TD}(\lambda)$ ban đầu, dẫn đến việc học trở nên bất ổn định [27, 28]. Mặc dù các biện pháp đối phó với điều này đã được nghiên cứu, nhưng gần đây việc sử dụng dấu vết tính đủ điều kiện đang dần chìm xuống, và cảm giác chung là người ta thường ưu tiên sử dụng phương pháp TD $n$ bước hoặc phương pháp $\text{TD}(\lambda)$ đợi sau khi kết thúc tập kịch bản. Tuy nhiên, nếu là một bài toán khó khăn/không phù hợp để lưu giữ nhiều thông tin chuyển đổi (do giới hạn dung lượng bộ nhớ, vấn đề quyền riêng tư, môi trường thay đổi theo thời gian, v.v.), thì phương pháp này chắc chắn vẫn tiếp tục phát huy tính hiệu quả; do đó cần lưu ý rằng không phải bản thân dấu vết tính đủ điều kiện đã trở nên vô dụng.

3-3 Học Hàm chính sách (Policy Function / 方策関数)

Cho đến đây, chúng ta đã giới thiệu các thuật toán học cơ bản của hàm giá trị, trong đó điểm mấu chốt là làm thế nào để xấp xỉ và cung cấp giá trị kỳ vọng của lợi tức vốn đóng vai trò làm mục tiêu trong Học có giám sát. Mặt khác, khi tối ưu hóa hàm chính sách $\pi$, nó rất khác so với hàm giá trị. Mặc dù chính sách tối ưu $\pi^*(\cdot \mid s_t)$ đối với trạng thái $s_t$ ở một thời điểm nhất định có thể được định nghĩa từ mục đích của Học tăng cường là cực đại hóa hàm giá trị trạng thái (State Value Function / 状態価値関数) như sau, nhưng việc tín hiệu huấn luyện cụ thể là một ẩn số khiến bài toán trở nên hóc búa.

$$\pi^*(\cdot \mid s_t) = \arg\max_\pi V^\pi(s_t)$$
$$= \arg\max_\pi \mathbb{E}_{a_t \sim \pi(a_t \mid s_t)} [Q^\pi(s_t, a_t)]$$
$$= \arg\max_\pi \mathbb{E}_{a_t \sim \pi(a_t \mid s_t), p_{\mathcal{T}}(\tau \mid s_t, a_t; \pi)} [R_t \mid s_t] \tag{3.24}$$

Tóm lại, xác suất tạo ra chuỗi trạng thái – hành động (State-Action Trajectory Generation Probability / 状態・行動系列の生成確率) $p_{\mathcal{T}}$ trải dài từ hiện tại đến tương lai và hàm giá trị hành động (Action Value Function / 行動価値関数) $Q^\pi$ được tính toán theo đó đều phụ thuộc mạnh mẽ vào $\pi$; tuy nhiên, mối quan hệ đó lại bị ảnh hưởng bởi xác suất chuyển trạng thái $p_e$ của một môi trường hộp đen, khiến nó trở nên cực kỳ phức tạp.

Hơn nữa, tiến thoái lưỡng nan giữa khám phá và khai thác (Exploration-Exploitation Dilemma / 探索と知識利用のジレンマ) đã giới thiệu trước đó cũng trở thành một rào cản trong việc học hàm chính sách. Tức là, ngay cả khi phát hiện ra chính sách được cho là tối ưu tại thời điểm hiện tại, nếu hành vi bị quyết định cứng nhắc, nó sẽ dẫn đến việc bỏ lỡ các chính sách có thể mang lại lợi tức lớn hơn mà chúng ta chưa khám phá ra. Từ bối cảnh đó, có lẽ do vẫn chưa đạt được hiệu suất mong muốn trong việc học hàm chính sách, các phương pháp Học tăng cường mới trong những năm gần đây có xu hướng tập trung vào mảng này. Phần giới thiệu về các phương pháp tiên tiến đó sẽ được dành cho chương tiếp theo, tại đây chúng tôi chỉ trình bày các phương pháp nền tảng.

3-3-1 Mô hình sử dụng hàm giá trị hành động

Trước khi học hàm chính sách $\pi$ một cách rõ ràng (Explicitly), tôi muốn đề cập rằng có những trường hợp nó có thể được thiết kế thông qua hàm giá trị hành động $Q$ (hoặc hàm lợi thế $A$). Giống như đã định nghĩa ở phương trình trên, chính sách tối ưu $\pi^*$, nói một cách ngắn gọn, là thứ nhằm cực đại hóa $Q$. Nếu không gian hành động (Action Space / 行動空間) $\mathcal{A}$ là rời rạc, hay nói cách khác là có một số lượng hữu hạn các lựa chọn cho hành động $a_i (i = 1, 2, \dots, |\mathcal{A}|)$, thì bằng cách so sánh $Q$ tương ứng với mỗi lựa chọn, ta có thể phân biệt một cách khái quát đâu là hành động ưu việt nhất giúp cực đại hóa lợi tức trong tương lai. Đặc biệt, nếu quá trình học đạt đến $Q = Q^*$,

$$a^* = \arg\max_a Q^*(s, a) \tag{3.25}$$

chúng ta có thể khẳng định điều này, và $\pi$ sẽ là chính sách tham lam (Greedy Policy / グリーディ方策) sinh ra $a^*$ với xác suất bằng 1, đồng thời trở thành chính sách tối ưu $\pi^*$. Tuy nhiên, như đã đề cập ở trên, $Q$ học được tại thời điểm hiện tại không nhất thiết phải là $Q^*$, và ta cũng cần phải tính đến khả năng thu được lợi tức lớn hơn khi bước vào những tình huống chưa từng gặp. Vì vậy, người ta thường thay thế từng thành phần của tham số $\theta$ trong chính sách $\epsilon$-greedy của phương trình (2.7) hoặc chính sách Softmax (Softmax Policy / ソフトマックス方策) của phương trình (2.8) (hoặc các phiên bản mở rộng của chúng [29, 30, 31]) đã giới thiệu ở chương trước bằng $Q$ (hoặc $A$) tại mỗi hành động, nhằm triển khai một chính sách vừa coi trọng các hành động có giá trị hành động lớn, vừa giữ lại tính ngẫu nhiên trong hành vi. Như một ví dụ, chính sách Softmax dựa trên hàm giá trị hành động được ghi lại dưới đây.

$$\pi_{\text{softmax}}(a_t \mid s_t) = \frac{\exp(\beta Q(s_t, a_t))}{\sum_{i=1}^{|\mathcal{A}|} \exp(\beta Q(s_t, a_i))} \tag{3.26}$$

Ở đây, nghịch đảo nhiệt độ (Inverse Temperature / 逆温度) $\beta$ vẫn được giữ lại làm siêu tham số (Hyperparameter / ハイパーパラメータ), và việc điều chỉnh nó sẽ dùng để xử lý tiến thoái lưỡng nan giữa khám phá và khai thác. Nhân tiện, nếu là chính sách $\epsilon$-greedy và chính sách Softmax, dù sử dụng $Q$ hay $A$ thì kết quả thu được là hoàn toàn giống nhau. Điều này là do $A = Q – V$, và khi trạng thái $s$ được cung cấp làm điều kiện, sự khác biệt giữa $Q$ và $A$ chỉ nằm ở chỗ có trừ đi $V$ chung hay không; với chính sách $\epsilon$-greedy, hiển nhiên mối quan hệ lớn bé sẽ không bị đảo lộn, và ngay cả với chính sách Softmax, nếu đưa $V$ ra ngoài hàm số mũ thì tử số và mẫu số cũng sẽ triệt tiêu lẫn nhau.

Như vậy, nếu không gian hành động là rời rạc, ngay cả khi không trực tiếp học chính sách $\pi$, ta chỉ cần học hàm giá trị hành động $Q$, sau đó thiết kế nó thành một chính sách nhằm so sánh các giá trị tại từng hành động và ưu tiên chọn hành động có giá trị lớn hơn. Do đó, trong các bài toán có không gian hành động rời rạc, chủ đề chính thường là thuật toán học của hàm giá trị hành động $Q$. Lưu ý rằng, phương pháp SARSA và Học Q (Q-learning / Q学習) mà tôi đã đề cập qua ở trên chính là các thuật toán để học $Q$, nhưng chúng lần lượt được phân loại thành dạng On-policy (On-policy / 方策オン型) và Off-policy (Off-policy / 方策オフ型). Vì vậy, trong SARSA – nơi xử lý $r + \gamma Q(s_{t+1}, a_{t+1}) – Q(s_t, a_t)$ như sai số TD, hàm giá trị hành động thu được là $Q = Q^\pi \neq Q^*$, nên thiết kế chính sách như trên không hẳn luôn luôn có thể sinh ra $a^*$. Mặt khác, trong Học Q – nơi xử lý $r + \gamma \max_a Q(s_{t+1}, a) – Q(s_t, a_t)$ như sai số TD, nó là một quá trình học trong dạng Off-policy giả định một chính sách tối ưu, và với việc thiết lập $Q \to Q^*$, nó được kỳ vọng (nếu được học tập đầy đủ) sẽ tạo ra được $a^*$. Trong cuốn sách này, việc giới thiệu về các thuật toán học của hàm giá trị hành động $Q$ trong không gian hành động rời rạc sẽ chỉ dừng ở mức tối thiểu, nhưng nếu bạn muốn tìm hiểu chi tiết, xin hãy tham khảo các sách khác [32].

3-3-2 Phương pháp gradient chính sách (Policy-gradient Method / 方策勾配法)

Bây giờ quay trở lại chủ đề chính, chúng ta sẽ xem xét việc học rõ ràng (Explicitly) hàm chính sách $\pi$. Như đã đề cập ở chương trước, trước tiên chúng ta sẽ mô hình hóa $\pi$ bằng một phân phối xác suất tham số (Parametric Probability Distribution / パラメトリックな確率分布) có chứa tham số $\theta$ (có thể vi phân). Điều này, nếu là trong không gian hành động liên tục, một ví dụ tiêu biểu là phân phối chuẩn chéo (Diagonal Normal Distribution / 対角正規分布) $|A|$ chiều được chỉ định bởi $\theta = [\mu, \sigma]$ (vị trí trung tâm của phân phối $\mu \in \mathbb{R}^{|\mathcal{A}|}$ và độ lệch chuẩn $\sigma \in \mathbb{R}_+^{|\mathcal{A}|}$).

Trong phương pháp gradient chính sách, đúng như tên gọi của nó, việc cập nhật $\theta$ được thực hiện thông qua gradient. Vì chính sách tối ưu $\pi^*$ được định ra để thu được thông qua việc cực đại hóa hàm giá trị trạng thái $V$, nên về cơ bản nó hướng tới quy tắc cập nhật theo công thức sau.

$$\theta \leftarrow \theta + \alpha \nabla_\theta V(s_t) \tag{3.27}$$

Tuy nhiên, điều rắc rối có thể thấy rõ là việc tính toán $\nabla_\theta V$. Dựa theo định nghĩa của $V$, nếu thử tính toán một chút ta sẽ được như sau.

$$\nabla_\theta V(s_t) = \nabla_\theta \int \pi(a_t \mid s_t) Q(s_t, a_t) d a_t$$
$$= \int \nabla_\theta \pi(a_t \mid s_t) Q(s_t, a_t) d a_t + \int \pi(a_t \mid s_t) \nabla_\theta Q(s_t, a_t) d a_t$$
$$\tag{3.28}$$

Ở đây, mặc dù ta đang thay thế phép toán kỳ vọng bằng phép toán tích phân với giả định $\pi$ là một hàm mật độ xác suất nhắm vào không gian hành động liên tục, nhưng quy luật này cũng hoàn toàn tương tự đối với phép toán tính tổng của hàm khối lượng xác suất. Đối với số hạng thứ nhất, nếu tận dụng đặc tính vi phân của logarit tự nhiên để thay thế thành $\nabla_\theta \pi = \pi / \pi \nabla_\theta \pi = \pi \nabla_\theta \ln \pi$, nó có thể được chuyển đổi lại thành dạng giá trị kỳ vọng như sau.

$$\int \nabla_\theta \pi(a_t \mid s_t) Q(s_t, a_t) d a_t = \int \pi(a_t \mid s_t) \nabla_\theta \ln \pi(a_t \mid s_t) Q(s_t, a_t) d a_t$$
$$= \mathbb{E}_{\pi(a_t \mid s_t)} [ Q(s_t, a_t) \nabla_\theta \ln \pi(a_t \mid s_t) ] \tag{3.29}$$

Đối với số hạng thứ hai, nếu sử dụng cấu trúc đệ quy của hàm giá trị, ta có thể tiếp tục tính toán như sau.

$$\int \pi(a_t \mid s_t) \nabla_\theta Q(s_t, a_t) d a_t = \mathbb{E}_{\pi(a_t \mid s_t)} [ \nabla_\theta \mathbb{E}_{p_e(s_{t+1} \mid s_t, a_t)} [ r_t + \gamma V(s_{t+1}) ] ]$$
$$= \mathbb{E}_{\pi(a_t \mid s_t), p_e(s_{t+1} \mid s_t, a_t)} [ \gamma \nabla_\theta V(s_{t+1}) ] \tag{3.30}$$

Tại đây, cần lưu ý rằng vì phần thưởng $r_t$ là một giá trị số và không phụ thuộc rõ ràng vào $\theta$, nên gradient của nó bằng 0 và bị bỏ qua. Nhìn vào các số hạng còn lại, nó đã trở thành gradient đối với hàm giá trị tại đích đến sau khi chuyển đổi theo $\pi$ và xác suất chuyển trạng thái $p_e$ (mặc dù bị nhân với $\gamma$), cho thấy cấu trúc đệ quy lại xuất hiện ở đây. Tức là, men theo quỹ đạo của chuyển trạng thái được tạo ra bởi $\pi$ và $p_e$ (và xác suất thành công của sự chuyển đổi do $\gamma$), bằng cách tiếp tục cộng thêm $Q \nabla_\theta \ln \pi$ đã xuất hiện ở số hạng thứ nhất, ta có thể thu được $\nabla_\theta V$.

Do đó, mặc dù chi tiết cụ thể xin nhường lại cho các tài liệu khác (như [1]), nhưng $\nabla_\theta V$ cuối cùng có thể được biểu diễn một cách đơn giản như sau.

$$\nabla_\theta V(s_t) = \mathbb{E}_{s \sim p(s; p_e, \pi, \gamma), a \sim \pi(a \mid s)} [ Q(s, a) \nabla_\theta \ln \pi(a \mid s) ] \tag{3.31}$$

Ở đây, $p(s; p_e, \pi, \gamma)$ tương đương với xác suất đạt đến $s$. Đây được gọi là Định lý gradient chính sách (Policy Gradient Theorem / 方策勾配定理), và là chìa khóa để cập nhật chính sách $\pi$ sao cho cực đại hóa $V$. Tuy nhiên, giống như từ trước đến nay, do phép toán kỳ vọng này không thể thực hiện một cách giải tích, rốt cuộc ta sẽ sử dụng quỹ đạo đã thực sự đi qua để xấp xỉ bằng phương pháp Monte Carlo. Ngoài ra, đối với hàm giá trị hành động $Q$, việc xấp xỉ bằng lợi tức (hoặc phần thưởng tức thời) dựa trên phần thưởng nhận được khi đi qua quỹ đạo chính là một dạng của phương pháp gradient chính sách được gọi là REINFORCE [33]. Lưu ý rằng, đặc biệt khi xấp xỉ bằng lợi tức, ta phải đợi cho đến khi tập kịch bản kết thúc mới có thể thực hiện tính toán gradient, do đó $\theta$ sẽ không thể được cập nhật ngay lập tức.

Hình 3-2: Cấu trúc cơ bản của Phương pháp Actor-Critic (Actor-Critic Method / Actor-Critic 法): Cấp độ đánh giá và cải thiện hành động/chính sách do Actor bên trong tác tử (Agent / エージェント) thực hiện bởi Critic.

(Cấu trúc hình ảnh: Bên trong tác tử có Actor ($\pi$) và Critic ($Q$ hoặc $V$). Actor xuất “Hành động $a$” ra môi trường, môi trường nhập “Trạng thái $s$ (Trạng thái tiếp theo $s’$)” và “Phần thưởng $r$” vào tác tử. Critic truyền “Lượng cập nhật” sang Actor.)

3-3-3 Phương pháp Actor-Critic

Vì chúng ta đã biết phương pháp học của hàm giá trị (Value Function / 価値関数) như đã mô tả ở trên, nên chúng ta muốn cập nhật tuần tự $\pi$ đồng thời trong khi học $Q$. Đây chính là triết lý cơ bản của phương pháp được gọi là Phương pháp Actor-Critic [34]. Nói cách khác, đây là cơ chế trong đó Actor hành động trên môi trường bằng cách sử dụng chính sách (Policy / 方策) $\pi$, và kết quả đó được Critic đánh giá bằng hàm giá trị $Q$ (hoặc $V$), dựa trên đánh giá đó để cải thiện $\pi$ (Hình 3-2). Mặc dù phương pháp Actor-Critic yêu cầu học ít nhất 2 hàm, khiến độ khó của việc triển khai và học tập tăng lên đôi chút, nhưng nó thường là nền tảng cho các thuật toán Học tăng cường (sâu) (Deep Reinforcement Learning Algorithm / (深層)強化学習アルゴリズム) mới nhất. Tại đây, chúng tôi sẽ giới thiệu các thủ thuật hữu ích khi thực sự áp dụng phương pháp Actor-Critic. Phương pháp Actor-Critic cập nhật tham số (Parameter / パラメータ) $\theta$ của chính sách bằng gradient (Gradient / 勾配) $Q \nabla_\theta \ln \pi$, tương đương với việc cực đại hóa logarit khả năng (Log-likelihood) được gắn trọng số bởi $Q$. Điểm khó khăn nằm ở $Q$ đóng vai trò là trọng số này, phạm vi mà nó có thể đạt được phụ thuộc rất nhiều vào thiết kế phần thưởng. Ví dụ, khi phần thưởng luôn dương, bất kể hành động tồi tệ đến đâu cũng sẽ được gán một trọng số dương, và phần thưởng ít nhiều sẽ cố gắng phản ánh điều đó. Hoặc, trong trường hợp $Q$ không dao động lớn theo hành động so với giá trị trung bình của nó, thì rất khó để thấy được sự vượt trội hay yếu kém với tư cách là một trọng số. Đối với một trọng số mang tính trực quan như vậy, giá trị trung bình của $Q$ sẽ làm tăng mạnh phương sai (Variance / 分散) của kết quả học tập trong phương pháp Actor-Critic (chính xác hơn là phương pháp gradient chính sách (Policy Gradient Method / 方策勾配法)).

Do đó, để ổn định việc học của phương pháp Actor-Critic, việc đưa vào một Đường cơ sở (Baseline / ベースライン) [35] được sử dụng rộng rãi. Điều này sửa đổi quy tắc cập nhật của tham số như sau.

$$ \theta \leftarrow \theta + \alpha \mathbb{E}{s \sim p(s; p_e, \pi, \gamma), a \sim \pi(a \mid s)} [ { Q(s, a) – b(s) } \nabla\theta \ln \pi(a \mid s) ] \tag{3.32}$$

Ở đây, $b$ chỉ ra đường cơ sở (chỉ phụ thuộc vào trạng thái). Rất dễ hiểu nếu xem xét ví dụ vừa nêu, nếu có thể trừ đi một giá trị thích hợp khỏi $Q$, chất lượng của hành động sẽ tương ứng với dấu âm dương của $Q – b$, và quá trình tối ưu hóa số học của $\theta$ có thể được tiến hành như một trọng số hiệu quả hơn.

Vậy, hãy để tôi giải thích tại sao việc đưa $b$ vào lại được phép bằng cách phân tích ngắn gọn về gradient liên quan đến $b$. Nếu ta chỉ trích xuất phần liên quan đến $b$ từ quy tắc cập nhật và sắp xếp lại, ta sẽ được như sau.

$$\begin{aligned} &\mathbb{E}_{s \sim p(T; p_e, \pi, \gamma), a \sim \pi(a \mid s)} [ b(s) \nabla_\theta \ln \pi(a \mid s) ] \\ &= \mathbb{E}_{s \sim p(T; p_e, \pi, \gamma)} \left[ \int \pi(a \mid s) b(s) \nabla_\theta \ln \pi(a \mid s) da \right] \\ &= \mathbb{E}_{s \sim p(T; p_e, \pi, \gamma)} \left[ \int b(s) \nabla_\theta \pi(a \mid s) da \right] \\ &= \mathbb{E}_{s \sim p(T; p_e, \pi, \gamma)} \left[ b(s) \int \nabla_\theta \pi(a \mid s) da \right] \\ &= \mathbb{E}_{s \sim p(T; p_e, \pi, \gamma)} \left[ b(s) \nabla_\theta \int \pi(a \mid s) da \right] = 0 \quad(3.33) \end{aligned}$$

Ở đây, phép toán kỳ vọng cũng được biểu diễn bằng phép toán tích phân, nhưng đối với phép toán tổng thì cũng tương tự. Cuối cùng, vì $\int \pi(a \mid s) da = 1$ có thể được chuyển thành hằng số dựa trên định nghĩa xác suất, nên gradient của hằng số đó bằng 0. Điểm quan trọng nằm ở dòng thứ 3 đến dòng thứ 4 ở trên, nếu $b$ chỉ phụ thuộc vào trạng thái thì nó có thể được đưa ra ngoài tích phân (hoặc ngoài phép tổng). Kết quả là, ta thấy rằng về mặt giải tích, gradient bằng 0 và không gây ra độ lệch (Bias / バイアス) cho việc học. Tuy nhiên, điều này không đúng đối với phương sai (hoặc mô-men bậc hai (Second Moment / 二次モーメント)) liên quan đến nội dung của phép toán kỳ vọng, và nếu cung cấp một $b$ thích hợp, một gradient ổn định có thể được sử dụng để cập nhật $\theta$. Kéo theo đó, về mặt số học, nó có thể đạt đến một $\theta$ tốt hơn một cách ổn định.

Vậy, một $b$ thích hợp nên được cung cấp như thế nào? Về mặt lý thuyết, như đã nói ở trên, ta chỉ cần phân tích $b$ sao cho cực tiểu hóa phương sai liên quan đến nội dung của phép toán kỳ vọng. Tuy nhiên, trong thực tế, rất hiếm khi người ta cất công tìm kiếm một $b$ tối ưu một cách nghiêm ngặt như vậy. Thay vào đó, đại diện phổ biến nhất cho $b$ gần đây được cung cấp bởi hàm giá trị trạng thái (State Value Function / 状態価値関数) $V$. Vì $V$ tương đương với giá trị kỳ vọng của $Q$ liên quan đến $\pi$, nên nó là một tiêu chuẩn hoàn hảo để tương ứng chất lượng của hành động với dấu âm dương của trọng số. Gần đây, với lý do nó tương đương với $A$, phương pháp Actor-Critic trong trường hợp $b = V$ thường được gọi là Advantage Actor-Critic (A2C) [18]. Hơn nữa, như đã đề cập trước đó, $A$ xấp xỉ bằng với sai số TD (TD Error / TD誤差) $\delta$. Nghĩa là, ngay cả khi học $V$ với tư cách là Critic thay cho $Q$, việc cải thiện chính sách cũng có thể thực hiện được bằng cách thay thế $Q – b$ bằng $\delta$. Xa hơn nữa, theo phương pháp $\text{TD}(\lambda)$ (hoặc GAE), ta cũng có thể thay thế $Q$ bằng lợi tức $\lambda$ và sử dụng $\delta^\lambda$ làm trọng số [28, 36].

Tóm lại một lần nữa, kết hợp với phương pháp TD của hàm giá trị $V$ và phù hợp với xu hướng gần đây, đối với kinh nghiệm $(s, a, s’, r)$ gặp phải khi sử dụng chính sách $\pi$, các tham số mô hình hóa $\theta$ của $V$ và $\pi$ đang được xấp xỉ hàm bằng DNN (Deep Neural Network / 深層ニューラルネットワーク) v.v., có thể học các tham số dùng cho xấp xỉ hàm tương ứng là $\phi_V$ và $\phi_\pi$ thông qua bài toán cực tiểu hóa sau và gradient của nó.

$$ \delta = r + \gamma V_{\phi_V}(s’) – V_{\phi_V}(s) \tag{3.34}$$

$$\mathcal{L}_{\text{TD}}^V = -\delta V_{\phi_V}(s) \\ \phi_V \leftarrow \phi_V – \alpha_V \nabla_{\phi_V} \mathcal{L}_{\text{TD}}^V \tag{3.35} $$
$$\mathcal{L}_{\text{PG}}^\pi = -\delta \ln \pi_{\phi_\pi}(a \mid s; \theta) \\ \phi_\pi \leftarrow \phi_\pi – \alpha_\pi \nabla_{\phi_\pi} \mathcal{L}_{\text{PG}}^\pi \tag{3.36} $$

Ở đây, cần lưu ý rằng gradient đối với $\delta$ không được tính toán mà chỉ được xử lý như một giá trị số thông thường. $\alpha_V, \alpha_\pi$ là tốc độ học (Learning Rate / 学習率) tương ứng, và nói chung vì phải cập nhật chính sách dựa trên đánh giá chính xác, nên có xu hướng cập nhật hàm chính sách chậm hơn hàm giá trị với $\alpha_V \ge \alpha_\pi$ (ví dụ: đặt $\alpha_\pi$ bằng 1/10 của $\alpha_V$, v.v.). Dĩ nhiên, việc xác định riêng biệt $\alpha_V, \alpha_\pi$ sẽ làm tăng công sức tinh chỉnh (Tuning / チューニング), nên người ta cũng thường đặt $\alpha_V = \alpha_\pi$.

Ngoài ra, mặc dù có thể nói chung cho phương pháp gradient chính sách, nhưng rõ ràng là trong việc suy diễn quy tắc cập nhật của nó, việc đánh giá/cải thiện được thực hiện trên quỹ đạo phụ thuộc vào chính sách $\pi$. Nghĩa là, bao gồm cả phương pháp Actor-Critic, quy tắc cập nhật của phương pháp gradient chính sách về cơ bản được phân loại là thuật toán học On-policy (On-policy / 方策オン型). Hơn nữa, vì phương pháp gradient chính sách sử dụng đạo hàm bậc nhất, nên một khi đã rơi vào giải pháp cục bộ (Local Optima / 局所解), sẽ không có cách nào thoát ra khỏi đó, dẫn đến tình trạng dễ xảy ra việc không thu được chính sách có thể đạt được mục tiêu. Trước đây, nghiên cứu lý thuyết để thu được giải pháp toàn cục (Global Optima / 大域解) bằng cách biến đổi hướng và lượng cập nhật bởi gradient trong không gian tham số được gọi là Phương pháp gradient tự nhiên (Natural Gradient Method / 自然勾配法) [37, 38] đã được tiến hành tích cực, nhưng gần đây khi chuyển sang Học tăng cường sâu và số lượng tham số trở nên khổng lồ, chi phí tính toán của phương hướng này không còn thực tế và có ấn tượng đang dần chìm vào quên lãng. Có lẽ vì vậy, trong Học tăng cường sâu, người ta yêu cầu một cách trực tiếp hơn sự thận trọng trong học tập để không rơi vào giải pháp cục bộ, việc duy trì hiệu suất khám phá, và chuyển đổi sang thuật toán học Off-policy (Off-policy / 方策オフ型), các phương pháp Actor-Critic mới nhất về cơ bản đều tập trung vào những khía cạnh này. Vui lòng xem chương tiếp theo để biết thêm chi tiết.

3-4 Công nghệ hỗ trợ học tập

Cho đến nay, chúng tôi đã giới thiệu nền tảng của các thuật toán học cho 2 hàm quan trọng nhất trong Học tăng cường, đó là hàm giá trị và hàm chính sách. Từ đây, tôi sẽ đưa ra một số kỹ thuật chuẩn đã được thiết lập để ổn định và nâng cao hiệu quả học tập kể từ khi thuật ngữ Học tăng cường sâu ra đời. Do các kỹ thuật này thường được áp dụng một cách tự nhiên trong các thuật toán Học tăng cường gần đây mà không có nhiều lời giải thích, tôi muốn bạn hiểu rõ chúng ở đây.

3-4-1 Học sâu (Deep Learning / 深層学習)

Như đã xuất hiện rất nhiều lần từ trước đến nay, Học tăng cường sâu – sự kết hợp giữa Học sâu và Học tăng cường – đã có thể giải quyết các bài toán đa dạng hơn so với trước đây. Một trong những lợi ích đó, tất nhiên, là sức mạnh biểu diễn với tư cách là một bộ xấp xỉ hàm (Function Approximator / 関数近似器). Học tăng cường trước đây lấy xấp xỉ hàm tuyến tính (Linear Function Approximation / 線形関数近似) làm nền tảng, do đó khi xử lý đầu vào hình ảnh v.v., cần có các đặc trưng (Feature / 特徴量) do con người thiết kế trước. Với sự xuất hiện của Mạng nơ-ron tích chập (Convolutional Neural Network / 畳み込みニューラルネットワーク) [39, 40], việc trích xuất đặc trưng thông qua bài toán tối ưu hóa của Học tăng cường đã trở nên khả thi, và có thể thực hiện học từ đầu vào hình ảnh cho đến đầu ra điều khiển một cách End-to-End (End-to-End / End-to-End). Thêm nữa, không chỉ giới hạn ở đầu vào hình ảnh, việc xử lý trạng thái đa chiều vốn không phù hợp với xấp xỉ hàm tuyến tính do lời nguyền chiều dữ liệu (Curse of Dimensionality / 次元の呪い), nay đã có thể được xử lý chỉ bằng cách nhập gần như không cần suy nghĩ vào Mạng nơ-ron (Neural Network / ニューラルネットワーク).

Một lợi ích nữa của Học sâu là sự xuất hiện của vi phân tự động (Automatic Differentiation / 自動微分) và sự phát triển của phương pháp hạ gradient ngẫu nhiên (Stochastic Gradient Descent / 確率的勾配降下法) sử dụng nó. Cho đến nay, chúng ta đã suy ra gradient một cách giải tích vài lần, nhưng trong Học tăng cường trước đây, những gradient thu được qua giải tích này được trực tiếp cài đặt và sử dụng để học hàm giá trị và hàm chính sách. Điều này giữ cho thuật toán học chỉ nằm trong phạm vi mà chúng ta có thể phân tích giải tích. Mặt khác, chúng ta cũng đã định nghĩa các hàm mất mát tương ứng với gradient, và đối với các thư viện Học sâu (Deep Learning Library / 深層学習ライブラリ) gần đây [41, 42, 43], khi tính toán tổn thất này, nó sẽ lưu giữ các biến số liên quan và phương trình quan hệ của chúng dưới dạng Đồ thị tính toán (Computational Graph / 計算グラフ). Bằng cách sử dụng quy tắc chuỗi (Chain Rule / 連鎖律) của gradient và lần ngược đồ thị tính toán này, ta có thể tính toán gradient đối với các biến số liên quan một cách hiệu quả về mặt số học. Nếu tận dụng vi phân tự động này, ta có thể phát triển các thuật toán học sử dụng gradient một cách số học vốn rất khó để phân tích giải tích. Các phương pháp TD3 [44] và SAC [45] sẽ được giới thiệu trong chương tiếp theo chính là những phương pháp được tạo ra từ công nghệ này.

Hơn nữa, thuật toán học cơ bản của Học tăng cường đối với cả hàm giá trị và hàm chính sách đều là quy tắc cập nhật dựa trên gradient, nhưng các phương pháp gradient như vậy nổi tiếng với tốc độ học chậm và thiếu ổn định. Trong Học sâu, khó khăn này cũng là điểm chung, và ngay từ những ngày đầu ra mắt, sự cải tiến của phương pháp hạ gradient ngẫu nhiên nhằm mục đích tăng tốc và ổn định học tập đã được thiết kế. Triết lý cơ bản là ước lượng (Estimate / 推定) thống kê của gradient được cung cấp trong quá trình học và sử dụng nó để cập nhật tham số thực tế, trong cuốn sách này tôi sẽ giới thiệu phương pháp đại diện nhất là Adaptive moment estimation (Adam) [46]. Tuy nhiên, trong thực tế, các phương pháp đại diện khác bao gồm cả Adam đã được tích hợp sẵn trong thư viện Học sâu, nên bạn chỉ cần chọn một phương pháp và sử dụng.

Đầu tiên, khi được cung cấp một hàm mất mát cần cực tiểu hóa và một tham số $\phi$ có thể cập nhật làm công cụ cực tiểu hóa, gradient của $\phi$ đối với hàm mất mát ở lần cập nhật thứ $t$ được định nghĩa là $g$. Trong phương pháp hạ gradient ngẫu nhiên thông thường, bản cập nhật được thực hiện bằng cách lấy $\phi$ trừ đi $g$ nhân với tốc độ học $\alpha$, nhưng trong Adam, việc cập nhật được thực hiện trong khi ước lượng Mô-men bậc một (First-order Moment / 一次のモーメント) ($\simeq$ giá trị trung bình) $m$ và Mô-men bậc hai (Second-order Moment / 二次のモーメント) $v$ liên quan đến gradient bằng trung bình trượt hàm mũ (Exponential Moving Average / 指数移動平均) như sau.

$$ m \leftarrow \beta_1 m + (1 – \beta_1) g $$

$$ v \leftarrow \beta_2 v + (1 – \beta_2) g^2 \tag{3.37} $$

$$ \phi \leftarrow \phi – \alpha \frac{m(1 – \beta_1^t)^{-1}}{\sqrt{v(1 – \beta_2^t)^{-1}} + \epsilon} $$

Ở đây, $\beta_{1, 2}$ là các siêu tham số dùng cho trung bình trượt hàm mũ, và với giá trị mặc định là $\beta_1 = 0.9$ và $\beta_2 = 0.999$, người ta cho rằng thiết lập $\beta_1 < \beta_2$ là tốt. $\epsilon \ll 1$ là một lượng siêu nhỏ, được đưa vào để tránh lỗi chia cho không trong phép chia và làm ổn định tính toán số học. Do đó, giá trị mặc định là $\epsilon = 10^{-8}$ vốn là một giá trị rất nhỏ, nhưng cần chú ý là đôi khi trong Học tăng cường, một giá trị lớn hơn một chút (ví dụ $10^{-2}$) có thể được sử dụng để kìm hãm lượng cập nhật. Ngoài ra, khi sử dụng $m$ và $v$ cho bản cập nhật, việc chia cho $1 – \beta_{1, 2}^t$ là để hiệu chỉnh độ lệch (Bias / バイアス) của trung bình trượt hàm mũ (việc giá trị ban đầu $= 0$ để lại ảnh hưởng ở giai đoạn đầu của việc cập nhật). Dù thế nào, Adam sử dụng trung bình gần nhất $m$ thay cho gradient thô $g$ để làm mượt hướng cập nhật, đồng thời bằng cách Mở rộng/Thu nhỏ (Scaling / スケーリング) lượng cập nhật bằng căn bậc hai của $v$, nó có thể đạt được quá trình học ổn định ngay cả khi sử dụng một tốc độ học $\alpha$ chung cho một số lượng lớn các tham số. Ngoài ra, trung bình gần nhất $m$ có liên quan chặt chẽ đến Nesterov accelerated gradient (NAG) [47], và được biết là có thể tăng tốc độ hội tụ.

3-4-2 Phát lại kinh nghiệm (Experience Replay / 経験再生)

Kỹ thuật hỗ trợ rất lớn cho thành công của Học tăng cường sâu chắc chắn là Phát lại kinh nghiệm (Experience Replay) [48] nổi tiếng nhất. Như đã đề cập sơ qua từ trước, trong Phát lại kinh nghiệm, dữ liệu kinh nghiệm thu được từ quá trình tương tác giữa tác tử và môi trường được tích lũy vào một bộ đệm (Buffer / バッファ), sau đó dữ liệu kinh nghiệm trong bộ đệm đó được lấy ra ngẫu nhiên (dưới định dạng gộp thành một Lô (Batch / バッチ) gồm nhiều dữ liệu) để tái sử dụng cho việc học. Trong Học tăng cường trước đây, dữ liệu kinh nghiệm được đưa vào học 1 lần dưới dạng luồng dữ liệu (Streaming) rồi bị loại bỏ, nhưng bằng việc tái sử dụng dữ liệu thông qua Phát lại kinh nghiệm này, hiệu suất được cải thiện, và hành vi tối ưu trong các vùng đã từng ghé qua trong quá khứ sẽ không bị lãng quên. Mặc dù bản thân Phát lại kinh nghiệm đã được đề xuất từ những ngày đầu khi lý thuyết Học tăng cường xuất hiện, nhưng nhờ sự phát triển của tài nguyên máy tính và công nghệ Học sâu trong những năm gần đây, một bộ đệm quy mô lớn có thể được lưu trữ trên bộ nhớ và việc học tập bằng định dạng Lô có thể được thực hiện hiệu quả bằng tính toán song song, do đó chúng ta đã có thể nhận được đầy đủ các lợi ích của nó, dẫn đến sự phổ biến rực rỡ như hiện nay.

Vậy, hãy để tôi giới thiệu chi tiết hơn một chút về Hình 3-3. Trước tiên, tác tử sẽ lặp lại quá trình tương tác với môi trường bằng hành động $a$ thích hợp tương ứng với trạng thái hiện tại $s$ để thu được trạng thái tiếp theo $s’$ và phần thưởng $r$. Dữ liệu kinh nghiệm $(s, a, s’, r)$ biểu diễn bằng Tuple thu được từ một chu trình này sẽ được tích lũy mỗi lần vào bộ đệm $\mathcal{D}$ có sức chứa tối đa là $|\mathcal{D}|$. Nếu $\mathcal{D}$ vượt quá sức chứa tối đa, về cơ bản nó sẽ duy trì dung lượng ổn định theo phương thức FIFO, nghĩa là vứt bỏ dữ liệu kinh nghiệm cũ nhất đi.

(Xóa khỏi kinh nghiệm cũ $\leftarrow$ Bộ đệm FIFO $\mathcal{D}$ $\leftarrow$ Kinh nghiệm $(s, a, s’, r)$)

(Lựa chọn ngẫu nhiên để tái sử dụng học tập nhiều lần $\downarrow$ Tác tử)

(Tác tử $\xrightarrow{\text{Hành động } a}$ Môi trường)

(Tác tử $\xleftarrow{\text{Trạng thái } s / \text{Phần thưởng } r}$ Môi trường)

Hình 3-3 Cấu trúc cơ bản của Phát lại kinh nghiệm: Bằng cách lưu trữ dữ liệu kinh nghiệm mà tác tử đạt được thông qua phép thử và sai trong môi trường vào bộ đệm thay vì vứt đi, dữ liệu này có thể được sử dụng lại nhiều lần cho quá trình học.

Khi $\mathcal{D}$ tích lũy và cập nhật dữ liệu kinh nghiệm theo cách này đạt đến một mức độ nhất định, dữ liệu sẽ được trích xuất ra theo một chu kỳ $C$ phù hợp để tái sử dụng cho quá trình học. Có nhiều cách trích xuất dữ liệu, nhưng cơ bản nhất là lấy mẫu với xác suất đồng đều một kích thước Lô (Batch Size / バッチサイズ) $N$ được chỉ định từ $\mathcal{D}$. Đối với một lô dữ liệu kinh nghiệm $\mathcal{B} = \{(s_i, a_i, s_i’, r_i)\}_{i=1}^N$ được trích xuất như thế này, ta tính toán hàm mất mát mà thuật toán học tương ứng muốn giảm thiểu (ví dụ: mất mát sai số bình phương của sai số TD v.v.), và cập nhật tham số $\phi$ dựa trên gradient của nó.

$$\mathcal{L}_\phi(\mathcal{B}) = \frac{1}{N} \sum_{i=1}^N \mathcal{L}_\phi(s_i, a_i, s_i’, r_i) \tag{3.38}$$
$$\phi \leftarrow \phi – \alpha \text{Optim}(\nabla_\phi \mathcal{L}_\phi(\mathcal{B})) \tag{3.39}$$

Ở đây, nhìn chung trung bình của tổn thất đối với mỗi dữ liệu kinh nghiệm sẽ được dùng làm tổn thất cho cả Lô, và gradient của nó sẽ được chỉnh hình lại bằng cách sử dụng Trình tối ưu hóa (Optimizer / Optim) như Adam trước khi cập nhật $\phi$. Một chu trình phát lại – cập nhật như thế này thường được thực hiện $I$ lần cho mỗi chu kỳ. Việc xử lý Lô này khi sử dụng thư viện Học sâu gần đây sẽ có thể được tính toán dễ dàng và tốc độ cao, hơn nữa gradient được trung bình hóa giúp việc học ổn định trở nên dễ dàng, từ đó hiện nay chúng ta thường thấy các bản cài đặt lấy Phát lại kinh nghiệm làm tiền đề. Hãy chú ý rằng, các dữ liệu kinh nghiệm được phát lại sẽ không bị vứt bỏ, mà sẽ được tái sử dụng nhiều lần cho đến khi chúng cũ đi và bị xóa.

Ở đây, chúng ta đã tích lũy/phát lại dữ liệu kinh nghiệm $(s, a, s’, r)$ trên tiền đề của Quá trình quyết định Markov (Markov Decision Process / マルコフ決定過程), nhưng trong những trường hợp áp dụng cho Quá trình quyết định Markov quan sát một phần v.v., chúng ta sẽ tích lũy/phát lại một quỹ đạo (hoặc đoạn của nó) tương đương với một tập kịch bản dưới dạng dữ liệu kinh nghiệm [49]. Về phương pháp phát lại, cũng không nhất thiết phải lấy mẫu một cách đồng đều; ví dụ, một phương pháp điển hình như Prioritized Experience Replay (PER) [50] sẽ định nghĩa mức độ quan trọng của dữ liệu kinh nghiệm dựa trên giá trị tuyệt đối của sai số TD, và lấy mẫu ưu tiên cho những dữ liệu có mức độ quan trọng cao. Tuy nhiên, nếu dữ liệu kinh nghiệm được phát lại quá thiên vị, nó sẽ gây ra việc bỏ sót những dữ liệu kinh nghiệm lẽ ra phải được xem xét; do đó, PER kết hợp kỹ thuật khắc phục sự thiên vị bằng cách nhân một trọng số lớn cho tổn thất/gradient tương ứng với những dữ liệu kinh nghiệm có mức độ ưu tiên thấp. Ngoài ra, dữ liệu kinh nghiệm bị xóa đi khi vượt quá bộ đệm không nhất thiết phải là dữ liệu cũ nhất, các phương pháp đánh giá mức độ quan trọng của dữ liệu kinh nghiệm bằng một hình thức nào đó và xóa từ dữ liệu có mức độ ưu tiên thấp nhất [51] cũng đang được xem xét.

Cần lưu ý rằng, theo lý thuyết, thuật toán học được phép áp dụng Phát lại kinh nghiệm này chỉ có thể là dạng Off-policy (Off-policy / 方策オフ型). Đó là bởi vì những kinh nghiệm trong quá khứ được tích lũy đã được thu thập bởi hàm chính sách tại thời điểm đó, và chính sách tại thời điểm phát lại đã trải qua quá trình học và trở thành một thứ khác biệt. Các thuật toán học dạng On-policy (On-policy / 方策オン型) được xây dựng dựa trên tiền đề về các hành động và quỹ đạo có thể đạt được khi sử dụng chính sách hiện tại, do đó sự sai lệch của chính sách này không đáp ứng được giả định và sẽ ảnh hưởng xấu đến quá trình học. Nếu là dạng Off-policy, vì nguồn gốc của dữ liệu kinh nghiệm không thành vấn đề, nên kinh nghiệm trong quá khứ cũng có thể được tái sử dụng. Tuy nhiên, gần đây tầm quan trọng của On-policyness (mức độ kinh nghiệm trong bộ đệm bám sát với chính sách hiện tại) trong Phát lại kinh nghiệm đang được chú ý [52, 53]. Nghe có vẻ hơi phức tạp, nhưng không có nghĩa là vì là Off-policy nên những kinh nghiệm bám theo chính sách hoàn toàn không liên quan đến hiện tại chắc chắn sẽ hữu ích cho việc học, mà ở một mức độ nào đó, nên tập trung vào việc tích lũy/phát lại dữ liệu kinh nghiệm theo sát với chính sách hiện tại. Có lẽ vì điều đó, đơn giản bằng cách cải thiện On-policyness của Phát lại kinh nghiệm thông qua việc giới hạn tốc độ cải thiện chính sách và dung lượng của bộ đệm, ta có thể xác nhận trong thực tế rằng ngay cả với các thuật toán học dạng On-policy, sự sai lệch so với giả định cũng trở nên nhỏ hơn, và chúng có thể tận hưởng được lợi ích của Phát lại kinh nghiệm.

3-4-3 Mạng mục tiêu (Target Network / ターゲットネットワーク)

Trong Học tăng cường sâu, hàm giá trị và hàm chính sách được xấp xỉ hàm bằng DNN, nhưng như đã đề cập ở chương trước, DNN tương đương với xấp xỉ hàm phi tuyến (Nonlinear Function Approximation / 非線形関数近似), và chỉ cần các tham số trong DNN biến động đôi chút, đầu ra cũng có thể thay đổi đột ngột. Hơn nữa, đôi khi những gradient giống như giá trị ngoại lai (Outlier / 外れ値) cũng được tính ra, do đó việc cập nhật tham số không phải lúc nào cũng đủ ổn định ngay cả khi sử dụng các phương pháp tiên tiến như Adam. Nói cách khác, nhìn chung đầu ra của DNN trong quá trình học không ổn định, và đối với những hoàn cảnh đặc thù của Học tăng cường như buộc phải sử dụng đầu ra làm tín hiệu huấn luyện như trong phương pháp TD hoặc phải tiếp tục khám phá bằng chính sách, sự không ổn định đó sẽ gây ra những ảnh hưởng tiêu cực.

Như một giải pháp để giảm bớt sự không ổn định trong đầu ra này, kỹ thuật thường được sử dụng là cái gọi là Mạng mục tiêu [15, 54] (Hình 3-4). Cụ thể, đầu tiên ta chuẩn bị một DNN (với tham số là $\bar{\phi} \leftarrow \phi$) được sao chép tham số $\phi$ từ DNN mà ta mong muốn có một đầu ra ổn định. $\bar{\phi}$ không được cập nhật bởi thuật toán học của Học tăng cường, mà được sử dụng để xuất kết quả cho $r + \gamma V(s’)$ tương đương với tín hiệu huấn luyện trong phương pháp TD, hoặc để tạo ra hành động tương tác với môi trường thay cho chính sách $\pi$. Tức là, thay vì bị biến động không ổn định bởi sự cập nhật của tham số $\phi$ thuộc DNN đóng vai trò chính trong tín hiệu huấn luyện khi học hoặc phương thức khám phá, nó sẽ trở nên ổn định vì được cố định bởi $\bar{\phi}$.

[Nội dung Hình 3-4] (Đầu vào Mạng main Đầu ra) và (Đầu vào Mạng target Đầu ra) Từ Mạng main sang Mạng target (Cập nhật bằng cách sao chép) So sánh Đầu ra của Mạng main và Đầu ra của Mạng target , sau đó quay lại Mạng main (Cập nhật bằng phương pháp lan truyền ngược)

Hình 3-4 Cấu trúc cơ bản của Mạng mục tiêu (Target Network / ターゲットネットワーク): Xuất thông tin liên quan đến mục tiêu học tập, và cập nhật tham số sao cho nó tiệm cận trùng khớp với mạng main.

Tuy nhiên, nếu ban đầu cứ cố định , thì nó sẽ không thể xuất ra được chính xác với vai trò là tín hiệu huấn luyện (Teacher Signal / 教師信号), và phương pháp khám phá cũng sẽ mãi ở trạng thái ngẫu nhiên ban đầu khiến việc khai thác tri thức (Exploitation / 知識利用) không thể tiến triển. Do đó, người ta sẽ cập nhật theo một chu kỳ nhất định. Cách cập nhật này chủ yếu được chia thành hai kiểu hiện thực (Implementation / 実装); kiểu thứ nhất là sao chép lại sau một khoảng chu kỳ khá dài, vốn được sử dụng trong thời kỳ đầu khi mạng mục tiêu mới ra mắt [15].

$$\bar{\phi} \leftarrow \begin{cases} \phi & t \% T = 0 \\ \bar{\phi} & t \% T \neq 0 \end{cases} \tag{3.40}$$

Ở đây, là số lần cập nhật của , và là chu kỳ cập nhật của . Cho đến khi đạt đến chu kỳ đã định, sẽ hoàn toàn cố định, nhờ đó việc ổn định đầu ra như đã đề cập trước đó có thể trở thành hiện thực. Kiểu thứ hai là phương pháp cập nhật từ từ hướng về bằng trung bình trượt hàm mũ (Exponential Moving Average / 指数移動平均) (hoặc còn gọi là Trung bình Polyak (Polyak Averaging / Polyak Averaging)) vốn cũng được sử dụng trong Adam [54].

$$\bar{\phi} \leftarrow (1 – \tau)\bar{\phi} + \tau \phi \tag{3.41}$$

Ở đây, biểu thị tốc độ cập nhật. Bằng cách thiết lập đủ nhỏ, sẽ được cập nhật từ từ, và sự biến động của đầu ra có thể xấp xỉ bị bỏ qua. Có lẽ vì dễ điều chỉnh hơn so với , nên mặc dù cách hiện thực thứ nhất được áp dụng vào thời kỳ đầu khi mạng mục tiêu xuất hiện, nhưng gần đây cách hiện thực thứ hai đã trở thành xu hướng chủ đạo. Dù vậy, cần lưu ý rằng bất kể dùng cách nào, nếu cập nhật quá chậm, đầu ra tuy ổn định nhưng quá trình học lại có xu hướng bị trễ nhịp. Vì việc giải quyết triệt để sự đánh đổi (Trade-off / トレードオフ) này là rất khó, nên cần có các thủ thuật như điều chỉnh thích hợp tùy theo yêu cầu của bài toán, hoặc cho phép cập nhật nhanh hơn bằng cách sử dụng kết hợp với các phương pháp ổn định đầu ra khác như học tập hợp (Ensemble Learning / アンサンブル学習) được giới thiệu dưới đây. Ngoài ra, mặc dù nằm trong cuốn sách khác của tôi [55, 56], nhưng cũng có một số phương pháp được phát triển nhằm kìm hãm sự mất ổn định ngay cả khi cập nhật mạng mục tiêu nhanh chóng, nếu bạn có hứng thú, hãy tham khảo thêm.

3-4-4 Học tập hợp (Ensemble Learning / アンサンブル学習)

Khi sử dụng bộ xấp xỉ hàm (Function Approximator / 関数近似器), hiển nhiên là sẽ luôn còn sót lại ít nhiều sai số xấp xỉ (Approximation Error / 近似誤差). Xu hướng của sai số này, nếu là DNN (Deep Neural Network), cũng sẽ phụ thuộc vào phương pháp khởi tạo các tham số trọng số / độ lệch (Bias) cũng như các số ngẫu nhiên (Random Number / 乱数) tại thời điểm đó. Ngoài ra, trong quá trình học, cũng thường xuyên xảy ra tình trạng do ảnh hưởng của sự thiên lệch trong dữ liệu kinh nghiệm v.v., mô hình trở nên quá khớp (Overfitting / 過適合) với một số trạng thái cụ thể, dẫn đến bỏ bê các trạng thái khác và gây ra sai số lớn. Nếu là Học có giám sát (Supervised Learning / 教師あり学習), ta có thể kỳ vọng những sai số như vậy sẽ được cực tiểu hóa dựa trên tín hiệu huấn luyện bất biến, nhưng trong Học tăng cường, giống như cuộc thảo luận về mạng mục tiêu, đầu ra của DNN lại được dùng làm tín hiệu huấn luyện, do đó sai số sẽ làm cho quá trình học trở nên bất ổn. Để đối phó với điều này, học tập hợp [57, 58] của hàm giá trị hành động (Action Value Function / 行動価値関数) đặc biệt hay được sử dụng, nên tôi sẽ giới thiệu ngắn gọn ở đây. Cần lưu ý rằng, tác dụng ổn định học tập tương tự không chỉ giới hạn ở , mà còn có thể được kỳ vọng ngay cả khi sử dụng cho hàm giá trị trạng thái (State Value Function / 状態価値関数) .

Đầu tiên, chuẩn bị bộ xấp xỉ hàm liên quan đến hàm giá trị hành động (Hình 3-5), cấu trúc có thể là nhiều mạng độc lập có cấu trúc giống hệt nhau, hoặc ở mức độ cực đoan hơn là chung cấu trúc mạng ở các lớp đầu và phân nhánh thành nhiều đầu ra ở phần cuối. Mỗi cái được biểu diễn bởi tham số , và hàm giá trị hành động tương ứng sẽ được gọi là . 

[Nội dung Hình 3-5] a) Tập hợp bằng các mạng giống nhau Mạng 1 : Đầu vào Lớp ẩn 1 Lớp ẩn L Đầu ra Mạng 2 : Đầu vào Lớp ẩn 1 Lớp ẩn L Đầu ra Mạng K : Đầu vào Lớp ẩn 1 Lớp ẩn L Đầu ra

b) Tập hợp chia sẻ chung đến các lớp ẩn Đầu vào Lớp ẩn 1 Lớp ẩn L Phân nhánh thành Đầu ra 1, Đầu ra 2, , Đầu ra K

Hình 3-5 Ví dụ cấu trúc của Học tập hợp: Bằng cách sử dụng các tham số khác nhau để xuất ra kết quả cho cùng một đầu vào, ta có thể xử lý các lượng thống kê (Statistic / 統計量) liên quan đến đầu ra.

Vì được tính toán bởi đã được khởi tạo bằng các số ngẫu nhiên khác nhau, nên ta có thể kỳ vọng xu hướng của sai số xấp xỉ sẽ khác nhau ở mỗi . Do đó, nếu sử dụng lượng thống kê (ví dụ: trung bình hoặc giá trị nhỏ nhất) của làm trong thuật toán học, ta có thể mong đợi một đầu ra ổn định hơn bằng cách triệt tiêu các sai số xấp xỉ của nhau. Ví dụ như TD3 [44] hay SAC [45] sẽ được giới thiệu trong chương tiếp theo, bằng cách thiết lập và chọn giá trị nhỏ nhất làm tín hiệu huấn luyện thông qua , nó sẽ kìm hãm việc đánh giá quá cao (Overestimation / 過大評価), và đối với phần cần cập nhật, nó sẽ học các một cách bình đẳng (thực chất tương đương với trung bình ). Hơn nữa, một ưu điểm khác của học tập hợp là không chỉ dừng lại ở các lượng thống kê tại một điểm như trên, mà còn có thể nắm bắt độ chính xác ước lượng thông qua thang đo như phương sai (Variance / 分散). Vì những thông tin như thế này cho thấy sự cần thiết của việc khám phá trong Học tăng cường, một số phương pháp [59, 60] cũng đã được đề xuất để thêm nó vào phần thưởng dưới dạng một khoản thưởng thêm (Bonus / ボーナス). Vấn đề này sẽ được đề cập chi tiết ở Chương 6.

 

Leave a Comment

Chia sẻ:

Chương 3: Các thuật toán học cơ bản (Learning Algorithm / 学習アルゴリズム)

Or copy link

CONTENTS