
Actor-Critic從名字上看包括兩部分,參與者(Actor)和評價者(Critic),其中Actor使用策略函式,負責生成動作(Action)并和環境互動,而Critic使用我們之前講到了的價值函式,負責評估Actor的表現,并指導Actor下一階段的動作,
基于策略和基于價值的RL演算法
在基于策略的RL中,最優策略是通過直接操縱策略來計算的,而基于價值的函式通過找到最優值函式來隱式地找到最優策略, 基于策略的RL在高維和隨機的連續動作空間以及學習隨機策略方面非常有效, 同時,基于價值的RL在樣品效率和穩定性方面表現出色,
策略梯度RL的主要挑戰是高梯度方差, 減少梯度估計方差的標準方法是使用基線函式b(st)[4], 關于添加基線會引起很多關注,這會在梯度估計中引起偏差, 有證據表明,基線不能為梯度估算提供基礎,
證明基線是無偏見的
REINFORCE演算法的策略梯度運算式如下所示:

REINFORCE的策略梯度表達的期望形式
我們可以寫出軌跡的獎勵R(τ)如下:

然后添加基線函式,如下所示修改策略梯度運算式:

插入基線功能
我們可以將獎勵和基準期限稱為優勢函式, 可以表示如下:

優勢功能
在上面的等式中要注意的重要一點是基線b是s_t而不是s_t` [4]的函式
我們可以重新排列運算式,如下所示:

上式是等效的E(X-Y), 由于期望的線性,因此我們可以將E(X-Y)重新排列為E(X)-E(Y)[3], 因此,對上面的等式進行了如下修改:

如果帶有基線的第二項為零,則可以證明添加基線函式b在梯度估計中未添加偏差, 那意味著

我們可以將期望概括如下:

第二項的證明為零,如下所示:

上面的推論證明,添加基線函式對梯度估計沒有偏差
Actor-critic
簡單來說,Actor-Critic是策略梯度的時間差異(TD)版本[3],它有兩個網路:參與者和評論家,參與者決定應該采取哪種行動,評論家告知參與者該行動有多好,應該如何調整,參與者的學習基于策略梯度方法,相比之下,評論家通過計算價值函式來評估參與者的行動,
這種型別的架構是在生成對抗網路(GAN)中,鑒別器和生成器都參與游戲[2],生成器生成偽影像,鑒別器使用其真實影像的表示來評估所生成的偽影像的質量[2],隨著時間的流逝,生成器可以創建偽造的影像,這些偽造的影像對于鑒別器是無法區分的[2],同樣,Actor和Critic都參與了游戲,但是與GAN [2]不同,他們都在不斷改進,
Actor-critic類似于帶有基準的稱為REINFORCE的策略梯度演算法,強化是MONTE-CARLO的學習,它表示總收益是從整個軌跡中采樣的,但是在參與者評論家中,我們使用引導程式,因此,優勢功能的主要變化,

策略梯度總回報中的原始優勢函式更改為自舉, 資料來源:[3]
最后,b(st)更改為當前狀態的值函式, 可以表示如下:

我們可以為actor-critic撰寫新的修改后的優勢函式:

或者,將優勢函式稱為TD錯誤,如Actor-Critic框架所示, 如上所述,參與者的學習是基于策略梯度的, 參與者的策略梯度運算式如下所示:

參與者的政策梯度表達
Actor-Critic演算法的偽代碼[6]
1、使用來自參與者網路的策略πθ對{s_t,a_t}進行采樣,
2、評估優勢函式A_t, 可以將其稱為TD誤差δt, 在Actor-critic演算法中,優勢函式是由評論者網路產生的,

3、使用以下運算式評估梯度:

4、更新策略引數θ

5、更新基于評價者的基于價值的RL(Q學習)的權重, δt等于優勢函式,

6、重復1到5,直到找到最佳策略πθ,
參考
- https://inst.eecs.berkeley.edu/~cs188/sp20/assets/files/SuttonBartoIPRLBook2ndEd.pdf
- https://theaisummer.com/Actor_critics/
- http://machinelearningmechanic.com/deep_learning/reinforcement_learning/2019/12/06/a_mathematical_introduction_to_policy_gradient.html
- https://danieltakeshi.github.io/2017/03/28/going-deeper-into-reinforcement-learning-fundamentals-of-policy-gradients/
- https://en.wikipedia.org/wiki/Expected_value
- http://rail.eecs.berkeley.edu/deeprlcourse-fa17/f17docs/lecture_5_actor_critic_pdf
作者:Dhanoop Karunakaran
deephub翻譯組
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/158409.html
標籤:java
上一篇:【專案實戰】基于Yolov5 火災濃煙檢測與天池免費算力的教學篇
下一篇:基于ODBTC編碼的水印演算法
