跟上一篇文章一樣,都是看到陌生的演算法後,去搜尋資料記錄成文章。
在強化式學習中,策略(Policy)指的是代理人根據目前的狀態決定下一個動作的方針,具體來說就是在某個狀態下採取某個動作的機率。Policy Gradient的目的是找到一個最優策略,使得整個任務的回報值最大化。
策略通常表示為一個帶有參數的函數 π𝜃(𝑠,𝑎),其中 𝑠 是當前狀態,𝑎 是行動,𝜃 是策略的參數,Policy Gradient算法通過梯度上升法調整這些參數 𝜃,以最大化期望回報值。
以遊戲為例:首先代理人到一個遊戲畫面(狀態) 𝑠1,決定採取第一個動作(例如左移) 𝑎1,之後得到回饋值 𝑟1 = 0;再來,代理人看到下一個畫面 𝑠2,決定開火 𝑎2,得到回饋值 𝑟2 = 5,...,一直到遊戲結束。一場遊戲稱為 episode,整個遊戲過程的回報值以 𝑅 來表示,即 𝑅 = ∑𝑇𝑡=1 𝑟𝑡,目的就是得到最大的 𝑅。而整個串起來,軌跡 Trajectory,就是:𝜏 = {𝑠1,𝑎1,𝑠2,𝑎2,...,𝑠𝑇,𝑎𝑇}。
因此可以假設得到上面這個 Trajectory 的機率為:(得到 𝑠1 狀態的機率) * (在 𝑠1 狀態下採取 𝑎1 這個動作的機率) * (在 𝑠1 狀態並且採取 𝑎1 的動作下與環境互動能得到 𝑠2 的機率)...,一直乘下去直到這場遊戲結束。而(得到 𝑠1 狀態的機率)是無法控制的,可以控制的是(在 𝑠1 狀態下採取 𝑎1 這個動作的機率),這取決於代理人的參數 𝜃,我們就是要調整參數 𝜃 讓 𝑅 的值愈大愈好。
所以窮舉所有可能出現的 Trajectory,並且把此 Trajectory 的 𝑅 與出現此 Trajectory 的機率相乘做加總,得到採取這組 𝜃 參數所得到的期望回報值。得到期望回報值後,就可以透過梯度上升法最大化目標函數,更新參數 𝜃 進而更新模型。(數學式子在此不細講,詳見參考文章)
繼續趕路,繼續留腳印(XD),雙十國慶假日愉快!