強化學習 Reinforcement Learning
-
代理人 Agent : 使用策略,根據觀測的狀態選擇動作,與環境互動
-
環境 Environment : 根據 Agent 的動作,改變狀態
-
獎勵函數 Reward Function : 根據 Agent 執行動作後的結果,給予的回饋的函數
-
策略 Policy : 由參數 決定的神經網路,輸入狀態,輸出動作的機率分佈
-
狀態 State : 環境的觀測值
-
動作 Action : 策略在狀態 下輸出的動作
-
軌跡 Trajectory : 狀態與動作的序列
- 軌跡機率 : 在策略 下產生某軌跡 的機率
- : 初始狀態的機率,環境決定
- : 策略,在狀態 下,代理人選擇動作 的機率,可透過調整 來改變
- : 狀態轉移機率,在狀態 做動作 後,狀態變成 的機率,由環境決定
- 獎勵 Reward : 獎勵函數根據單一步動作或狀態給出的獎勵
- 回報 Return : 軌跡 的總回報,各時間步的獎勵總和
- 通常會引入折扣因子 ,計算累積折扣回報
- 期望回報
- 策略在參數 下,對於所有可能軌跡的回報期望值
- 通常作為要最大化的目標函數
- 方法: 在訓練的過程中,計算策略梯度,接著做梯度上升,目標最大化期望回報
- 策略梯度 Policy Gradient
- 目標函數的梯度
- 期望回報的梯度
- 推導後可發現是透過對策略 微分來獲得
- 在 時刻的動作只能影響 之後的獎勵,因此 可以替換為 (從 開始的累積回報),能減少梯度的變異數
- 梯度上升 Gradient Ascent
- 使用計算出的梯度來更新策略參數
策略梯度推導
1. 對 微分
- 這裡只有 與 有關, 對於一固定的軌跡是常數
- 很難直接算
- 連乘積的微分展開
- 微積分乘法法則 ,結果會變成一長串原本式子的變形加總,計算非常繁瑣
- 結果包含環境的轉移機率 ,這通常是未知的
- 無法轉換為期望值
- 強化學習依賴蒙地卡羅採樣 (Monte Carlo Sampling)
- 要能採樣估算,算式必須是期望值的形式
- 原始式子 ,沒有 ,只有它的微分。 不是機率分佈(它可能有負值,總和也不為 1),所以無法透過採樣來直接估算這一項
2. 使用 Log-Derivative Trick
Log-Derivative Identity: 推導:
- 將梯度的值轉換為機率密度 對數機率的梯度,使我們能夠計算期望值的梯度
- 對於無法直接微分的隨機系統(如強化學習中的環境獎勵)是唯一的解法
- 用這個方式把 替換掉
代回原本的式子:
這條式子又變回了期望值的形式(因為出現了 )
3. 展開軌跡機率
將軌跡機率 以連乘積形式展開,取對數後微分:
環境的初始狀態機率 和轉移機率 都與 無關,所以它們的對 的微分都是 0,代回期望值公式,得到了最終的策略梯度公式:
此公式描述如何更新參數:
- : 參數更新的方向向量
- : 每個軌跡的回報,作為該方向的權重
梯度上升 Gradient Ascent
利用計算出的策略梯度 來更新神經網路參數 ,以最大化期望回報
- 若回報 (表現好):
- 梯度 正數,參數沿著梯度方向更新
- 增加該軌跡中動作出現的機率
- 若回報 (表現差):
- 梯度 負數,參數沿著梯度反方向更新
- 減少該軌跡中動作出現的機率
基線 Baseline
若所有軌跡的獎勵 都是正數(例如最低分是 +10,最高分是 +100),會發生
- 當下採樣到哪個軌跡就朝那個方向更新,所有動作都會被鼓勵,機率提升
- 梯度變異數大,訓練不穩定
引入一個基線 (通常設為平均獎勵,或由另一個網路估計的狀態價值 ),將回報減去基線
- 不在意絕對分數,而是這個動作表現得比平常好還是差,
- 若 :表現比平常好,梯度 正數,機率增加
- 若 :表現比平常差,梯度 負數,機率減少
- 不會改變梯度的期望值,但能顯著降低變異數,讓訓練更穩定
- 由於 與動作 無關,利用 Log-Derivative Trick 可證明其期望值為 0
On-Policy vs. Off-Policy
在強化學習中,這兩者的區別在於與環境互動的 Agent 和要學習(更新參數)的 Agent 是否相同
-
On-Policy (同策略)
- 互動者:
- 學習者:
- 用 去蒐集資料(Trajectory )
- 根據資料更新參數
- 參數更新後,原本蒐集的資料機率分佈就變了,不能再用
- 每次更新參數後,都必須重新與環境互動採樣
-
Off-Policy (異策略)
- 互動者: (固定或是上一輪的參數)
- 學習者:
- 蒐集一次資料後, 可以利用這批資料進行多次梯度上升更新
- 資料使用效率高
From On-Policy to Off-Policy via Importance Sampling
為了從 On-Policy 轉換到 Off-Policy
- 需要計算在策略 下的期望回報,但使用 蒐集的資料
- 使用重要性採樣,將在一個分佈下的期望值轉換為另一個分佈下的期望值
- 機率比率
- 修正兩個分佈的差異
- 環境的轉移機率 會互相消去,因此不需要環境的動力學模型,只計算策略的比率即可
- 將互動者從 換成 的目標函數
- 假設狀態分佈 差異不大,主要針對動作機率 做修正
- 若 與 分佈差異太大,雖然期望值一樣,但變異數大,導致訓練不穩定
- 優勢函數 :即前述的 ,代表在狀態 下執行動作 相較於平均表現的好壞