Youtube


Proximal Policy Optimization (PPO) 是 OpenAI 預設的 RL Algorithm

On-Policy -> Off-Policy

之前提到的 Policy Gradient 是 On-Policy 的做法,那為何需要 Off-Policy 呢?

  • On-Policy 的做法每次更新 就要重新 sample 一次資料,因此訓練的時間大量消耗在 sampling 上,非常耗時。
  • Off-Policy 希望可以用 來蒐集 data,用這些 data 來訓練 ,就可以用相同的 data 來 update 很多次

以下先介紹 importance sampling

Importance Sampling

從 p 這個 distribution 得到 x,要如何近似 f(x) 的期望值?

    • 這個作法是我們有辦法從 p 這個 distribution 裡 sample 出 x 時的作法,實際情況我們無法直接 sample,只能從 q 這個 distribution 做 sampling,原因稍後會說明

從 q 這個 distribution 去 sample x 的作法

  • 此時理論上 q 可以是任何 distribution,唯一限制是 q(x) 機率為0 時,p(x) 機率必定為 0 即可使用 importance sampling 的技巧。

然而實際上 p 和 q 的 distribution 不能差太多,為什麼?

  • 雖然 從 p 和 q sample 出來的方式 期望值會相同,但是 VAR 會不同 (不太懂 VAR 不同又怎樣)
  • 這段沒很懂,之後再重看

以上圖為例:

  • 若 p 和 q 差很多,sampling 的時候,可能只 sample 到 q(x) 機率很大的 x (然而 p(x) 很小),而導致認為 會是正的
  • 解決的方法:
    1. sample 夠多的點,才能真正近似
    2. 讓 p 和 q 不要差太多

On-policy -> Off-policy (with Importance Sampling)

做示範(和環境互動),讓 學習

  • 根據 importance sampling,

老師表示:為了方便說明,在數學的部分做了大量簡化,這裡的講法並不嚴謹

  • 本來應該使用 ,這裡使用 做近似
  • 這裡也假設 是幾乎相同的
  • 最終得到 以 做 demonstration,來更新 的 gradient

Review: 從 On-policy 改成 Off-policy 是使用 importance sampling 的技巧,因此若 差太多的話這招實務上就不奏效,那該如何避免它們差太多?

PPO / TRPO

  • PPO 的前身是 TRPO,效果差不多,PPO較易實作
  • 我覺得這個方程式的減號應該是加號? 要複習一下 KL divergence 了
    • 量測的分布其實是指

PPO algorithm

  • 和 policy gradient 不同的地方是,本來每個 iteration 只能更新一次 ,現在可以更新很多次

PPO2

  • 這個方法非常好 implement

簡寫

  • 橫軸是 ,縱軸是 (決定A的係數的?)輸出
  • 綠線: (identity function)
  • 藍線:
    • 是一個可以調整的 hyperparameter (設0.1、0.2之類)

當 A大於0 時,取 min 後的輸出會是左圖的紅線;A小於0 時,取 min 後的輸出會是右圖的紅線,而這也很直觀,因為我們不希望 差太多,因此在 A大於0 時,雖然希望他調高 的機率,但又不希望他調高太多;反之 A小於0 時亦然。

results matching ""

    No results matching ""