study

強化學習 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

  • 需要計算在策略 下的期望回報,但使用 蒐集的資料
  • 使用重要性採樣,將在一個分佈下的期望值轉換為另一個分佈下的期望值
  • 機率比率
    • 修正兩個分佈的差異
    • 環境的轉移機率 會互相消去,因此不需要環境的動力學模型,只計算策略的比率即可
  • 將互動者從 換成 的目標函數
    • 假設狀態分佈 差異不大,主要針對動作機率 做修正
    • 分佈差異太大,雖然期望值一樣,但變異數大,導致訓練不穩定
    • 優勢函數 :即前述的 ,代表在狀態 下執行動作 相較於平均表現的好壞