深度強化學習課程文件

優勢Actor-Critic (A2C)

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

優勢Actor-Critic (A2C)

使用 Actor-Critic 方法減少方差

減少 Reinforce 演算法方差並更快更好地訓練代理的解決方案是結合使用基於策略和基於價值的方法:Actor-Critic 方法

要理解 Actor-Critic,想象你在玩一個影片遊戲。你可以和朋友一起玩,他會給你一些反饋。你是 Actor,你的朋友是 Critic。

Actor Critic

一開始你不知道怎麼玩,所以你會隨機嘗試一些動作。Critic 會觀察你的動作並提供反饋

從這個反饋中學習,你將更新你的策略,並能更好地玩這個遊戲。

另一方面,你的朋友(Critic)也會更新他們提供反饋的方式,以便下次做得更好。

這就是 Actor-Critic 背後的思想。我們學習兩種函式近似

  • 一種策略,它控制著我們代理的行動方式πθ(s) \pi_{\theta}(s)

  • 一個價值函式,透過衡量所採取行動的優劣來輔助策略更新q^w(s,a) \hat{q}_{w}(s,a)

Actor-Critic 過程

現在我們已經瞭解了 Actor-Critic 的大致情況,接下來我們深入瞭解 Actor 和 Critic 在訓練過程中如何共同改進。

正如我們所見,在 Actor-Critic 方法中,有兩種函式近似(兩個神經網路)

  • Actor,一個由 theta 引數化的策略函式πθ(s) \pi_{\theta}(s)
  • Critic,一個由 w 引數化的價值函式q^w(s,a) \hat{q}_{w}(s,a)

讓我們看看訓練過程,瞭解 Actor 和 Critic 如何最佳化

  • 在每個時間步 t,我們得到當前狀態St S_t從環境中獲取,並將其作為輸入傳遞給我們的 Actor 和 Critic

  • 我們的策略接收狀態並輸出一個動作At A_t .

Step 1 Actor Critic
  • Critic 也將該動作作為輸入,並使用St S_tAt A_t 計算在該狀態下執行該動作的價值:Q 值
Step 2 Actor Critic
  • 在環境中執行的動作At A_t會輸出一個新狀態St+1 S_{t+1}和一個獎勵Rt+1 R_{t+1} .
Step 3 Actor Critic
  • Actor 使用 Q 值更新其策略引數。
Step 4 Actor Critic
  • 由於其更新的引數,Actor 會在At+1 A_{t+1} 給定新狀態St+1 S_{t+1} .

  • 生成下一個要執行的動作。

Step 5 Actor Critic

在 Actor-Critic (A2C) 中新增優勢

我們可以透過使用優勢函式作為 Critic,而不是動作價值函式來進一步穩定學習。

其思想是優勢函式計算一個動作相對於在某個狀態下其他可能動作的相對優勢:在某個狀態下采取該動作比該狀態的平均價值好多少。它透過從狀態-動作對中減去該狀態的平均價值來計算。

Advantage Function

換句話說,這個函式計算的是如果在該狀態下采取這個動作,我們比在該狀態下獲得的平均獎勵多獲得的額外獎勵

額外獎勵是指超出該狀態預期價值的部分。

  • 如果 A(s,a) > 0:我們的梯度朝著該方向推進
  • 如果 A(s,a) < 0(我們的動作表現比該狀態的平均價值差),我們的梯度則朝相反方向推進

實現這個優勢函式的問題在於它需要兩個價值函式——Q(s,a) Q(s,a)V(s) V(s)。幸運的是,我們可以使用 TD 誤差作為優勢函式的良好估計器。

Advantage Function < > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.