Chương 4: Sự phát triển của Phương pháp gradient chính sách (Policy Gradient Method / 方策勾配法)

Estimated reading: 110 minutes 41 views

Học tăng cường (Reinforcement Learning / 強化学習) dựa trên phương pháp gradient chính sách, bao gồm cả phương pháp Actor-Critic (Actor-Critic Method / Actor-Critic法) được giới thiệu ở Chương 3, định nghĩa rõ ràng (Explicitly) hàm chính sách (Policy Function / 方策関数), do đó có thể xử lý thoải mái ngay cả các bài toán có không gian hành động liên tục (Continuous Action Space / 連続な行動空間) với vô số lựa chọn trên thực tế. Điều này rất quan trọng khi sử dụng Học tăng cường như một phương tiện điều khiển tối ưu (Optimal Control / 最適制御) cho các hệ thống thực tế; ví dụ, một đối tượng điều khiển như robot di động lấy tốc độ di chuyển nhận giá trị liên tục (Continuous Value / 連続値) làm hành động có thể được tối ưu hóa (Optimize / 最適化) mà không cần phải chia nhỏ và rời rạc hóa (Discretize / 離散化) thành một vài mẫu tốc độ. Từ sự khác biệt về đặc tính này, trong khi các đối tượng ứng dụng chính từ trước đến nay như trò chơi (Game) thường áp dụng Học tăng cường lấy hàm giá trị (Value Function / 価値関数) làm chủ đạo như Học Q (Q-learning / Q学習), thì khi vận hành các hệ thống thực tế như robot, Học tăng cường dựa trên phương pháp gradient chính sách lại được sử dụng thường xuyên [1, 2, 3].

Có lẽ do sự gia tăng nhu cầu này, trong những năm gần đây, việc cải tiến Học tăng cường dựa trên phương pháp gradient chính sách diễn ra rất sôi nổi, nhiều phương pháp mới liên tục xuất hiện nhằm cải thiện tính ổn định (Stability / 安定性) và tính hiệu quả (Efficiency / 効率性) của quá trình học. Trong chương này, chúng tôi sẽ giải thích các phương pháp được coi là tiêu biểu nhất trong số đó, cùng với các kỹ thuật liên quan.

4-1 Các kỹ thuật quan trọng

Học tăng cường mới nhất được xây dựng trên nhiều nền tảng cơ sở. Tại đây, chúng tôi sẽ giới thiệu trước các kỹ thuật toán học liên quan đến các phương pháp tiêu biểu sẽ được mô tả ở phần sau.

4-1-1 Độ phân kỳ (Divergence / 乖離度) giữa các phân phối xác suất

Đầu tiên, trong Học tăng cường, hàm chính sách được xử lý như một phân phối xác suất (Probability Distribution / 確率分布); do đó sẽ rất tiện lợi nếu có một thang đo (Metric / 尺度) định lượng để đo lường mức độ phân kỳ giữa hai phân phối xác suất, ví dụ như để xem nó đã được cập nhật đến mức nào, hoặc nó đã tiến gần đến chính sách lý tưởng bao nhiêu. Ngay cả khi không thực sự tính toán thang đo và đánh giá giá trị số của nó, ta vẫn có thể đưa chính thang đo đó vào bài toán tối ưu hóa (Optimization Problem / 最適化問題). Đối với một thang đo tiện lợi như vậy, nếu là các biến số mang tính quyết định (Deterministic) thông thường, bạn có thể tưởng tượng đến khoảng cách Euclid (Euclidean Distance / ユークリッド距離) v.v., nhưng cần lưu ý rằng trường hợp của phân phối xác suất lại không như thế. Tức là, đối với phân phối xác suất, ta phải đo lường cả mức độ chồng chéo bao gồm cả hình dạng của các phân phối với nhau.

Thước đo tiêu biểu nhất để đo lường độ phân kỳ giữa các phân phối xác suất như thế này có lẽ là Kullback-Leibler Divergence (Kullback-Leibler Divergence / Kullback-Leibler ダイバージェンス) (hoặc lượng thông tin). Cụ thể, khi cho trước 2 phân phối xác suất $p_1(x), p_2(x)$, nó được định nghĩa như sau.

$$ \text{KL}(p_1||p_2) = \begin{cases} \sum_{i=1}^{|\mathcal{X}|} p_1(x=i) \ln \frac{p_1(x=i)}{p_2(x=i)} & (\text{Khối lượng xác suất}) \\  \int_x p_1(x) \ln \frac{p_1(x)}{p_2(x)} dx & (\text{Mật độ xác suất}) \end{cases} \quad (4.1)$$

$$ = \mathbb{E}_{p_1(x)} \left[ \ln \frac{p_1(x)}{p_2(x)} \right] \quad (4.2) $$

Mặc dù định nghĩa trông có vẻ hơi khác nhau tùy thuộc vào việc biến ngẫu nhiên (Random Variable / 確率変数) $x$ là rời rạc hay liên tục, nhưng bản chất là giống nhau, nó là giá trị kỳ vọng (Expected Value / 期待値) của $\ln p_1(x)/p_2(x)$ đối với $p_1(x)$ được nhập ở phía bên trái, trong đó thang đo đang được sử dụng. Ví dụ, trong GAIL [5] sẽ được giới thiệu ở Chương 6, Jensen-Shannon Divergence (Jensen-Shannon Divergence / Jensen-Shannon ダイバージェンス) – một dạng mở rộng của Kullback-Leibler Divergence – được sử dụng, hoặc trong cuốn sách khác của tôi [6], chúng tôi tập trung vào Pearson Divergence (tương đối) ((Relative) Pearson Divergence / (相対)Pearson ダイバージェンス). Ngoài ra, những phát triển như phân tích và phát triển phương pháp mới [7, 8] dựa trên f-divergence – một dạng tổng quát hóa của các thang đo đa dạng này – cũng đang được tiến hành, nếu có hứng thú bạn nên tìm hiểu thêm.

4-1-2 Lấy mẫu trọng yếu (Importance Sampling / 重点サンプリング)

Cho đến nay, đã có rất nhiều phép toán giá trị kỳ vọng xuất hiện, và chúng ta cần phải xấp xỉ (Approximate / 近似) chúng bằng phương pháp Monte Carlo (Monte Carlo Method / モンテカルロ法). Tức là, lấy mẫu nhiều biến ngẫu nhiên $x$ từ một phân phối xác suất $p(x)$, và tính trung bình các giá trị đánh giá $f(x)$ của chúng. Lúc này, chắc chắn sẽ tồn tại những vùng (ví dụ: xung quanh cực đại) nơi mà đặc trưng của hàm đánh giá (Evaluation Function / 評価関数) $f$ thể hiện rõ nhất, và nếu $p(x)$ khó lấy mẫu $x$ ở những vùng đó, hay nói cách khác là nếu chỉ thu được các mẫu có giá trị thấp, thì hiệu suất xấp xỉ (Approximation Performance / 近似性能) của phương pháp Monte Carlo sẽ khó có thể cải thiện được. Hoặc, do một lý do đặc biệt nào đó, ta có thể gặp phải trường hợp rất khó lấy mẫu $x$ từ $p(x)$.

Trong những trường hợp việc lấy mẫu từ $p(x)$ kém hiệu quả, hoặc về cơ bản là không thể lấy mẫu, một phương pháp hữu hiệu thường được sử dụng là Lấy mẫu trọng yếu (Importance Sampling; IS). Cụ thể, chuẩn bị một phân phối xác suất $q(x)$ (có thể lấy mẫu được) khác với $p(x)$, và biến đổi phép toán kỳ vọng ban đầu như sau.

$$ \mathbb{E}_{p(x)}[f(x)] = \mathbb{E}_{p(x)} \left[ \frac{q(x)}{q(x)} f(x) \right] $$

$$ = \mathbb{E}_{q(x)} \left[ \frac{p(x)}{q(x)} f(x) \right] \quad (4.3) $$

Ở đây, $p(x)/q(x)$ còn được gọi là tỷ số mật độ (Density Ratio / 密度比), và là một số hạng hiệu chỉnh (Correction Term / 補正項) phát sinh khi thay đổi phân phối xác suất lấy mẫu. Mặc dù là một thủ thuật rất đơn giản nhưng người ta biết rằng nếu chọn $q(x)$ đưa vào một cách thích hợp, hiệu suất xấp xỉ của phương pháp Monte Carlo sẽ được cải thiện. Thực tế, trong phương pháp Phát lại kinh nghiệm (Experience Replay / 経験再生) được giới thiệu ở chương trước, PER [9] cấp mức độ ưu tiên theo giá trị tuyệt đối của sai số TD (TD Error / TD誤差) chính là một phương pháp dựa trên lấy mẫu trọng yếu này, và rất nhiều báo cáo đã cho thấy sự cải thiện về hiệu suất học tập (Learning Performance / 学習性能).

Cần lưu ý rằng vì phải tính toán mới tỷ số mật độ, nên cả $p(x)$ và $q(x)$ đều phải được cho dưới dạng các phân phối có thể tính được khả năng (Likelihood / 尤度). Ngoài ra, đối với các mẫu hiếm đối với $q(x)$, phép chia cho một giá trị gần 0 có thể làm cho tỷ số mật độ nhận giá trị rất lớn, do đó cần cẩn thận vì tính toán số học rất dễ bị mất ổn định. Bạn nên biết rằng, trong một số trường hợp, việc áp dụng tỷ số mật độ tương đối (Relative Density Ratio / 相対密度比) [10, 11] hoặc cắt xén (Clipping / クリッピング) theo giá trị cực đại [12, 13] để đảm bảo sự ổn định trong tính toán dù có sinh ra một chút độ lệch (Bias / バイアス) là điều quan trọng. Ngay cả PER được nhắc đến ở trên cũng nâng lên lũy thừa $\beta$ đối với tỷ số mật độ thành $(p(x)/q(x))^\beta$ ($\beta \le 1$), để làm giảm sự nhạy cảm nhằm không tạo ra giá trị quá lớn.

4-1-3 Thủ thuật tái tham số hóa (Reparameterization Trick / 再パラメータ化トリック)

Tương tự như phương pháp Monte Carlo đã đề cập, trong Học tăng cường, việc lấy mẫu các biến ngẫu nhiên từ phân phối xác suất xuất hiện ở rất nhiều bối cảnh khác nhau. Một bối cảnh đặc biệt bắt buộc là việc lấy mẫu hành động $a$ từ chính sách $\pi(a \mid s)$ để khám phá môi trường. Tuy nhiên, hành động lấy mẫu này lại không tương thích tốt với vi phân tự động (Automatic Differentiation / 自動微分) (và thuật toán lan truyền ngược (Backpropagation / 誤差逆伝播法)) trong Học sâu (Deep Learning / 深層学習). Bởi vì, trong vi phân tự động, khi quá trình chuyển đổi (ánh xạ (Mapping / 写像)) được cho dưới dạng quyết định (Deterministic / 決定論的), giống như việc nhân các trọng số hoặc hàm kích hoạt (Activation Function / 活性化関数) trong mạng, gradient (Gradient / 勾配) của ánh xạ đó sẽ được nhân với nhau theo quy tắc chuỗi (Chain Rule / 連鎖律), và nó được hiện thực hóa bằng cách lưu trữ quy trình thực sự được sử dụng để lấy đầu ra dưới dạng một đồ thị tính toán (Computational Graph / 計算グラフ). Tóm lại, đối với việc lấy mẫu chứa hành vi xác suất mà ánh xạ không được xác định một cách quyết định, đồ thị tính toán sẽ bị đứt đoạn tại đó làm cho việc lan truyền ngược trở về trước thời điểm lấy mẫu trở nên bất khả thi. Trong phương pháp gradient chính sách, bằng cách suy diễn giải tích và xấp xỉ gradient liên quan đến $\pi$, quá trình học có thể vượt qua (Bypass) được đồ thị tính toán bị đứt đoạn này; tuy nhiên, nếu ta có thể lan truyền ngược gradient một cách trực tiếp hơn thì có thể kỳ vọng phổ thuật toán học (Learning Algorithm / 学習アルゴリズム) sẽ được mở rộng.

Để kết nối gradient trước và sau khi lấy mẫu mà không làm đứt đoạn đồ thị tính toán này, thủ thuật tái tham số hóa (Reparameterization Trick) [14] đã được đề xuất. Về cơ bản, phân phối xác suất nguồn $p(x; \theta)$ dùng để lấy mẫu được giới hạn trong một lớp biểu diễn bởi tham số $\theta$, và sau đó quá trình xử lý lấy mẫu được chuyển đổi như sau.

$$ x \sim p(x; \theta) \quad (4.4) $$

$$ \Leftrightarrow x = f(\theta, \epsilon), \epsilon \sim p_\epsilon(\epsilon) \quad (4.5) $$

Ở đây, $p_\epsilon(\epsilon)$ là một phân phối xác suất thích hợp không liên quan đến $\theta$, và ta lấy mẫu biến ngẫu nhiên $\epsilon$ độc lập với $\theta$. Bằng cách truyền $\epsilon$ và $\theta$ này vào một hàm quyết định $f$ và kết hợp chúng, nếu ta có thể tính toán được một thứ tương đương với $x$ đã lấy mẫu, thì $\partial x / \partial \theta$ có thể được tính toán một cách giải tích bằng cách lấy đạo hàm của $f$. Trên cơ sở đó, vì $\epsilon$ đảm nhận hành vi xác suất, nên ta có thể coi $x$ được tạo ra một cách ngẫu nhiên giống như trước đây.

Xét một ví dụ cụ thể, hãy cùng xem xét phân phối chuẩn chéo (Diagonal Normal Distribution / 対角ガウス分布). Nghĩa là, $\theta = [\mu, \sigma]$, cho biết vị trí trung tâm và tỷ lệ của phân phối. Thủ thuật tái tham số hóa trong trường hợp này như sau.

$$ x \sim N(x \mid \mu, \sigma) \quad (4.6) $$

$$ \Leftrightarrow x = \mu + \sigma \odot \epsilon, \epsilon \sim N(\epsilon \mid 0, I) \quad (4.7) $$

Ở đây, cần lưu ý $\odot$ là tích từng phần tử của vectơ (Vector / ベクトル). Như có thể thấy từ phương trình này, bằng cách tịnh tiến $\epsilon$ được lấy mẫu từ phân phối chuẩn tắc (Standard Normal Distribution / 標準正規分布) đi một lượng $\mu$ và điều chỉnh tỷ lệ của nó bằng cách nhân với $\sigma$, ta có thể biểu diễn tương đương một mẫu từ phân phối chuẩn chéo được xác định bởi $\theta = [\mu, \sigma]$.

Không chỉ giới hạn ở phân phối Gauss (Gaussian Distribution / ガウス分布) như trên, người ta ngày càng nhận ra rằng thủ thuật tái tham số hóa có thể áp dụng cho rất nhiều loại phân phối xác suất. Ví dụ, nếu là phân phối Categorical (Categorical Distribution / カテゴリカル分布) – một phân phối xác suất rời rạc, nó có thể được hiện thực hóa bằng cách kết hợp với thủ thuật Gumbel-Softmax [15]. Hoặc, nếu đó là một mô hình phân phối xác suất được định nghĩa bằng cách kết hợp nhiều phân phối xác suất (ví dụ: phân phối t của Student (Student’s t-distribution / スチューデントのt分布)), nếu các phân phối xác suất cơ sở của chúng có khả năng áp dụng thủ thuật tái tham số hóa, thì ta có thể hiện thực hóa bằng cách kết hợp chúng lại. Hơn nữa, ngay cả với những phân phối xác suất không thể suy ra thủ thuật tái tham số hóa một cách rõ ràng (Explicitly), thì phương pháp luận suy luận ngầm (Implicitly) gradient tại đó cũng đã xuất hiện [16]. Vì nhiều phương pháp này, giống như phương pháp hạ gradient ngẫu nhiên (Stochastic Gradient Descent / 確率的勾配降下法), đã được tích hợp vào các thư viện Học sâu, nên bạn chỉ cần sử dụng chúng một cách thích hợp. Tuy nhiên, xin lưu ý rằng, ví dụ khi sử dụng phương pháp gradient chính sách, mặc dù lẽ ra không nên kết nối đồ thị tính toán đến hành động $a$, nhưng nếu bạn dùng thủ thuật tái tham số hóa để kết nối chúng, quá trình học ngoài ý muốn có thể xảy ra. Mặc dù vi phân tự động sử dụng đồ thị tính toán thực sự rất tiện lợi, nhưng mặt khác, việc nhận thức được nơi nào cần kết nối và nơi nào cần ngắt kết nối là rất quan trọng.

4-2 Hạn chế cập nhật chính sách

Bây giờ, dựa trên một số kỹ thuật ở trên và nền tảng của các thuật toán học được giới thiệu ở chương trước, chúng ta sẽ lần lượt giới thiệu các phương pháp mới nhất tiêu biểu của phương pháp gradient chính sách. Trước hết, một nhược điểm thường được nhắc đến của phương pháp gradient chính sách là sự bất ổn định trong việc cập nhật chính sách. Mặc dù tỷ lệ của lượng cập nhật có thể điều chỉnh thông qua tốc độ học (Learning Rate / 学習率) $\alpha$, nhưng nếu nó quá nhỏ thì chính sách sẽ không được cập nhật chút nào, còn nếu quá lớn thì sẽ gây ra những thay đổi đột ngột của chính sách. Ngoài ra, như có thể thấy từ quy tắc cập nhật của nó, vì được phân loại là phương pháp gradient bậc nhất (First-order Gradient Method / 一次勾配法), nên nó dễ rơi vào giải pháp cục bộ (Local Optima / 局所解). Ý tưởng cốt lõi trong việc giải quyết vấn đề này là làm thế nào để hạn chế sự cập nhật chính sách nhằm cải thiện chính sách một cách mượt mà.

Để phản ánh ý tưởng này, đầu tiên ta biến đổi gradient $g_\theta$ (dành cho bài toán cực tiểu hóa) đã được định nghĩa bằng cách vận dụng lấy mẫu trọng yếu ở phương trình (4.3) như sau.

$$\begin{aligned} g_\theta &= \mathbb{E}_{s \sim p(s; p_e, \pi, \gamma), a \sim \pi(a \mid s)} [-A(s, a) \nabla_\theta \ln \pi(a \mid s)] \\ &= \mathbb{E}_{s \sim p(s; p_e, \pi, \gamma), a \sim \pi_{\text{old}}(a \mid s)} \left[ -A(s, a) \nabla_\theta \ln \pi(a \mid s) \frac{\pi(a \mid s)}{\pi_{\text{old}}(a \mid s)} \right] \\ &= \mathbb{E}_{s \sim p(s; p_e, \pi, \gamma), a \sim \pi_{\text{old}}(a \mid s)} \left[ -A(s, a) \frac{\nabla_\theta \pi(a \mid s)}{\pi_{\text{old}}(a \mid s)} \right] \quad (4.8) \end{aligned}$$

Điểm quan trọng trong biến đổi này là, chính sách $\pi$ được định nghĩa bằng tham số hiện tại $\theta$ và sẽ được cập nhật từ bây giờ, cùng với chính sách $\pi_{\text{old}}$ tại thời điểm lấy mẫu hành động $a$, có thể đã trải qua các lần cập nhật xen kẽ hoặc về mặt chặt chẽ là các trường hợp khác nhau. Tức là, vốn dĩ phương trình trên được dẫn xuất bằng cách vận dụng lấy mẫu trọng yếu mới chính xác là gradient, và có thể nói phương pháp trước đây đã giả định $\pi \simeq \pi_{\text{old}}$.

Hơn nữa, vì $\pi_{\text{old}}$ hoàn toàn không phụ thuộc một cách chặt chẽ vào $\theta$, nên hàm mất mát cần cực tiểu hóa có thể trở thành cơ sở cho gradient này được cho như sau.

$$ \mathcal{L}(\theta) = \mathbb{E}_{s \sim p(s; p_e, \pi, \gamma), a \sim \pi_{\text{old}}(a \mid s)} \left[ -A(s, a) \frac{\pi(a \mid s)}{\pi_{\text{old}}(a \mid s)} \right] \quad (4.9) $$

Nhân tiện, thông qua biến đổi này, do phân phối xác suất xem xét trong phép toán kỳ vọng không còn là $\pi$ nữa, nên nếu $A = Q – V$ được cho bởi hàm giá trị dạng Off-policy (Off-policy / 方策オフ型), thì phương pháp gradient chính sách này cũng có thể được coi là dạng Off-policy. Ví dụ, phương pháp ACER dùng để sử dụng Phát lại kinh nghiệm (Experience Replay / 経験再生) trong phương pháp Actor-Critic (Actor-Critic Method / Actor-Critic法) cũng vận dụng triệt để thực tế này [17]. Dĩ nhiên, như đã đề cập ở chương trước, bằng cách vận dụng $A \simeq \delta$, bạn cũng có thể tận dụng sai số TD.

4-2-1 Tối ưu hóa chính sách vùng tin cậy (Trust Region Policy Optimization / Trust Region Policy Optimization): TRPO

Bây giờ, trong bài toán cực tiểu hóa hàm mất mát này, chúng ta sẽ xem xét việc làm thế nào để hạn chế sự cập nhật chính sách. Tại đây, chúng ta có thể lợi dụng việc $\pi_{\text{old}}$ (vốn trước đây không được cung cấp) đã được biểu hiện một cách rõ ràng. Cụ thể, nếu ta hạn chế việc cập nhật $\pi$ sao cho $\pi \simeq \pi_{\text{old}}$, $\pi$ chỉ có thể rời xa chính sách quá khứ trong một phạm vi giới hạn, từ đó đạt được quá trình cập nhật vững chắc và mượt mà. Vì $\pi$ là một phân phối xác suất, nên việc $\pi \simeq \pi_{\text{old}}$ có đúng hay không có thể được đánh giá thông qua Kullback-Leibler Divergence được định nghĩa ở công thức (4.2). Do đó, $\pi$ (chính xác hơn là tham số $\theta$ của nó) có thể được tối ưu hóa thông qua bài toán tối ưu hóa có ràng buộc (Constrained Optimization Problem / 制約付き最小化問題) dưới đây.

$$ \theta \leftarrow \arg\min_\theta \mathcal{L}(\theta) \quad (4.10) $$

$$ \text{s.t.} $$

$$\mathbb{E}_{s \sim p(s; p_e, \pi, \gamma)} [\text{KL}(\pi_{\text{old}}(a \mid s) \vert{}\vert{} \pi(a \mid s))] \le \text{threshold}$$
 

Nói cách khác, nó sẽ cực tiểu hóa hàm mất mát ban đầu trong phạm vi mà Kullback-Leibler Divergence giữa $\pi$ và $\pi_{\text{old}}$ nằm dưới một ngưỡng (Threshold / しきい値). Giải quyết điều này một cách nghiêm túc (mặc dù vẫn xấp xỉ bằng chuỗi Taylor (Taylor Expansion / テイラー展開)) bằng cách vận dụng phương pháp nhân tử Lagrange (Lagrange Multiplier Method / ラグランジュの未定乗数法) chính là phương pháp được gọi là Trust Region Policy Optimization (TRPO) [18]. Mặc dù chúng tôi sẽ bỏ qua các thuật toán chi tiết cũng như cách hiện thực hóa ở đây, nhưng nếu bạn muốn tìm hiểu, xin hãy tham khảo bản thảo gốc.

4-2-2 Tối ưu hóa chính sách lân cận (Proximal Policy Optimization / Proximal Policy Optimization): PPO

Việc chúng tôi bỏ qua TRPO đơn giản là vì cơ hội ứng dụng của nó gần đây đang giảm đi, và hơn nữa những chi tiết của nó không thực sự phù hợp với người mới bắt đầu. Có lẽ với bối cảnh như vậy, một phương pháp thực tiễn hơn là Proximal Policy Optimization (PPO) [19] mang cùng một hệ tư tưởng đã được phát triển sau đó. Phương pháp này được công thức hóa bằng cách thay thế các điều kiện ràng buộc trong bài toán tối ưu hóa có ràng buộc ở trên thành một hạng tử chính quy hóa (Regularization Term / 正則化項) (một bài toán phụ mà ta muốn cực tiểu hóa cùng với bài toán chính).

$$\theta \leftarrow \arg\min_\theta \mathcal{L}(\theta) + \beta \mathbb{E}_{s \sim p(s; p_e, \pi, \gamma)} [\text{KL}(\pi_{\text{old}}(a \mid s) \vert{}\vert{} \pi(a \mid s))] \quad (4.11)$$

Ở đây, $\beta \ge 0$ là siêu tham số (Hyperparameter / ハイパーパラメータ) quyết định cường độ của việc chính quy hóa (Regularization / 正則化), giá trị càng lớn thì tương đương với việc thu nhỏ ngưỡng (Threshold / しきい値) của điều kiện ràng buộc. Điều này cũng có thể được hiểu là việc áp dụng phương pháp nhân tử Lagrange ngoại trừ việc điều chỉnh liên quan đến $\beta$; không chỉ giới hạn ở các phương pháp Học tăng cường mới nhất, điều kiện ràng buộc của loại bài toán tối ưu hóa có ràng buộc này thường được thay thế bằng một hạng tử chính quy hóa nhân với một hệ số thích hợp [20]. Dù sao đi nữa, tổng của hàm mất mát và hạng tử chính quy hóa đều có thể tính toán được gradient, do đó có thể tối ưu hóa bằng phương pháp hạ gradient ngẫu nhiên (Stochastic Gradient Descent / 確率的勾配降下法) giống như Học sâu (Deep Learning / 深層学習) nói chung. Tuy nhiên, vì việc thiết lập $\beta$ được cho là phụ thuộc rất nhiều vào tác vụ mục tiêu, nên trong PPO, quy tắc điều chỉnh $\beta$ một cách Ad hoc (Ad hoc / アドホック) theo giá trị của Kullback-Leibler Divergence đã được đề xuất kèm theo.

Rốt cuộc, với một triển khai Ad hoc như vậy, PPO ở trên đã không còn là một triển khai tiện lợi nữa. Hơn nữa, như đã đề cập ở trước, vì các mô hình phân phối xác suất có thể tính toán giải tích Kullback-Leibler Divergence bị hạn chế, nên tính đa dụng cũng thiếu hụt một chút. Có lẽ do những trăn trở này, hay đơn giản là vì chỉ giải quyết bài toán cực tiểu hóa (Minimization Problem / 最小化問題) nêu trên không mang lại hiệu suất làm việc ưng ý, mà PPO đã được triển khai với một thuật toán mang tính Heuristic (Heuristic / ヒューリスティック) hơn trong cùng một bài báo. Hiện nay, khi nhắc đến PPO, về cơ bản người ta ám chỉ đến thuật toán sau đây mà tôi sẽ giới thiệu ngay bây giờ.

Trong PPO này, chúng ta tập trung vào tỷ số mật độ xác suất (Probability Density Ratio / 確率密度比) $\pi(a \mid s)/\pi_{\text{old}}(a \mid s) = \rho(s, a)$ có trong hàm mất mát. Vì về mặt định tính, $\rho$ càng xa 1 thì 2 phân phối xác suất càng phân kỳ, nên ta chỉ cần kìm hãm sự cập nhật chính sách tùy theo giá trị này. Do đó, trong PPO, ta sẽ cân nhắc việc cực tiểu hóa hàm mất mát mới được chỉ ra dưới đây.

$$\begin{aligned} \mathcal{L}^{\text{PPO}}(\theta) &= – \mathbb{E}_{s \sim p(s; p_e, \pi, \gamma), a \sim \pi_{\text{old}}(a \mid s)} \\ &\quad \left[ \min\{\rho(s, a)A(s, a), \text{clip}(\rho(s, a), 1 – \epsilon, 1 + \epsilon) A(s, a)\} \right] \quad (4.12) \end{aligned}$$

Ở đây, là một siêu tham số (Hyperparameter/ ハイパーパラメータ) cho biết mức độ cho phép tỉ lệ mật độ (Density ratio/ 密度比) sai lệch khỏi 1. Ngoài ra, clip(x,l,u) là một hàm cắt xén (Clipping function/ クリップする関数) sao cho , và nó tương đương với max(min(x,u),l). Cần lưu ý rằng nếu bị cắt xén vượt quá giới hạn trên hoặc dưới, đạo hàm (Gradient/ 勾配) liên quan đến π (và θ) sẽ trở thành 0. Hàm mất mát (Loss function/ 損失関数) này so sánh hàm mất mát ban đầu với hàm đã bị cắt xén khi ρ sai lệch khỏi 1 một mức độ nhất định, và áp dụng giá trị nhỏ hơn, nhưng xét về mặt trực giác thì ý đồ đó khá khó hiểu. Do đó, hãy thử phân chia các trường hợp dựa trên dấu âm dương của hàm lợi thế (Advantage function/ アドバンテージ関数) A đang đóng vai trò như một hệ số. Đầu tiên, trong trường hợp , hàm mất mát sẽ như sau:

$$L_{A>0}^{PPO}(\theta) = – \mathbb{E}_{s \sim p(s; \rho_e, \pi, \gamma), a \sim \pi_{old}(a\vert{}s)} [\min(\rho(s, a), 1 + \epsilon) A(s, a)] \quad (4.13)$$

Tức là, nếu ρ lớn hơn một mức nhất định, nói cách khác là nếu π đang tự tin khẳng định hành động a hơn một mức nhất định so với πold, nó sẽ bị cắt xén và đạo hàm sẽ biến mất. Việc thể hiện trường hợp hệ thống phán đoán rằng một hành động a có giá trị cao hơn đã được thực hiện, nhưng nó có thể được coi là một cơ chế giúp tránh tình trạng π bị củng cố quá mức và chỉ ưu tiên duy nhất hành động a. Ngược lại, trong trường hợp π mơ hồ hơn so với πold, nó có tác dụng củng cố để π có thể tạo ra a bất kể hai giá trị này có chênh lệch nhau bao nhiêu. Mặt khác, trong trường hợp , hàm mất mát cũng được tính toán tương tự như sau:

$$L_{A<0}^{PPO}(\theta) = – \mathbb{E}_{s \sim p(s; \rho_e, \pi, \gamma), a \sim \pi_{old}(a\vert{}s)} [\max(\rho(s, a), 1 – \epsilon) A(s, a)] \quad (4.14)$$

Trái ngược với lúc trước, nếu ρ nhỏ hơn một mức nhất định và π nhìn nhận hành động a một cách mơ hồ hơn mức nhất định so với πold, nó sẽ bị cắt xén và đạo hàm sẽ biến mất. Tức là, khi và hệ thống phán đoán rằng một hành động a có giá trị thấp đã bị thực hiện, nó sẽ không ép π phải tự kiểm điểm quá mức mà sẽ loại trừ nó đi như một kinh nghiệm không liên quan nếu nó ở dưới mức ngưỡng. Thay vào đó, nếu π có độ rủi ro cao hơn so với πold và tự tin vào hành động sai lầm đó, nó sẽ sửa đổi để π không tạo ra a nữa bất kể hai bên có chênh lệch bao nhiêu.

Kết hợp hai sự phân chia trường hợp lại với nhau, về mặt định tính, chúng ta có thể kỳ vọng hệ thống sẽ được cập nhật sao cho tiệm cận với vùng lân cận của πold trong khi vẫn triệt tiêu sự cập nhật quá mức của π. Do đó, PPO – vốn có thể coi là một cách triển khai mang tính Heuristic này – dự kiến sẽ thể hiện một cách thức hoạt động tương tự như trường hợp thêm sự phân kỳ Kullback-Leibler ban đầu vào thành phần chính quy hóa (Regularization term/ 正則化項). Ngoài ra, hệ số β của thành phần chính quy hóa cũng kiêm luôn vai trò điều chỉnh quy mô (scale) với hàm mất mát ban đầu nên việc điều chỉnh nó phụ thuộc rất lớn vào tác vụ, trong khi đó ϵ quyết định ngưỡng cắt xén lại chỉ cần xem xét xem tỉ lệ mật độ có thể dao động bao nhiêu là đủ, và không quá phụ thuộc vào tác vụ. Thực tế, theo như tài liệu gốc thì được cho là con số lý tưởng cho phần lớn các tác vụ, nên có thể nói việc xử lý nó rất dễ dàng. Như vậy, không chỉ bản thân việc triển khai vô cùng đơn giản khi chỉ cần bàn xem có nên cắt xén hay không, mà các siêu tham số của nó cũng không mất nhiều công sức tinh chỉnh (Tuning), vì vậy phiên bản PPO cắt xén phổ biến này có thể nói là một thuật toán cực kỳ tiện dụng.

Đoạn mã giả (Pseudocode) của PPO này được trình bày trong Algorithm 1. Ở đây, là các siêu tham số chính, và trên thực tế sẽ phải chỉ định thêm kích thước lô (Batch size/ バッチサイズ) hay tốc độ học tập trong quá trình tính toán mất mát. Về phương pháp ước lượng A, mặc dù nằm ngoài phạm vi của PPO, nhưng trong tài liệu gốc GAE (hoặc lợi nhuận gộp) [21] đã được áp dụng, và phương pháp học tập của hàm giá trị (Value function/ 価値関数) V được dùng cho ước lượng đó mang tính tùy ý, nhưng việc sử dụng sai số bình phương của GAE (tức là phương pháp TD(λ)) sẽ đơn giản hơn. Tức là, do được ước lượng bằng GAE vốn dĩ được cung cấp bằng sai số giữa V và giá trị mục tiêu, nên sẽ trở thành giá trị mục tiêu, và ta chỉ cần giảm thiểu sai số bình phương giữa giá trị này và V là được. Tuy nhiên, khi tính toán , bắt buộc phải ngắt đồ thị tính toán (Computational graph), do đó trong mã giả, V~ và những đối tượng đã bị ngắt đồ thị tính toán được phân biệt một cách rõ ràng.

Mã giả của Algorithm 1 PPO [19]
1: Khởi tạo $\pi, V$
2: Lặp lại (repeat)
3: $\pi_{old} \leftarrow \pi$
4: Khởi tạo tập dữ liệu: $\mathcal{D} \leftarrow \emptyset$
5: cho (for) $n = 1, 2, \dots, N$ thực hiện (do) $\triangleright$ Thu thập kinh nghiệm cho $N$ quỹ đạo
6: Tạo $\mathcal{E}_n^{\pi} = \{(s_t, a_t, r_t, s’_t)\}_{t=1}^T$ từ môi trường và $\pi_{old}$
7: Ước lượng và ghi lại cùng nhau $\mathcal{E}_n^{A} = \{A_t = \sum_{k=0}^T (\gamma \lambda)^k \delta(s_{t+k}, r_{t+k}, s’_{t+k})\}_{t=1}^T$
8: $\delta(s, r, s’) = r + \gamma V(s’) – V(s)$
9: $\mathcal{D} \leftarrow \mathcal{D} \cup \{\mathcal{E}_n^{\pi}, \mathcal{E}_n^{A}\}$
10: kết thúc vòng lặp (end for)
11: cho (for) $k = 1, 2, \dots, K$ thực hiện (do) $\triangleright$ Học bằng PPO cho $K$ kỷ nguyên (Epoch)
12: $\pi \leftarrow \arg\min_\pi \mathbb{E}_{(s_i, a_i, b_i, A_i) \sim \mathcal{D}} [l^{PPO}(s_i, a_i, b_i, A_i)]$
13: $l^{PPO}(s, a, b, A) = \min \{ \frac{\pi(a|s)}{b} A, \text{clip}(\frac{\pi(a|s)}{b}, 1-\epsilon, 1+\epsilon)A \}$
14: $V \leftarrow \arg\min_V \mathbb{E}_{(s_i, A_i) \sim \mathcal{D}} [l^{TD(\lambda)}(s_i, A_i)]$
15: $l^{TD(\lambda)}(s, A) = \frac{1}{2} \{ (A + \tilde{V}(s)) – V(s) \}^2$
16: kết thúc vòng lặp (end for)
17: cho đến khi (until) quá trình học hội tụ đủ

Ngoài ra, cần lưu ý rằng PPO cũng giống như phương pháp đạo hàm chính sách (Policy/ 方策) gốc, là một thuật toán học loại On-policy. Do đó, về cơ bản, mặc dù nói là lưu trữ kinh nghiệm vào bộ nhớ đệm (Buffer), nhưng nó là sự tích lũy theo đơn vị quỹ đạo từ trạng thái ban đầu cho đến khi kết thúc Tập phim (Episode/ エピソード), hơn nữa sự tích lũy này suy cho cùng chỉ nhằm thực hiện học theo lô trong học sâu (Deep Learning/ 深層学習), nên sau khi phát lại một lần thì nó sẽ bị xóa bỏ. Tuy nhiên, theo kinh nghiệm của tác giả, nếu đang cập nhật một cách mượt mà để thỏa mãn hoàn toàn , thì có thể sử dụng phát lại kinh nghiệm (Experience Replay/ 経験再生) thông thường. Điều này có thể được xem xét bởi vì kinh nghiệm được tích lũy trong bộ đệm có thể coi là do π tạo ra, vì vậy hàm giá trị quyết định cập nhật chính sách có thể được ước lượng với độ chính xác không có vấn đề gì. Điểm này cũng liên quan đến tính On-policy đã đề cập ở trước, vì vậy việc tìm hiểu thêm ở tài liệu [22] cũng là một ý hay. Hơn nữa, tuy có hơi xa rời với nội dung thực tiễn một chút, nhưng hãy thử phân tích xem trên thực tế phiên bản PPO cắt xén đang bổ sung thêm thành phần chính quy hóa như thế nào. Trường hợp không bị cắt xén, nó hoàn toàn trùng khớp với hàm mất mát thông thường nên thành phần chính quy hóa bằng 0, nhưng trường hợp bị cắt xén, có thể coi sai số với mất mát thông thường chính là thành phần chính quy hóa. Tức là, thành phần chính quy hóa khi bị cắt xén trong PPO được cho bởi công thức sau.

$$\mathbb{E}_{s \sim p(s; \rho_e, \pi, \gamma), a \sim \pi_{old}(a\vert{}s)} [-(1 \pm \epsilon) A(s, a)] – \mathcal{L}(\theta)$$
$$= \mathbb{E}_{s \sim p(s; \rho_e, \pi, \gamma), a \sim \pi_{old}(a\vert{}s)} [-(1 \pm \epsilon) A(s, a) + \rho(s, a) A(s, a)]$$
$$= \mathbb{E}_{s \sim p(s; \rho_e, \pi, \gamma), a \sim \pi_{old}(a\vert{}s)} [\{\rho(s, a) – (1 \pm \epsilon)\} A(s, a)] \quad (4.15)$$

Ở đây, dấu ± tương ứng với dấu của A. Điều này thành lập khi nếu , và nếu . Nhìn vào kết quả, ở PPO khi bị cắt xén, thành phần chính quy hóa không âm được định nghĩa ở công thức trên sẽ hoạt động, và quy mô (scale) của nó được điều chỉnh bởi ∣A∣. Theo cách này, dù ở phiên bản cắt xén đã thêm vào một thành phần chính quy hóa khác hoàn toàn với sự phân kỳ Kullback-Leibler ban đầu, nhưng so với việc chính quy hóa trực tiếp, nó được tác động dưới hình thức phản ánh quy mô của hàm mất mát gốc, và thông qua đây ta cũng thấy được sự phụ thuộc vào tác vụ là thấp. Hơn nữa, đúng như dự đoán, nếu tối ưu hóa ρ với mục đích giảm thiểu thành phần chính quy hóa này thì chỉ cần là đủ. Nói cách khác, ở phiên bản PPO cắt xén, thực ra không có ràng buộc nào đủ mạnh để ép hội tụ hoàn toàn về , mà luôn tồn tại một Vùng chết (Dead band/ 不感帯) được định bởi ϵ. Vùng chết này tương ứng với việc có thể bỏ qua điều kiện ràng buộc nếu độ sai lệch giữa π và πold nhỏ hơn giá trị ngưỡng trong bài toán tối ưu hóa có ràng buộc nguyên thủy từng xuất hiện ở TRPO. Tuy nhiên trên thực tế, thành phần chính quy hóa này lại hoạt động như để triệt tiêu hàm mất mát ban đầu, khiến đạo hàm trở về 0, do đó có những chỉ trích rằng phiên bản PPO cắt xén không thể thực hiện được (thậm chí là giữ nó trong vùng chết), dẫn đến việc các phiên bản cải tiến của PPO đưa vào cơ chế chính quy hóa được cho là tốt hơn đã được đề xuất [6, 23]. Mặc dù vậy, việc chính quy hóa quá mạnh về πold sẽ làm cản trở quá trình học, rốt cuộc tốt nhất người dùng nên điều chỉnh một cách thích hợp tùy theo việc ưu tiên sự ổn định hay tính hiệu quả của quá trình học tập.

4-2-3 Ràng buộc liên tục Lipschitz cục bộ: L2C2 (Locally Lipschitz Continuous Constraint)

Cũng có thể giới hạn sự cập nhật chính sách từ một góc độ khác với TRPO hay PPO. Một ví dụ trong đó là chúng ta sẽ tập trung vào sự trơn tru của chính sách (và hàm giá trị) tại đây. Tức là, nếu hàm số được xấp xỉ bằng mạng nơ-ron (Neural Network/ ニューラルネットワーク) bị học quá khớp (Overfitting), đạo hàm của nó dễ bị đẩy lên một giá trị cực đoan, làm mất đi sự ổn định của quá trình học tập, do đó ta nhắm đến một quá trình học ổn định bằng cách thêm vào cơ chế chính quy hóa nhằm duy trì độ trơn tru của hàm số. Thế nhưng, nếu làm mượt hàm số quá mức thì sẽ làm hỏng đi hiệu suất xấp xỉ vốn dĩ cần thiết, do đó việc xử lý sự đánh đổi (Trade-off) đó sẽ trở thành điểm mấu chốt. Trong phần này, tôi muốn giới thiệu ngắn gọn về phương pháp Locally Lipschitz Continuous Constraint (L2C2) [24] của tác giả, đây là một phương pháp chính quy hóa để đạt được chính sách và hàm giá trị mượt mà ở mức độ vừa phải.

Đầu tiên, L2C2 tập trung vào tính liên tục Lipschitz cục bộ (Locally Lipschitz Continuous/ 局所リプシッツ連続) của hàm số. Tính liên tục Lipschitz có thể nói là một thước đo về độ trơn tru của hàm số giống như tính khả vi, và hàm số sở hữu đặc tính này sẽ thỏa mãn điều kiện dưới đây.

$$ \frac{d_Y(f(x_1), f(x_2))}{d_X(x_1, x_2)} \le K \quad (\forall x_1, x_2 \in X) \quad (4.16) $$

Ở đây, dX,Y là hàm khoảng cách thích hợp trong mỗi không gian, là cận trên, còn được gọi là hằng số Lipschitz. Xét về mặt trực giác, với một hàm số có K nhỏ, sự thay đổi của đầu ra so với sự thay đổi của đầu vào sẽ trở nên nhỏ hơn, và tất yếu hàm số sẽ trở nên mượt mà hơn. Ngược lại, với hàm có K lớn, hoặc hàm số không có tính liên tục Lipschitz, sẽ tồn tại những điểm mà đầu ra thay đổi đột ngột đối với một thay đổi cực nhỏ của đầu vào. Đối với các hàm số được xấp xỉ bằng mạng nơ-ron, năng lực biểu diễn cao của chúng đôi khi lại phản tác dụng, về cơ bản bản thân tính liên tục Lipschitz có thể được thỏa mãn, nhưng do có xu hướng K sẽ trở nên lớn, vì vậy để làm cho nó mượt mà hơn, cần phải có chủ ý hạn chế để làm cho K nhỏ lại [25]. Ngoài ra, tính liên tục Lipschitz cục bộ chỉ ra rằng tại không gian cục bộ xung quanh một nào đó sẽ thỏa mãn tính liên tục Lipschitz với Ki, và nó mang đặc điểm là mỗi không gian cục bộ i sẽ có một hằng số Lipschitz khác nhau. Như đã trình bày, ta muốn làm cho K nhỏ đi để làm trơn hàm số, nhưng tất nhiên nếu thì và hiệu năng xấp xỉ sẽ bị mất đi. Do đó, nếu ta có thể chia ra thành các không gian cục bộ cần một Ki lớn để xấp xỉ, và các không gian cục bộ dễ xấp xỉ có thể làm Ki nhỏ nhất có thể, thì ta có thể vừa tránh được việc làm suy giảm hiệu năng xấp xỉ do giới hạn đồng đều toàn bộ hàm số, vừa dễ dàng đạt được độ mượt mà cần thiết.

Trong L2C2, về mặt lý tưởng, ta xem xét bài toán tối ưu hóa có ràng buộc liên quan đến tính liên tục Lipschitz cục bộ dưới đây đối với tham số θ của chính sách π và hàm giá trị V (có thể là Q) khi được cung cấp một kinh nghiệm (s,a,s′,r).

$$\theta^*, \theta^* = \arg\min_{\theta, V} \mathcal{L}_\pi(\theta) + \mathcal{L}_V(V)$$
$$\text{s.t.}$$
$$\begin{cases} \sup_{s_1, s_2 \in U_s} \frac{d_\pi(\pi(a\vert{}s_1), \pi(a\vert{}s_2))}{d_{U_s}(s_1, s_2)} = K_{U_s, \pi} & \text{(方策の制約)} \\ \sup_{s_1, s_2 \in U_s} \frac{d_V(V(s_1), V(s_2))}{d_{U_s}(s_1, s_2)} = K_{U_s, V} & \text{(価値関数の制約)} \end{cases} \quad (4.17)$$

Trong đó, dπ và dV là hàm khoảng cách thích hợp đối với chính sách và hàm giá trị, dUs là hàm khoảng cách trong không gian trạng thái (State space/ 状態空間) cục bộ lấy s làm trung tâm. KUs,π và KUs,V là hằng số Lipschitz mục tiêu tại Us tương ứng cho chính sách và hàm giá trị, và có ý định ràng buộc vế trái, vốn tương đương với hằng số Lipschitz thực tế tại Us, vào mục tiêu ở vế phải.

Thực tế mà nói, dù định nghĩa tính cục bộ như thế nào thì không gian cục bộ Us chắc chắn sẽ tồn tại vô hạn, và việc chỉ định hằng số Lipschitz mục tiêu cho từng cái là bất khả thi. Hơn nữa, trên lý thuyết, việc tìm kiếm hằng số Lipschitz thực tế cũng được biết đến là một bài toán NP-khó (NP-hard) [26], và mặc dù có thể tìm thấy cận trên một cách xấp xỉ bằng phương pháp học đối kháng, nhưng nó lại không phù hợp cho việc triển khai với chi phí thấp. Do đó, khi chuyển đổi ràng buộc cứng (Hard constraint) của công thức (4.17) sang ràng buộc mềm (Soft constraint) dưới dạng thành phần chính quy hóa, L2C2 đã lên kế hoạch đơn giản hóa một cách táo bạo và định nghĩa công thức sau.

$$\theta^*, \theta^* = \arg\min_{\theta, V} \mathcal{L}_\pi(\theta) + \mathcal{L}_V(V)$$
$$+ \lambda_\pi \mathbb{E}_{s \in U_s} \left[ \frac{d_\pi(\pi(a\vert{}s), \pi(a\vert{}\tilde{s}))}{d_{U_s}(s, \tilde{s})} \right]$$
$$+ \lambda_V \mathbb{E}_{s \in U_s} \left[ \frac{d_V(V(s), V(\tilde{s}))}{d_{U_s}(s, \tilde{s})} \right] \quad (4.18)$$

Ở đây, là Hệ số khuếch đại (Gain/ ゲイン) hằng số chung cho toàn bộ không gian cục bộ quyết định độ mượt mà của hàm số. Nói cách khác, ở L2C2, trong khi thay thế cận trên bằng kỳ vọng (Expectation/ 期待値), nó từ bỏ việc thiết lập mục tiêu cho từng không gian cục bộ và hằng số hóa biến đối ngẫu (Dual variable) Lagrange thành một siêu tham số. Kết quả là, việc nâng cao tính liên tục Lipschitz cục bộ được nới lỏng từ nghĩa vụ thành mục tiêu nỗ lực, giúp dễ dàng có được hiệu suất xấp xỉ hơn. Đồng thời, việc λπ,λV là hằng số sẽ phản hồi lại Lπ và LV đóng vai trò là hàm mục tiêu; tại những Us mà mục tiêu chính dễ dàng đạt được, ràng buộc làm trơn hàm số có xu hướng chiếm ưu thế, còn tại những Us mà việc học tập cho mục tiêu chính gặp khó khăn và đạo hàm của nó dễ dàng trở nên lớn, thì có thể kỳ vọng vào hiệu suất xấp xỉ hơn là độ mượt mà của hàm số.

Cuối cùng, chúng ta sẽ thiết kế không gian cục bộ Us. Phần chi tiết xin nhường lại cho tài liệu gốc và sẽ được lược bỏ tại đây, nhưng như được hiển thị trong Hình 4-1, chúng ta chú ý vào quá trình chuyển đổi trạng thái trong kinh nghiệm, và xác định Us với s là trung tâm và s′ được chỉ định tại một điểm ở rìa không gian. Nghĩa là, về mặt trực giác có thể nói rằng đã áp dụng một giả định ngầm rằng trạng thái trong quá trình chuyển đổi phải là cùng một chính sách và hàm giá trị. Việc chính quy hóa cho chính sách như thế này rất hữu ích, bởi vì khi vận hành hệ thống thực tế nó sẽ không thay đổi hành động đối với mức độ nhiễu quan sát, từ đó ngăn ngừa những phiền toái như quá tải hay giảm hiệu suất năng lượng do dao động hành động bị kéo theo bởi nhiễu quan sát mang lại. Trên thực tế, tài liệu [27] đã giới thiệu một phương pháp tương tự để triệt tiêu sự thay đổi đầu ra của Drone.

Hình 4-1 Không gian trạng thái cục bộ trong L2C2: Bằng cách thiết kế dựa trên thông tin chuyển đổi trạng thái, nó có vai trò triệt tiêu sự thay đổi đầu ra trong quá trình chuyển đổi trạng thái.

4-3 Tính toán trực tiếp phương pháp Đạo hàm chính sách (Policy Gradient)

Việc tối ưu hóa hàm chính sách lấy bài toán cực đại hóa hàm giá trị (Value function/ 価値関数) trạng thái V làm điểm xuất phát. Ở phương pháp đạo hàm chính sách, đạo hàm của V liên quan đến π (và tham số ϕ của nó) được tính toán một cách giải tích, nhưng do tại thời điểm giải tích này có sử dụng tính phụ thuộc vào chính sách của V, nên không có cách nào khác ngoài việc phân loại nó vào dạng On-policy. Mặt khác, trong Q-Learning nhắm tới không gian hành động rời rạc, hành động tối ưu được định nghĩa một cách cụ thể hơn là tối đa hóa hàm giá trị hành động Q. Đây là một phần của lý do vì sao trong không gian hành động rời rạc, tức là các lựa chọn hành động có thể lấy được là hữu hạn nên có thể so sánh và chọn lọc đơn giản bằng argmax. Trong không gian hành động liên tục, các lựa chọn trở nên vô hạn và argmax hoàn toàn không thể tính toán một cách chặt chẽ được, từ đó có thể nói rằng một sự tối ưu hóa có phần vòng vèo như phương pháp đạo hàm chính sách đã được nghĩ ra.

Vậy, kể cả khi argmax là không thể, lẽ nào không thể đơn giản là cải thiện hành động theo hướng tối đa hóa Q, và tiếp đó là cải thiện chính sách đã sinh ra hành động đó hay sao? Ở đây, nếu vận dụng thủ thuật tái tham số hóa (Reparameterization Trick/ 再パラメータ化トリック) của công thức (4.5), ta có thể cập nhật tham số ϕ của chính sách một cách trực tiếp hơn thông qua quy tắc cập nhật được hiển thị dưới đây.

$$\phi \leftarrow \phi + \alpha \mathbb{E}_{s \sim p_e} [\nabla_\phi Q^\pi(s, a=\pi(\phi\vert{}s), \epsilon)]$$
$$= \phi + \alpha \mathbb{E}_{s \sim p_e} [\nabla_\pi \phi(s) \nabla_a Q^\pi(s, a)\vert{}_{a=\pi(\phi\vert{}s)}] \quad (4.19)$$

Giá trị ở đây không nhất thiết phải tuân theo chính sách , và ở đây được giả định là tuân theo một chính sách khác (hoặc của quá khứ). Đó là bởi vì nó chỉ dừng lại ở việc tối ưu hóa hành động tốt nhất tương ứng với trạng thái được đưa ra, lấy tuân theo một chính sách thích hợp (lý tưởng nhất là chính sách tối ưu) làm thước đo. Hơn nữa, cần lưu ý rằng để áp dụng phương pháp này, tiền đề lớn là phải được xấp xỉ dưới dạng có thể vi phân. Do các triển khai trong những năm gần đây hầu như đều dùng mạng nơ-ron để xấp xỉ hàm, tiền đề này có lẽ không khó lắm, tuy nhiên trong trường hợp hướng tới các bài toán mà có thể suy đoán trước rằng sẽ thay đổi một cách rời rạc, thì xử lý bằng cách xấp xỉ dưới dạng có thể vi phân chẳng hạn, và tiếp tục đi sâu giải thích về hàm giá trị trạng thái tiếp tục hành động bằng một chính sách khác sau đó, thì đạo hàm dễ bị phân kỳ ngay cả khi có chính sách được cập nhật chỉ đối với trạng thái được cung cấp.

$$\phi \leftarrow \phi + \alpha \mathbb{E}_{s \sim S} [\nabla_\phi V^{\pi, b}(s)] \quad (4.20)$$

Dù sao đi nữa, có thể thấy rằng một quy tắc cập nhật khác với phương pháp đạo hàm chính sách trước đây đã được xác định. Ví dụ, mặc dù tôi đã nhấn mạnh việc Q không cần thiết phải tuân theo chính sách π hiện tại, nhưng điều đó có nghĩa là quy tắc cập nhật này có thể được xem là dạng Off-policy. Chính vì vậy, bằng cách sử dụng kết hợp với phát lại kinh nghiệm (Experience Replay/ 経験再生), việc gia tốc quá trình học tập trở nên dễ dàng, do đó trong những năm gần đây, có xu hướng các phương pháp dựa trên quy tắc cập nhật này được sử dụng rộng rãi. Ngoài ra, so với phương pháp đạo hàm chính sách truyền thống xét đạo hàm đối với toàn bộ chính sách, phương pháp này trực tiếp tìm ra đạo hàm cho từng hành động, từ đó phản ánh được hành động nào đóng góp bao nhiêu vào việc gia tăng hàm giá trị. Sự khác biệt này sẽ trở nên rõ rệt khi không gian hành động trở thành chiều không gian cao, nếu sự đóng góp của từng hành động vẫn còn mơ hồ như trước đây thì không khó để tưởng tượng quá trình học sẽ trở nên chậm chạp, nhưng với phương pháp này, hiệu suất học tập có thể được duy trì ở một mức độ nào đó. Ngoài ra, người ta cũng biết rằng bằng cách sử dụng đạo hàm của Q, phương sai (Variance) của chính đạo hàm sẽ trở nên nhỏ đi [28]. Nhân tiện, do đây cũng là một loại phương pháp đạo hàm chính sách, nên phương pháp trước đây được gọi là Phương pháp Đạo hàm tỉ số hợp lý (Likelihood Ratio Gradient), còn phương pháp này là Phương pháp Đạo hàm tái tham số hóa (Reparameterization Gradient) để phân biệt, đồng thời một sự thấu hiểu thống nhất cũng đang được thúc đẩy [29].

4-3-1 Đạo hàm chính sách tất định (Deterministic Policy Gradient: DPG)

Như một ví dụ cụ thể, trong quyển sách này đầu tiên sẽ giới thiệu về Deterministic Policy Gradient (DPG) [30]. Có thể bạn đã từng nghe tới phiên bản Học tăng cường sâu (Deep Reinforcement Learning/ 深層強化学習) được gọi là Deep DPG (DDPG) [31], nhưng về bản chất cả hai đều tương đương nhau. Ở DPG, không phải là dẫn xuất ra thuật toán bằng cách áp dụng thủ thuật tái tham số hóa như trên, mà là ngay từ đầu ấn định chính sách là một chính sách tất định, và xem xét bài toán quyết định hành động bằng cách sử dụng tham số xấp xỉ hàm ϕ đó. Nếu làm như vậy, sự rắc rối bắt nguồn từ việc chính sách từng là một phân phối xác suất sẽ bị loại bỏ, và có thể dẫn ra quy tắc cập nhật dưới đây.

$$\phi \leftarrow \phi + \alpha \mathbb{E}_{s \sim \mathcal{D}} [\nabla_\phi \mu_\phi(s) \nabla_a Q(s, a)\vert{}_{a=\mu_\phi(s)}] \quad (4.21)$$

Ở đây, D là bộ nhớ đệm trong tái tạo kinh nghiệm. Như có thể thấy qua điều này, nó trở thành một quy tắc cập nhật gần giống với trường hợp sử dụng thủ thuật tái tham số hóa ở trên. Hơn nữa, tuy kết hợp học cả Q nhưng cũng sử dụng phương pháp TD nhằm tận dụng triệt để việc phát lại kinh nghiệm (experience replay / 経験再生).

Một điểm cần lưu ý là trong phương pháp TD liên quan đến $Q$, cần có hành động tiếp theo $a’$ đối với trạng thái tiếp theo $s’$, nhưng thay vì tích lũy trong bộ nhớ đệm phát lại (Replay Buffer/ リプレイバッファ), nó được tính toán mỗi lần là $a’ = \mu_{\bar{\phi}}(s’)$, bằng cách này $Q$ được cho là đạt cực đại tại thời điểm đó có thể được đặt ở phía tín hiệu giáo viên (Teacher Signal/ 教師信号), và có thể kỳ vọng vào một quá trình học tương tự như Học Q (Q-Learning/ $Q$学習).

Bằng cách này trong (D)DPG, cả hàm giá trị hành động (Action Value Function/ 行動価値関数) và chính sách (Policy/ 方策) đều được học từ bộ nhớ đệm $\mathcal{D}$ được tích lũy thông qua phát lại kinh nghiệm (Experience Replay/ 経験再生), nhưng có một vấn đề. Đó là tình thế tiến thoái lưỡng nan giữa khám phá và khai thác kiến thức (Exploration-Exploitation Dilemma/ 探索と知識利用のジレンマ) đã được đề cập ở chương 2, vì chính sách mang tính tất định nên về cơ bản nó chỉ ưu tiên khai thác kiến thức. Đối với vấn đề này, trong (D)DPG, khi thu thập dữ liệu, một nhiễu khám phá (Exploration Noise/ 探索ノイズ) được cộng thêm vào hành động $a = \mu_\phi(s)$ được tính toán từ chính sách. Ban đầu, nhiễu tuân theo Quá trình Ornstein-Uhlenbeck (OU Process/ Ornstein-Uhlenbeck過程) [32] phụ thuộc vào nhiễu trong quá khứ được áp dụng, nhưng cuối cùng người ta cho rằng nhiễu Gauss (Gaussian Noise/ ガウスノイズ) với trung bình bằng 0 là đủ. Vẫn chưa có câu trả lời rõ ràng về loại nhiễu nào thúc đẩy quá trình khám phá, và có cảm giác như nó vẫn chưa được phân tích đầy đủ. Dù sao đi nữa, bằng cách phát lại kinh nghiệm sử dụng bộ nhớ đệm được thu thập thông qua việc thêm nhiễu khám phá, kinh nghiệm sẽ được mở rộng, từ đó dễ dàng tìm ra giải pháp tối ưu (Optimal Solution/ 最適解) hơn.

Ở đây, mặc dù quy tắc cập nhật (Update Rule/ 更新則) chính sách trong (D)DPG ở trên chỉ có thể được dẫn ra chính vì chính sách mang tính tất định, nhưng rốt cuộc việc thêm nhiễu vào hành động, trên thực tế có thể hiểu là đang thực hiện thủ thuật tái tham số hóa (Reparameterization Trick/ 再パラメータ化トリック). Tuy nhiên, trong (D)DPG điểm quan trọng đến bất ngờ là phân phối sinh nhiễu (Noise Generating Distribution/ ノイズの生成分布) hoàn toàn cố định. Tương tự như trong phương pháp đạo hàm chính sách (Policy Gradient/ 方策勾配法) truyền thống, ví dụ như khi tối ưu hóa một chính sách được mô hình hóa bằng phân phối Gauss (Gaussian Distribution/ ガウス分布), người ta biết rằng tham số $\sigma$ tương ứng với quy mô nhiễu (Noise Scale/ ノイズのスケール) trở nên nhỏ lại trong giai đoạn đầu của quá trình học, dẫn đến việc không thể khám phá đầy đủ [33, 34]. Vì vậy, nếu cố định quy mô nhiễu để việc khám phá được tiếp tục, quá trình khám phá có thể duy trì vĩnh viễn, giúp quá trình tương đối ổn định và dễ dàng tìm ra giải pháp tối ưu. Tuy nhiên, xin lưu ý rằng nếu chỉ định sai quy mô của nhiễu khám phá, nếu quá lớn thì sẽ không thể thu được các thao tác cực kỳ chính xác nữa, và nếu quá nhỏ thì đương nhiên việc khám phá sẽ tiến triển rất chậm chạp.

Cuối cùng, mã giả (Pseudocode/ 擬似コード) của DDPG được đưa vào Algorithm 2. Ở đây, $\sigma \in \mathbb{R}_{|A|}, |\mathcal{D}| \in \mathbb{N}, \alpha \in \mathbb{R}_+, \gamma \in [0, 1), \tau \in [0, 1]$ là các siêu tham số (Hyperparameter/ ハイパーパラメータ) chính. Ngoài ra, trên thực tế không phải lúc nào toàn bộ $\mathcal{D}$ cũng được dùng khi cập nhật, mà thường chỉ cập nhật bằng các mẫu (samples) được lấy ra theo kích thước lô (Batch Size/ バッチサイズ) đã chỉ định. Thêm vào đó, cần chú ý rằng mạng mục tiêu (Target Network/ ターゲットネットワーク) được giới thiệu ở chương 3 không chỉ được sử dụng cho hàm giá trị mà còn cho cả chính sách. Nhờ điều này, $Q$ một cách rõ ràng đối với chính sách khác với chính sách hiện tại nên được học, và có thể thấy rõ ràng nó trở thành dạng Off-policy (方策オフ型). 

Mã giả của Algorithm 2 DDPG [31]
1: Khởi tạo $\phi^\pi, \phi^Q$
2: Khởi tạo mạng mục tiêu: $\bar{\phi}^\pi \leftarrow \phi^\pi, \bar{\phi}^Q \leftarrow \phi^Q$
3: Khởi tạo tập dữ liệu: $\mathcal{D} \leftarrow \emptyset$
4: lặp lại (repeat)
5: Quan sát trạng thái hiện tại $s$: $s \leftarrow s’$ hoặc $s \sim p_0(s)$
6: Quyết định hành động: $a = \text{clip}(\mu_{\phi^\pi}(s) + \epsilon, \underline{a}, \overline{a}), \epsilon \sim \mathcal{N}(0, \sigma)$
7: Thực thi hành động: $s’ \sim p_e(s’|s, a), r = r(s, a, s’)$
8: $\mathcal{D} \leftarrow \mathcal{D} \cup (s, a, r, s’)$ $\triangleright$ Xóa từ kinh nghiệm cũ nhất khi vượt quá dung lượng
9: nếu (if) đến thời điểm cập nhật thì (then)
10: $\phi^\pi \leftarrow \phi^\pi – \alpha \mathbb{E}_{s \sim \mathcal{D}} [g(s)]$
11: $g(s) = -\nabla_{\phi^\pi} \mu_{\phi^\pi}(s) \nabla_a Q_{\phi^Q}(s, a)|_{a=\mu_{\phi^\pi}(s)}$
12: $\phi^Q \leftarrow \arg\min_{\phi^Q} \mathbb{E}_{(s, a, r, s’) \sim \mathcal{D}} [l^Q(s, a, r, s’)]$
13: $l^Q(s, a, r, s’) = \frac{1}{2} (r + \gamma Q_{\bar{\phi}^Q}(s’, \mu_{\bar{\phi}^\pi}(s’)) – Q_{\phi^Q}(s, a))^2$
14: $\bar{\phi}^\pi \leftarrow (1-\tau)\bar{\phi}^\pi + \tau\phi^\pi, \bar{\phi}^Q \leftarrow (1-\tau)\bar{\phi}^Q + \tau\phi^Q$
15: kết thúc điều kiện (end if)
16: cho đến khi (until) quá trình học hội tụ đủ

Nhân tiện, việc cập nhật mạng mục tiêu bằng trung bình trượt hàm mũ (Exponential Moving Average/ 指数移動平均) có lẽ được xuất hiện lần đầu trong bài báo về DDPG.

4-3-2 Twin Delayed DDPG: TD3

Mặc dù (D)DPG thể hiện hiệu suất tuyệt vời như vậy, nhưng người ta báo cáo rằng nó thường gặp phải sự dễ tổn thương (vulnerability) đối với việc điều chỉnh siêu tham số, một tình trạng thường thấy trong học tăng cường (Reinforcement Learning/ 強化学習) dạng Off-policy. Do đó, để làm cho việc học trở nên ổn định, Twin Delayed DDPG (TD3) [35] được giới thiệu trong phần này đã đưa vào DDPG 3 cải tiến mang tính kinh nghiệm lớn. Mục tiêu chính của các cải tiến là ức chế cả việc đánh giá quá mức (Overestimation) trong quá trình học của hàm giá trị hành động $Q$ và hiện tượng quá khớp (Overfitting/ 過学習) của chính sách đi kèm với nó.

Đầu tiên, tín hiệu giáo viên để học $Q$ nếu là (D)DPG sẽ được cho là $y_{DDPG} = r + \gamma Q(s’, \mu_{\bar{\phi}}(s’))$. Trong TD3, người ta xem xét vấn đề là $y_{DDPG}$ khiến $Q$ được xấp xỉ bằng mạng nơ-ron (Neural Network/ ニューラルネットワーク) dễ bị đánh giá quá mức (ngay cả khi sử dụng mạng mục tiêu để cập nhật từ từ), và bị lôi kéo theo điều đó dẫn đến việc phán đoán sai lệch các trạng thái và hành động là tối ưu. Vấn đề này có phần phụ thuộc vào sai số xấp xỉ (Approximation Error/ 近似誤差) của chính $Q$, và có phần phụ thuộc vào sai số ước lượng của hành động tối ưu ước lượng được đưa vào.

Vì vậy, trong TD3 như một cải tiến đầu tiên, hành động tiếp theo $a’$ nhập vào $Q$ được tạo ra như sau.

$$a’ = \mu_{\bar{\phi}}(s’) + \text{clip}(\epsilon, -c, c) \quad (4.22)$$
$$\epsilon \sim \mathcal{N}(0, \sigma)$$

Nói cách khác, nhiễu $\epsilon$ từ phân phối chuẩn (Normal Distribution/ 正規分布) với quy mô $\sigma$ được cắt xén ở ngưỡng $c$ để không trở thành giá trị cực đoan, sau đó được thêm vào hành động tối ưu ước lượng. Qua đó $y_{TD3}$ được cung cấp một cách xác suất (Probabilistically/ 確率的に), vì vậy $Q$ được làm trơn (smoothed) tương ứng và có thể ức chế sự quá khớp. Ngoài ra, cần lưu ý rằng $a’$ khác với hành động để thực sự tương tác với môi trường, mà chỉ nhằm mục đích tính toán $y_{TD3}$.

Như một cải tiến khác, TD3 đưa vào $Q$ phương pháp học tập hợp (Ensemble Learning/ アンサンブル学習) đã được giới thiệu ở chương 3. Cụ thể, xem số lượng tập hợp là $K = 2$, chuẩn bị $Q_{1,2}$ được xấp xỉ bằng các tham số khác nhau (không được ghi rõ nhưng có lẽ là nguồn gốc của từ Twin), và cập nhật từng cái bằng cách sử dụng tín hiệu giáo viên chung $y_{TD3}$ dựa trên phương pháp TD. Để tính toán $y_{TD3}$, người ta xem xét thống kê của $Q_{1,2}$, nhưng trong TD3 để trực tiếp ức chế việc đánh giá quá mức $Q$, giá trị nhỏ hơn trong 2 giá trị được chọn. Nghĩa là, sử dụng cả $a’$ thu được trong cải tiến thứ nhất, $y_{TD3}$ được đưa ra như sau.

$$y_{TD3} = r + \gamma \min_{k=1,2} Q_k(s’, a’) \quad (4.23)$$

$Q_{1,2}$ được tối ưu hóa sao cho giảm thiểu sai số bình phương với $y_{TD3}$ thu được.

Cải tiến cuối cùng là để có thể phản ánh trình tự học tập mong muốn là chính sách $\pi$ nên được tối ưu hóa đối với $Q$ đã được học một cách thích hợp. Nói cách khác, rất đơn giản, $\pi$ (và mạng mục tiêu) được cập nhật với tần suất cập nhật ít hơn so với $Q$. Sự trễ (delay) trong cập nhật này là nguồn gốc của từ Delayed, nhưng có thể nói rằng nó đang thực hiện nguyên tắc “nên làm cho tốc độ học (Learning Rate/ 学習率) đối với chính sách nhỏ hơn so với tốc độ học đối với hàm giá trị” – thứ đôi khi được áp dụng như một mẹo thực hành trong phương pháp Actor-Critic đã đề cập ở Chương 3 – dưới hình thức thay đổi/trì hoãn thời điểm cập nhật.

Dù sao thì TD3 với việc đưa vào 3 điều trên đang thể hiện hiệu suất cao hơn so với (D)DPG truyền thống, cho thấy rằng các cải tiến để ổn định việc học tập là rất quan trọng trong học tăng cường sâu (Deep Reinforcement Learning/ 深層強化学習). Thêm vào đó, nó thường được so sánh với SAC [36] được mô tả ở phần sau do có nhiều điểm tương đồng và được đề xuất cùng thời điểm, nhưng vẫn đang được tranh luận về việc phương pháp nào tốt hơn về mặt tổng quát, vì vậy nếu có hứng thú bạn hãy tự mình dùng thử cả 2 và so sánh sẽ rất thú vị. Thực tế, trong mỗi bài báo gốc [35, 36] cũng có tiến hành kiểm chứng so sánh, nhưng do sự khác biệt trong việc triển khai (Implementation) và tinh chỉnh, đôi khi kết quả của mỗi bên lại trái ngược nhau, dẫn đến tình huống tự khẳng định tính ưu việt của phương pháp mình.

4-4 Tối đa hóa Entropy chính sách

TRPO hay PPO v.v… ngoài việc cực đại hóa lợi nhuận là bài toán tối ưu hóa của học tăng cường thông thường, còn thêm vào các điều kiện ràng buộc hoặc thành phần chính quy hóa (Regularization Term/ 正則化項) nhằm giới hạn sự cập nhật chính sách. Các trường hợp thêm mục tiêu phụ trợ như vậy vào mục tiêu ban đầu để tăng hiệu suất và sự ổn định học tập được thấy rất nhiều trong lĩnh vực học máy (Machine Learning/ 機械学習), và học tăng cường cũng không ngoại lệ. Vậy, ngoài việc hạn chế cập nhật chính sách, mục tiêu phụ trợ nào phù hợp trong học tăng cường? Một mục tiêu kinh điển là tối đa hóa Entropy chính sách (Policy Entropy/ 方策エントロピー).

Entropy liên quan đến phân phối xác suất (Probability Distribution/ 確率分布) $p(x)$ được định nghĩa bằng công thức sau.

$$\mathcal{H}(p) = \begin{cases} – \sum_{i=1}^{|X|} p(x = i) \ln p(x = i) & (\text{Khối lượng xác suất}) \\ – \int_{\mathcal{X}} p(x) \ln p(x) dx & (\text{Mật độ xác suất}) \end{cases} \quad (4.24)$$
$$= \mathbb{E}_{p(x)}[-\ln p(x)] \quad (4.25)$$

Nó có định nghĩa tương tự như Phân kỳ Kullback-Leibler (Kullback-Leibler Divergence), nhưng cũng phải thôi, cái đó còn được gọi là Entropy tương đối (Relative Entropy), và tương đương với sai số giữa Entropy này và Entropy chéo (Cross Entropy). Vậy, Entropy này biểu thị điều gì, đó chính là độ bất định của phân phối xác suất. Phân phối xác suất càng mang tính tất định thì Entropy càng nhỏ, và càng mơ hồ thì càng lớn. Tức là, việc nhắm đến tối đa hóa Entropy chính sách một cách phụ trợ mang ý đồ giới hạn chính sách sao cho nó không trở nên quá tất định, qua đó tiếp tục duy trì việc khám phá ở phạm vi rộng. Như đã nói ở trước, trong phương pháp đạo hàm chính sách, chính sách sẽ sớm không còn coi trọng việc khám phá nữa, nhưng bằng cách thêm việc tối đa hóa Entropy chính sách làm một mục tiêu mới, ảnh hưởng xấu đó sẽ được giảm nhẹ. Thực tế, trong việc triển khai PPO, Entropy chính sách được thêm vào dưới dạng thành phần chính quy hóa dù chỉ là Ad-hoc.

$$\mathcal{L}^{PPO+\text{Ent}}(\theta) = \mathcal{L}^{PPO}(\theta) – c \mathbb{E}_{s \sim p(s; \rho_e, \pi, \gamma)} [\mathcal{H}(\pi(\cdot | s))] \quad (4.26)$$

Ở đây, $c \ge 0$ là siêu tham số quyết định cường độ chính quy hóa (Regularization Strength/ 正則化の強度). Tính hợp lệ về mặt lý thuyết của việc thêm phần này vào không được bàn luận sâu trong nguyên tác của PPO, nhưng tính hiệu quả của nó đã được xác nhận rộng rãi.

4-4-1 Soft Q-learning: SQL

Trong quyển sách này, chúng tôi sẽ giới thiệu Soft Q-learning (SQL) [37] và Soft Actor Critic (SAC) [36], những trường hợp đã tích hợp cực đại hóa Entropy chính sách này vào thuật toán học tăng cường một cách mang tính lý thuyết hơn. Đặc biệt SAC có thể nói là một gương mặt tiêu biểu trong các thuật toán học tăng cường dựa trên đạo hàm chính sách trong những năm gần đây, và do sự đơn giản trong triển khai nên tôi rất muốn các bạn hiểu và sử dụng nó.

Lời đầu tiên, xin giới thiệu về SQL, tiền thân của SAC. Trong SQL (và SAC), Entropy chính sách được xem xét dưới hình thức cộng thêm vào phần thưởng.

$$r \leftarrow r + \alpha \mathcal{H}(\pi(\cdot | s)) \quad (4.27)$$

Ở đây, $\alpha \ge 0$ là tham số nhiệt độ (Temperature Parameter/ 温度パラメータ), và xin lưu ý rằng nó khác với tốc độ học. Dù chỉ là một trọng số nhưng việc cất công gọi $\alpha$ là nhiệt độ là vì $\alpha$ càng lớn thì Entropy của chính sách, hay nói cách khác là sự hỗn loạn càng lớn, tạo ra một sự tương đồng (analogy) với trường hợp tăng nhiệt độ vật lý trong nhiệt động lực học. Đồng thời, lý do cũng vì $\alpha$ trùng khớp với tham số nhiệt độ $T$ của chính sách Softmax (Softmax Policy/ ソフトマックス方策) (mặc dù lý do $T$ của chính sách Softmax được gọi là tham số nhiệt độ vốn dĩ cũng xuất phát từ sự liên kết với nhiệt động lực học).

Lúc này, nếu mục tiêu của học tăng cường cũng giống như từ trước đến nay là tối đa hóa hàm giá trị trạng thái $V$ (vốn là giá trị kỳ vọng (Expected Value/ 期待値) của lợi nhuận), thì nếu xem xét một cách rõ ràng phần thưởng ở trên, nó sẽ được định nghĩa lại như sau.

$$\pi^*(\cdot | s_t) = \arg\max_\pi \mathbb{E}_{a_t \sim \pi(a_t | s_t), p_\tau(\tau | s_t, a_t; \pi)} \left[ \sum_{k=0}^{\infty} \gamma^k (r_{t+k} + \alpha \mathcal{H}(\pi(\cdot | s_{t+k}))) \, | \, s_t \right]$$
$$= \arg\max_\pi \mathbb{E}_{a_t \sim \pi(a_t | s_t)} \left[ Q(s_t, a_t) – \alpha \ln \pi(a_t | s_t) \right] \quad (4.28)$$

Ở đây, lý do $- \alpha \ln \pi(a_t | s_t)$ không nằm trong $Q$ có thể giải thích là vì $Q(s, a)$ là lợi nhuận kỳ vọng khi hành động $a$ đã được xác định tại trạng thái $s$, nên thành phần Entropy biểu thị sự bất định trước khi $a$ được xác định cần được loại trừ. Trên thực tế, cũng có thể nói đó là định nghĩa dựa trên sự tiện lợi để dẫn xuất chính sách tối ưu thành $\exp((Q-V)/\alpha)$, nhưng tôi xin nhường phần giải thích đó lại cho nguyên tác.

Dù sao đi nữa, do thành phần Entropy bị tràn ra khỏi $Q$ này, phương pháp TD của $Q$ sẽ thay đổi. Trước đó, trong khi gọi lại $V$ và $Q$ là hàm giá trị Soft (trạng thái hoặc hành động), tổng hợp định nghĩa và mối quan hệ của chúng sẽ như sau.

$$V(s_t) = \mathbb{E}_{a_t \sim \pi(a_t|s_t), p_\tau(\tau|s_t, a_t; \pi)} \left[ \sum_{k=0}^{\infty} \gamma^k (r_{t+k} + \alpha \mathcal{H}(\pi(\cdot | s_{t+k}))) \, | \, s_t \right] \quad (4.29)$$
$$Q(s_t, a_t) = r_t + \mathbb{E}_{p_\tau(\tau|s_t, a_t; \pi)} \left[ \sum_{k=1}^{\infty} \gamma^k (r_{t+k} + \alpha \mathcal{H}(\pi(\cdot | s_{t+k}))) \, | \, s_t, a_t \right] \quad (4.30)$$
$$V(s_t) = \mathbb{E}_{a_t \sim \pi(a_t|s_t)} [Q(s_t, a_t) – \alpha \ln \pi(a_t | s_t)] \quad (4.31)$$

Hơn nữa, Phương trình Soft Bellman (Soft Bellman Equation/ ソフトベルマン方程式) sử dụng triệt để cấu trúc đệ quy của $Q$ được tìm ra như sau.

$$Q(s_t, a_t) = r_t + \mathbb{E}_{p_\tau(\tau|s_t, a_t; \pi)} \left[ \sum_{k=1}^\infty \gamma^k (r_{t+k} + \alpha \mathcal{H}(\pi(\cdot | s_{t+k}))) \, | \, s_t, a_t \right]$$
$$= r_t + \gamma \mathbb{E}_{p_e(s_{t+1}|s_t, a_t), p_\tau(\tau | s_{t+1}, a_{t+1}; \pi)} \left[ \sum_{k=0}^\infty \gamma^k (r_{t+k} + \alpha \mathcal{H}(\pi(\cdot | s_{t+k}))) \, | \, s_{t+1} \right]$$
$$= r_t + \gamma \mathbb{E}_{p_e(s_{t+1}|s_t, a_t)} [V(s_{t+1})]$$
$$= r_t + \gamma \mathbb{E}_{p_e(s_{t+1}|s_t, a_t), \pi(a_{t+1}|s_{t+1})} [Q(s_{t+1}, a_{t+1}) – \alpha \ln \pi(a_{t+1} | s_{t+1})] \quad (4.32)$$

Giá trị kỳ vọng (Expected Value/ 期待値) còn lại cuối cùng sẽ được xấp xỉ bằng phương pháp Monte Carlo (Monte Carlo Method/ モンテカルロ法) thông qua những kinh nghiệm thu được từ việc tương tác thực tế với môi trường.

Do đó, sai số TD (TD Error/ TD誤差) liên quan đến hàm giá trị hành động (Action Value Function/ 行動価値関数) $Q$ khi bao gồm cả việc tối đa hóa Entropy (Entropy/ エントロピー) chính sách và hàm mất mát (Loss Function/ 損失関数) cần được giảm thiểu sẽ như sau.

$$\mathcal{L}_{soft}(\theta) = \mathbb{E}_{(s, a, s’, r) \sim \mathcal{D}} \left[ \frac{1}{2} \delta^2 \right] \quad (4.33)$$
$$\delta = r + \gamma \{ Q(s’, a’) – \alpha \ln \pi(a’ | s’) \} – Q(s, a)$$
$$a’ \sim \pi(a’ | s’)$$

Ở đây, xin lưu ý rằng giống như phương pháp TD thông thường, chỉ có $Q(s, a)$ được cập nhật, và các thành phần khác nằm trong $\delta$ đóng vai trò như một tín hiệu giáo viên (Teacher Signal/ 教師信号) giả. Từ định nghĩa này, ta có thể hiểu rằng hàm giá trị hành động ở thời điểm tiếp theo đang bị đánh giá thấp đi đúng bằng lượng độ hợp lý logarit (Log-likelihood/ 対数尤度) của chính sách tại thời điểm tiếp theo đó, hoặc độ hợp lý logarit đó đang được thêm vào phần thưởng như một hình phạt (Penalty/ ペナルティ). Dù giải thích theo cách nào thì chính sách càng mang tính tất định, giá trị sẽ càng giảm, do đó tác nhân (Agent) sẽ cố gắng duy trì Entropy của chính sách ở mức cao nhất có thể.

4-4-2 Soft Actor-Critic: SAC

Về phương pháp học của $Q$ cho đến lúc này, mặc dù có sự khác biệt về mặt kỹ thuật triển khai giữa SQL và SAC, nhưng về cơ bản chúng là tương đương. Mặt khác, liên quan đến việc tối ưu hóa (Optimization/ 最適化) chính sách $\pi$, dù chính sách tối ưu hướng tới là giống nhau như dưới đây, nhưng mỗi bên lại áp dụng một phương pháp tiếp cận tối ưu hóa hoàn toàn khác biệt.

$$\pi^*(a | s) = \frac{\exp(Q(s, a) / \alpha)}{Z(s)} \quad (4.34)$$

Ở đây, $Z$ là một hằng số chuẩn hóa (Normalization Constant/ 規格化定数) để $\pi^*$ thỏa mãn định nghĩa của phân phối xác suất (Probability Distribution/ 確率分布) (tổng hoặc tích phân bằng 1). Không cần quá bận tâm về nó, công thức này đơn giản chỉ ra rằng hành động nào có giá trị hành động cao hơn sẽ được ưu tiên hơn; ví dụ trong không gian hành động rời rạc (Discrete Action Space/ 離散行動空間), nó trở thành chính sách Softmax (Softmax Policy/ ソフトマックス方策) và ta có thể thấy $\alpha$ tương ứng với tham số nhiệt độ (Temperature Parameter/ 温度パラメータ). Trong không gian hành động liên tục (Continuous Action Space/ 連続行動空間), vì không thể tìm $Z$ một cách rõ ràng (explicitly), nên ở SQL, hành động được tạo ra một cách khá “bạo lực” bằng phương pháp Amortized SVGD [38] từ một dạng phân phối xác suất được gọi là Mô hình dựa trên năng lượng (Energy-based Model) – vốn là mô hình đã loại bỏ $Z$.

Mặt khác, trong SAC, $\pi$ được mô hình hóa bằng một phân phối xác suất thích hợp có chứa tham số $\theta$ (trong bản gốc là biến thể của phân phối Gauss bị giới hạn trong một khoảng hữu hạn), và bằng cách giảm thiểu Phân kỳ Kullback-Leibler (Kullback-Leibler Divergence/ Kullback-Leibler ダイバージェンス) giữa $\pi$ và $\pi^*$, nó sẽ đưa $\pi$ tiệm cận tới chính sách tối ưu.

$$\pi(a | s) \leftarrow \arg\min_\pi \text{KL} (\pi(a | s) || \pi^*(a | s)) \quad (4.35)$$

Nếu khai triển phân kỳ Kullback-Leibler này ra, ta sẽ được công thức dưới đây.

$$\text{KL}(\pi(a | s) || \pi^*(a | s)) = \mathbb{E}_\pi \left[ \ln \frac{\pi(a | s)}{\exp(Q(s, a) / \alpha) / Z(s)} \right]$$
$$= \mathbb{E}_\pi [ \ln \pi(a | s) – Q(s, a) / \alpha ] + C$$
$$\propto \mathbb{E}_\pi [ \alpha \ln \pi(a | s) – Q(s, a) ] \quad (4.36)$$

Ở đây, do giá trị kỳ vọng của $Z(s)$ không phụ thuộc vào $\pi$, nên ta có thể loại bỏ nó đi dưới dạng hằng số $C$, và nhân toàn bộ với $\alpha$ để tạo thành dạng quen thuộc mà chúng ta thấy ở đây. Việc lấy $\arg\min$ cho phương trình thu được cuối cùng vẫn không thể tìm ra kết quả bằng tính giải tích (Analytically/ 解析的), vì vậy chúng ta sẽ sử dụng phương pháp đạo hàm (Gradient Method/ 勾配法) để cập nhật $\pi$ (thông qua tham số $\theta$ của nó). Khi đó, SAC sử dụng thủ thuật tái tham số hóa (Reparameterization Trick/ 再パラメータ化トリック), và quy tắc cập nhật cuối cùng của $\theta$ sẽ như sau.

$$\theta \leftarrow \theta – \alpha_\pi \mathbb{E}_{s \sim \mathcal{D}, \epsilon \sim p_\epsilon} [g] \quad (4.37)$$
$$g = \nabla_\theta \{ \alpha \ln \pi(a = \pi(\theta(s), \epsilon) | s) – Q(s, a = \pi(\theta(s), \epsilon)) \}$$
$$= \alpha \nabla_\theta \ln \pi(a | s)$$
$$+ \alpha \nabla_\theta \pi(\theta, \epsilon) \nabla_a \ln \pi(a | s)|_{a=\pi(\theta, \epsilon)}$$
$$- \nabla_\theta \pi(\theta, \epsilon) \nabla_a Q(s, a)|_{a=\pi(\theta, \epsilon)} \quad (4.38)$$

Trong đó, $\alpha_\pi$ là tốc độ học. Ngoài việc cố gắng giảm thiểu $Q$ âm, thuật toán còn cố gắng giảm thiểu độ hợp lý logarit của chính sách ở thời điểm hiện tại, do đó tương tự như quy tắc cập nhật của $Q$, nó sẽ hướng tới việc duy trì Entropy của chính sách ở mức cao nhất có thể.

Ngoài ra, bài toán cực tiểu hóa mà SAC xử lý ở công thức (4.36) ban đầu có mục đích giảm thiểu Phân kỳ Kullback-Leibler với chính sách tối ưu $\pi^*$, nhưng khi so sánh thành phần cuối cùng với công thức (4.31), ta thấy nó hoàn toàn trùng khớp với việc cực tiểu hóa $-V$. Nói cách khác, có thể hiểu rằng SAC cũng giống như (D)DPG hay TD3, vừa xem xét việc tối đa hóa Entropy chính sách, vừa nỗ lực hoàn thành việc cực đại hóa hàm giá trị trạng thái thông qua các đạo hàm trực tiếp hơn. Thực tế, tuy có sự khác biệt ở việc nhiễu khám phá của chính sách có được cập nhật qua phương pháp đạo hàm hay không, nhưng nếu đặt hệ số chính quy hóa (Regularization Coefficient/ 正則化係数) $\alpha$ của Entropy chính sách về 0, ta sẽ thấy rằng chúng trở thành những quy tắc cập nhật tương đương nhau, ngoại trừ sự khác biệt trong triển khai mã nguồn.

Trong SAC, $\alpha$ – yếu tố quyết định mức độ xem xét việc cực đại hóa Entropy chính sách – đóng góp rất lớn vào hiệu suất, nhưng việc tinh chỉnh thủ công (Hand-tuning/ ハンドチューニング) giá trị này tốn rất nhiều công sức. Hơn nữa, không có lý do gì để luôn giữ $\alpha$ cố định trong suốt quá trình học. Lấy một ví dụ dễ hiểu, việc ưu tiên khám phá ở giai đoạn đầu của quá trình học và ưu tiên khai thác kiến thức ở giai đoạn sau có vẻ là một sự điều chỉnh rất tự nhiên. Vì vậy, trong bài báo cập nhật [39] của nhóm tác giả phát triển SAC, nhằm mục đích tự động điều chỉnh $\alpha$, họ đã diễn giải lại bài toán tối ưu hóa nói trên thành một bài toán tối ưu hóa có ràng buộc (Constrained Optimization Problem/ 制約付き最適化問題) tương ứng.

$$\pi^*(\cdot | s_t) = \arg\max_\pi \mathbb{E}_{a_t \sim \pi(a_t | s_t), p_\tau(\tau | s_t, a_t; \pi)} \left[ \sum_{k=0}^\infty \gamma^k r_{t+k} \right] \quad (4.39)$$
$$\text{s.t.} \quad \mathcal{H}(\pi(\cdot | s_t)) \ge \mathcal{H}^*$$

Ở đây, $\mathcal{H}^*$ được coi là giá trị tối thiểu của Entropy chính sách, và trong bài báo, việc đặt nó bằng $-|\mathcal{A}|$ được cho là ở mức hợp lý. Nếu biến đổi điều này bằng phương pháp nhân tử Lagrange (Lagrange Multiplier Method/ ラグランジュの未定乗数法), điều kiện ràng buộc sẽ được thay thế thành thành phần chính quy hóa, đưa chúng ta trở về với bài toán tối ưu hóa ban đầu, nhưng khi đó hệ số được nhân vào $\alpha \ge 0$ sẽ mang ý nghĩa của một biến đối ngẫu (Dual Variable/ 双対変数) Lagrange. Khi đó, giá trị $\alpha$ tối ưu được định nghĩa như sau.

$$\alpha^* = \arg\min_\alpha \mathbb{E}_{s \sim S, a \sim \pi^*(a|s)} [ -\alpha \{ \ln \pi^*(a | s) + \mathcal{H}^* \} ] \quad (4.40)$$

Trong thực tế, do $\pi^*$ là chưa biết, nên buộc phải dùng $\pi$ để thay thế, dẫn đến việc giảm thiểu hàm mất mát dưới đây.

$$\mathcal{L}(\alpha) = \mathbb{E}_{s \sim \mathcal{D}, a \sim \pi(a|s)} [ -\alpha \{ \ln \pi(a | s) + \mathcal{H}^* \} ] \quad (4.41)$$

Tuy nhiên, nếu xem xét cách thức triển khai của SAC, hầu hết đều hơi khác so với hàm mất mát nói trên: thay cho $\alpha \ge 0$, người ta thay thế và tối ưu hóa biến tương ứng trên không gian số thực $\tilde{\alpha} \in \mathbb{R}$, và mỗi khi sử dụng nó như một hệ số, $\alpha$ sẽ được tính toán thông qua một hàm mũ ánh xạ về không gian không âm. Việc này về mặt thực tiễn có thể coi là cách giải quyết vấn đề đạo hàm bị biến mất khi $\alpha \simeq 0$, nhưng về mặt lý thuyết, nó có thể được giải thích là đang ứng dụng phương pháp Mirror Descent (cụ thể hơn là phương pháp giảm dần độ dốc hàm mũ (Exponential Gradient Descent/ 指数勾配降下法) [40]).

Dù sao đi nữa, giờ đây $\alpha$ đã được tối ưu hóa, nhưng thực tế công thức gốc có đôi chút vấn đề nên cần phải cẩn thận. Tạm thời giả sử $\alpha$ được cập nhật theo hàm mất mát này, nếu Entropy chính sách $\mathcal{H}$ lớn hơn $\mathcal{H}^*$ đã thiết lập, hệ thống sẽ cố làm nhỏ $\alpha$ để làm nhỏ $\mathcal{H}$, và nếu $\mathcal{H} < \mathcal{H}^*$, nó sẽ cố làm lớn $\alpha$. Kết quả là $\alpha$ sẽ hội tụ sao cho thỏa mãn $\mathcal{H} \simeq \mathcal{H}^*$, và được điều chỉnh liên tục tùy theo tình trạng học tập của bài toán gốc (Primal Problem/ 主問題). Tức là, nó hoạt động để giữ sự mơ hồ của chính sách ở một mức độ gần như ổn định, và trớ trêu thay, sự thay đổi độ mơ hồ tùy theo tình trạng học tập – vốn là động cơ ban đầu để điều chỉnh $\alpha$ – lại bị mất đi. Lý do của hiện tượng này là do chúng ta đã chuyển đổi bài toán giảm thiểu về công thức (4.41) nhằm xử lý thành phần $\pi^*$ chưa biết trong điều kiện tối ưu của $\alpha$ ở công thức (4.40), và bài toán giảm thiểu này về bản chất lại là công cụ của phương pháp nhân tử Lagrange dùng để xử lý ràng buộc đẳng thức (Equality Constraint/ 等式制約). Hơn nữa, bản thân việc độ hỗn loạn của chính sách trở nên tương đối ổn định không hẳn là điều xấu, nếu ta nhìn nhận rằng điều từng là giá trị cố định ở (D)DPG hay TD3 nay đã mang tính linh hoạt nhất định, và ta có thể kỳ vọng hệ thống sẽ duy trì vĩnh viễn mức độ khám phá được chỉ định bởi $\mathcal{H}^*$.

Cuối cùng, mã giả của SAC bao gồm cơ chế tự động điều chỉnh $\alpha$ được trình bày trong Algorithm 3. Ở đây, $|\mathcal{D}| \in \mathbb{N}, \gamma \in [0, 1), \tau \in [0, 1], \mathcal{H}^* \in \mathbb{R}$ là những siêu tham số chính. Tương tự như DDPG (và TD3), hệ thống thường lấy ra các mẫu với kích thước lô (Batch Size/ バッチサイズ) chỉ định từ $\mathcal{D}$ để sử dụng cho cập nhật, và tốc độ học cho lần cập nhật đó cũng cần được khai báo. Giá trị khởi tạo của $\alpha$ cũng có thể chỉ định, nhưng nhìn chung thường được cấp ở khoảng giá trị 1.

Đồng thời, ở chương 2 tôi đã giới thiệu phương pháp giới hạn không gian hành động trong một khoảng bị chặn (Công thức (2.11)), trong SAC, điều này được tích hợp trực tiếp vào phía chính sách $\pi$, nên khi tính toán độ hợp lý v.v., cần chú ý không được quên cân nhắc đến thành phần chuyển đổi không gian.

Mã giả của Algorithm 3 SAC [36, 39]
1: Khởi tạo $\phi^\pi, \phi^{Q_{i=1,2}}$
2: Khởi tạo $\alpha$
3: Khởi tạo mạng mục tiêu: $\bar{\phi}^{Q_{i=1,2}} \leftarrow \phi^{Q_{i=1,2}}$
4: Khởi tạo tập dữ liệu: $\mathcal{D} \leftarrow \emptyset$
5: lặp lại (repeat)
6: Quan sát trạng thái hiện tại $s$: $s \leftarrow s’$ hoặc $s \sim p_0(s)$
7: Quyết định hành động: $a \sim \pi_{\phi^\pi}(a | s)$
8: Thực thi hành động: $s’ \sim p_e(s’|s, a), r = r(s, a, s’)$
9: $\mathcal{D} \leftarrow \mathcal{D} \cup (s, a, r, s’)$ $\triangleright$ Xóa kinh nghiệm cũ khi vượt quá dung lượng (Capacity Exceeded/ 容量超過時)
10: nếu (if) đến thời điểm cập nhật thì (then)
11: $\phi^\pi \leftarrow \arg\min_{\phi^\pi} \mathbb{E}_{s \sim \mathcal{D}, a_{\phi^\pi} \sim \pi_{\phi^\pi}(a|s)} [ l^\pi(s, a_{\phi^\pi}) ]$
12: $l^\pi(s, a_{\phi^\pi}) = – \{ \min_i Q_{\phi^{Q_i}}(s, a_{\phi^\pi}) – \alpha \ln \pi_{\phi^\pi}(a_{\phi^\pi} | s) \}$
13: $\phi^{Q_i} \leftarrow \arg\min_{\phi^{Q_i}} \mathbb{E}_{(s, a, r, s’) \sim \mathcal{D}, a’ \sim \pi_{\phi^\pi}(a|s’)} [ l^{Q_i}(s, a, r, s’, a’) ]$
14: $l^{Q_i}(s, a, r, s’, a’) = \frac{1}{2} (y(r, s’, a’) – Q_{\phi^{Q_i}}(s, a))^2$
15: $y(r, s’, a’) = r + \gamma \min_i Q_{\bar{\phi}^{Q_i}}(s’, a’) – \alpha \ln \pi_{\phi^\pi}(a’ | s’)$
16: $\alpha \leftarrow \arg\min_\alpha \mathbb{E}_{s \sim \mathcal{D}, a \sim \pi_{\phi^\pi}(a|s)} [ -\alpha \{ \ln \pi_{\phi^\pi}(a | s) + \mathcal{H}^* \} ]$
17: $\bar{\phi}^{Q_i} \leftarrow (1-\tau)\bar{\phi}^{Q_i} + \tau\phi^{Q_i}$
18: kết thúc điều kiện (end if)
19: cho đến khi (until) quá trình học hội tụ (Convergence/ 収束) đủ

Một trong những lý do tích hợp phép biến đổi vào phía $\pi$ là để đảm bảo đầu vào hành động $a$ đưa cho hàm giá trị $Q$ nằm gọn trong khoảng giới hạn định sẵn (-1, 1), giúp ổn định quá trình học. Hơn nữa, như đã đề cập một chút ở chương 3, SAC cũng ứng dụng kỹ thuật học tập hợp (Ensemble Learning/ アンサンブル学習) cho $Q$ ($K=2$). Tức là, đối với $Q(s’, a’)$ dùng để tính sai số TD ở công thức (4.33), hay $Q(s, a)$ làm thước đo cho việc cải thiện chính sách ở công thức (4.36), tương tự như TD3 [35] (dù khác ở chỗ TD3 bắt buộc dùng $Q_1$ để cải thiện chính sách), SAC sẽ sử dụng giá trị nhỏ hơn $\min_{k=1,2} Q_k$ trong số 2 loại $Q_{1,2}$ để ngăn chặn tình trạng đánh giá quá mức.

4-4-3 Ví dụ Cải tiến của SAC

Như đã trình bày, việc tự động điều chỉnh tham số nhiệt độ $\alpha$ thông qua việc cực tiểu hóa ở công thức (4.41) trong SAC sẽ mang xu hướng cố định Entropy chính sách $\mathcal{H}$ ngay tại cận dưới được chỉ định là $\mathcal{H}^*$. Đặc tính hoạt động này bản thân nó cũng đã được nhiều người biết đến, có lẽ vì vậy mà $\mathcal{H}^*$ đôi khi còn được gọi là Entropy mục tiêu. Dù kinh nghiệm cho thấy giữ nguyên như vậy cũng đủ để đạt được độ ngẫu nhiên ổn định của chính sách phục vụ tốt cho việc học, nhưng đã mất công làm thì ta nên cố gắng tối đa hóa $\mathcal{H}$ theo đúng dự định ban đầu. Làm như vậy, tác nhân sẽ có thể tích lũy được những kinh nghiệm đa dạng hơn trong quá trình học tập, giúp nó ứng phó mạnh mẽ trước các vấn đề không thể tránh khỏi khi vận hành hệ thống ở thế giới thực như thay đổi trạng thái đột ngột hay nhiễu tín hiệu. Thực tế, đã có những nghiên cứu báo cáo rằng việc tối đa hóa Entropy chính sách sẽ trực tiếp nâng cao tính mạnh mẽ (Robustness) của mô hình [41, 42]. Dựa vào đó, trong phần này tôi xin giới thiệu một cách vắn tắt phương pháp do chính tôi đề xuất [43], nhằm cải tiến kỹ thuật tự động điều chỉnh nhiệt độ của SAC.

Nguyên nhân việc cực tiểu hóa công thức (4.41) lại làm cho $\mathcal{H} \simeq \mathcal{H}^*$ như đã nói ở trên, là vì thao tác đó tương đương với phương pháp nhân tử Lagrange xử lý điều kiện ràng buộc đẳng thức. Sự tình trở nên như vậy do ta đã tự ý biến đổi ràng buộc bất đẳng thức vốn có trong dự tính ban đầu thành ràng buộc đẳng thức để giải quyết. Nếu muốn xử lý ràng buộc bất đẳng thức một cách chuẩn xác, thì chẳng hạn như ta có thể biến đổi chuẩn xác nó về ràng buộc đẳng thức rồi tiến hành các bước tương tự. Phép biến đổi này có thể thực hiện được bằng cách đưa vào một biến bù (Slack Variable/ スラック変数) $\Delta$.

Cụ thể, nếu có thể đưa vào một biến bù $\Delta$ phụ thuộc trạng thái, thì về mặt lý tưởng, ràng buộc bất đẳng thức có thể được chuyển đổi thành ràng buộc đẳng thức.

$$\mathcal{H}(\pi(\cdot | s)) \ge \mathcal{H}^* \quad (\forall s \in \mathcal{S})$$
$$\Leftrightarrow \mathcal{H}(\pi(\cdot | s)) = \mathcal{H}^* + \Delta(s) \quad (\forall s \in \mathcal{S}, \Delta \ge 0) \quad (4.42)$$

Tóm lại, phần chênh lệch tạo ra bởi ràng buộc bất đẳng thức sẽ được lấp đầy bởi $\Delta$. Xem xét cả yếu tố này, ta định nghĩa lại hàm mất mát liên quan đến $\alpha$ như sau.

$$\mathcal{L}(\alpha) = \mathbb{E}_{s \sim \mathcal{D}, a \sim \pi(a|s)} [ -\alpha \{ \ln \pi(a | s) + \mathcal{H}^* + \Delta(s) \} ] \quad (4.43)$$

Trái với trước đây khi $\alpha$ tự động điều chỉnh về $\mathcal{H} \simeq \mathcal{H}^*$, ở trường hợp này do nó được điều chỉnh về $\mathcal{H} \simeq \mathcal{H}^* + \Delta$, nên Entropy chính sách có thể lớn hơn cận dưới được ấn định đúng một lượng là $\Delta$.

Tuy nhiên, điều gây trở ngại ở đây là vấn đề tối ưu hóa $\Delta$. Nếu suy nghĩ một cách đơn giản, ta chỉ cần đặt ra bài toán tối ưu hóa thu hẹp sai số hai vế về 0 sao cho điều kiện ràng buộc đẳng thức ở công thức (4.42) được thỏa mãn là xong, nhưng nếu làm vậy, $\alpha$ sẽ hết khả năng điều chỉnh linh hoạt do luôn phải lo đáp ứng điều kiện đó. Đồng thời, nếu để $\Delta$ tăng lên vô tội vạ, hệ thống sẽ thất bại trong việc cực đại hóa lợi nhuận ban đầu. Vì vậy, tuy phần giải thích chi tiết tôi xin nhường lại cho nguyên tác [43], nhưng thông qua việc giảm thiểu hàm mất mát có tính chất Heuristic như dưới đây, hệ thống sẽ tối ưu hóa $\Delta$ linh hoạt ứng với trạng thái.

$$\mathcal{L}(\Delta) = \mathbb{E}_{s \sim \mathcal{D}, a \sim \pi} [ \mathcal{L}_\Delta(s, a; \epsilon) ] \quad (4.44)$$
$$\mathcal{L}_\Delta(s, a; \epsilon) = \begin{cases} | \ln \pi(a | s) + \mathcal{H}^* + \Delta(s) | & |e| > \epsilon \\ \alpha \Delta(s) & |e| \le \epsilon \end{cases}$$

Ở đây, $e = | \ln \pi(a | s) + \mathcal{H}^* + \Delta(s) |$ đại diện cho sai số của điều kiện đẳng thức, và $\epsilon$ là ngưỡng giá trị để chuyển đổi giữa 2 mục đích cực tiểu hóa. Trên thực tế, $\Delta$ cũng được biểu diễn bằng một bộ xấp xỉ hàm (Function Approximator/ 関数近似器) (ví dụ như Mạng nơ-ron) với $s$ làm giá trị đầu vào, và hệ thống sẽ cập nhật các tham số của nó. Thêm một thông tin bên lề, tuy cận dưới của $\Delta$ được gán bằng 0, nhưng thông thường sẽ không có cận trên cho giá trị này. Tuy nhiên, đối với SAC, nếu cân nhắc việc nó đang áp dụng phép chuyển đổi để $\pi$ tạo ra hành động bị chặn $a \in [-1, 1]$, ta sẽ nhận ra rằng bản thân cận trên của $\mathcal{H}$ cũng được đưa ra ở mức $|A| \ln 2$ (khi $\pi$ là phân phối đều (Uniform Distribution/ 一様分布)). Theo đó, nếu người dùng biết rằng cận trên của $\Delta$ cũng sẽ tuân theo và trở thành $|A| \ln 2 – \mathcal{H}^*$, thì sẽ có thêm định hướng trong việc điều chỉnh giá trị đầu ra hay thiết lập mốc cho $\mathcal{H}^*$.

Như đã trình bày ở trên, bằng việc liên tục tự học $\Delta$ và khéo léo chuyển đổi các ràng buộc bất đẳng thức đối với $\mathcal{H}$ của SAC thành ràng buộc đẳng thức, $\alpha$ cũng sẽ được điều chỉnh tự động đồng bộ theo đó, giúp hệ thống đạt được một chính sách có tính ngẫu nhiên (hỗn loạn) cao hơn, thỏa mãn $\mathcal{H} \ge \mathcal{H}^*$. Ở phiên bản SAC có khả năng tối đa hóa Entropy chính sách đúng như dự định này, người ta đã ghi nhận sự cải thiện rõ rệt về tốc độ học. Dĩ nhiên, cũng cần lưu ý rằng một chính sách quá ngẫu nhiên sẽ làm giảm sút đi hiệu suất cuối cùng trong những bài toán đòi hỏi hành động cực kỳ chuẩn xác, nhưng dù vậy thì lợi thế từ việc có được một chính sách được tối ưu hóa qua các kinh nghiệm đa dạng, đưa ra các hành động an toàn và hoạt động mạnh mẽ trước nhiễu ngoài (External Disturbance/ 外乱) là vô cùng quan trọng trong ứng dụng thực tế. Về lý thuyết, bằng cách tăng $\epsilon$ lên, ta sẽ có $\Delta \rightarrow 0$ đưa về trùng khớp với SAC ban đầu, vì vậy người dùng có thể điều chỉnh $\epsilon$ một cách hợp lý để tương thích với bản chất của từng bài toán.

Leave a Comment

Chia sẻ:

Chương 4: Sự phát triển của Phương pháp gradient chính sách (Policy Gradient Method / 方策勾配法)

Or copy link

CONTENTS