Soft Actor-Critic For Discrete Action Settings


鄭重聲明:原文參見標題,如有侵權,請聯系作者,將會撤銷發布!

 

ABSTRACT

  SAC是用於連續動作設置的最先進的RL算法,不適用於離散動作設置。但是,許多重要的設置都涉及離散動作,因此,在這里我們導出了適用於離散動作設置的SAC算法的替代版本。然后,我們證明了,即使沒有任何超參數調整,它在Atari套件中精選的游戲中也可以與調整后的無模型最新技術相媲美。

 

1 Introduction

  RL近年來取得了著名的進步,已成功應用於棋盤游戲[Silver et al., 2017],視頻游戲[Mnih et al., 2015]和機器人任務[OpenAI et al., 2018]。但是,RL在現實世界中的廣泛應用仍然很緩慢,這主要是因為樣本效率差被Wu et al. (2017)視為"RL中的主要關注點"。
  Haarnoja et al. (2018)提供了SAC算法,該算法有助於在連續動作設置中解決此問題。它在多個具有挑戰性的連續控制域中實現了無模型的最新樣本效率。但是,許多域涉及離散而不是連續的動作,因此在這些環境中,SAC當前不適用。本文推導了適用於離散動作域的SAC版本,然后證明了從Atari [Bellemare et al., 2013]套件選擇游戲的樣本效率方面,它與離散動作域的無模型最新技術相比具有競爭力。
  我們進行如下操作:首先,我們解釋Haarnoja et al. (2018)以及Haarnoja et al. (2019)發現的連續動作設置中的SAC,然后我們導出並解釋創建算法的離散動作版本所需的更改,最后我們在Atari套件上測試離散動作算法。

 

2 Soft Actor-Critic

  SAC [Haarnoja et al., 2018]試圖找到一種最大化最大熵目標的策略:

  為了最大化目標,作者使用軟策略迭代,這是在最大熵框架內交替進行策略評估和策略改進的方法。

  策略評估步驟涉及計算策略π的價值。為此,他們首先將軟狀態價值函數定義為:

然后他們證明,在表格形式的設置中(即狀態空間是離散的),我們可以從隨機初始化的函數Q: S x A → R開始獲得軟Q函數,並重復應用以下給出的修改后的Bellman備份運算符Tπ

其中p: S x A → S給定當前狀態和動作,給出下一狀態的分布。

  他們解釋說,在連續狀態(而不是表格形式)中,我們首先使用帶有參數θ的神經網絡來對軟Q函數Qθ(st, at)進行參數化。然后我們訓練軟Q函數以最小化軟Bellman殘差:

其中D是過去經驗的回放緩存,而是使用Q的目標網絡和從回放緩存中采樣經驗后使用(2)的蒙特卡洛估計來估計的。

  然后,策略改進步驟包括朝着將其可獲得的獎勵最大化的方向更新策略。為此,他們使用在策略評估步驟中計算出的軟Q函數來指導對策略的更改。具體來說,他們將策略更新為新的軟Q函數的指數形式。但是,由於他們也希望策略易於處理,因此將可能的策略限制在參數化的分布族中(例如高斯分布)。為了解決這個問題,在將策略更新為軟Q函數的指數之后,他們隨后使用根據Kullback-Leibler散度定義的信息投影將其投影回可接受策略的空間。因此,總體而言,策略改進步驟如下:

  他們注意到,划分函數是很難處理的,但是對於新策略而言,它不會造成梯度,因此可以忽略。

  在連續狀態設置中,他們使用帶有輸出均值和協方差的參數Φ的神經網絡對策略πΦ(at|st)進行參數化,然后將其用於定義高斯策略。然后,通過將期望的KL散度(5)乘以溫度參數α並忽略划分函數來對其進行最小化(因為它不會影響梯度),從而學習策略參數:

  這涉及對策略的輸出分布求期望,這意味着誤差不能以正常方式反向傳播。為了解決這個問題,他們使用重參數化技巧[Kingma and Welling, 2013]——而不是直接使用策略網絡的輸出來形成隨機動作分布,而是將其輸出與從球形高斯采樣的輸入噪聲向量相結合。例如,在一維情況下,我們的網絡輸出均值m和標准差s。我們可以直接對動作進行隨機采樣a ~ N(m, s),但隨后無法通過該操作反向傳播誤差。因此,我們改為執行a = m + sε,其中ε ~ N(0, 1)允許我們像往常一樣反向傳播。為了表示他們正在以這種方式重參數化策略,他們寫道:

其中εt ~ N(0, I)。新的策略目標將變為:

其中根據fΦ隱式定義了πΦ。然后他們繼續證明,在表格式環境中,如上所述的策略評估與策略改進之間的交替將收斂於最優策略。

  Haarnoja et al. (2019)還提供了一種學習溫度參數的可選方法,因此我們無需將其設置為超參數。它們提供了溫度目標值的長期推導,但是,由於細節與我們推導離散動作版本的SAC並不嚴格相關,因此在此不再贅述。然而,他們獲得的溫度參數的最終目標是相關的,並由以下公式給出:

其中是一個常數向量(等於表示目標熵的超參數)。由於期望算子的存在,他們不能直接最小化這個公式,因此他們在從回放緩存采樣經驗后,將其最小化。

  最后,在實際應用中,作者維護了兩個單獨訓練的軟Q網絡,並以其兩個輸出的最小值作為軟Q網絡的輸出。他們這樣做是因為Fujimoto, Hoof, and Meger (2018)表明,這有助於遏制狀態-價值的高估。

 

3 Soft Actor-Critic for Discrete Action Settings (SAC-Discrete)

  現在,我們得出上述SAC算法的離散動作版本。首先要注意的是,實現以上目標所涉及的所有關鍵步驟都可以是連續/離散動作。所發生的所有變化是現在輸出概率(而不是密度)。因此,三個目標函數JQ(θ) (4),Jπ(Φ) (6)和J(α) (9)仍然成立。但是,我們必須對優化這些目標函數的過程進行五項重要更改:

  • 現在,使軟Q函數輸出每個可能動作的Q值而不是簡單地作為輸入提供的動作更為有效,即我們的Q函數從Q: S x A → R到Q: S → R|A|。在我們可以采取無限多種可能的動作之前,這是不可能的。
  • 現在我們的策略不再需要輸出動作分布的均值和協方差,而是可以直接輸出我們的動作分布。因此該策略從π: S → R2|A|改變到π: S → [0, 1]|A|,其中我們在策略的最后一層應用softmax函數,以確保其輸出有效的概率分布。
  • 之前,為了使軟Q函數成本JQ(θ) (4)最小,我們必須從回放緩存插入采樣動作,以形成軟狀態-價值函數的蒙特卡洛估計(2)。這是因為估計(2)中的軟狀態-價值函數需要對動作分布求期望。但是,現在,由於我們的動作集是離散的,因此我們可以完全恢復動作分布,因此無需形成蒙特卡洛估計,而是可以直接計算期望值。這種變化應減少我們對目標JQ(θ) (4)的估計中涉及的方差。這意味着我們將軟狀態-價值計算公式從(2)更改為:

  • 同樣,我們可以對溫度損失的計算進行相同的更改,以減少該估計的方差。溫度目標從(9)變為:

  • 以前,為使Jπ(Φ) (6)最小,我們必須使用重參數化技巧使梯度通過期望算子。但是,現在我們的策略輸出准確的動作分布,我們可以直接計算期望值。因此,無需重參數化技巧,策略的新目標從(8)變為:

  結合所有這些更改,算法1給出了具有離散動作的SAC算法(SAC-Discrete)。

 

4 Results

  為了測試SAC-Discrete的有效性,我們在20個Atari游戲中對5個隨機種子中的每一個運行100000步,並將其結果與Rainbow進行了比較,Rainbow在樣本效率方面是一種最新的無模型算法。這些游戲差異很大,因此被選為先驗,因此我們認為這20款游戲的結果可以很好地估計整個Atari套件中49個游戲的相對性能。我們選擇將算法運行100000步,因為我們對樣本效率最感興趣,並且Kaiser et al. (2019)證明Rainbow可以在100000步之內在Atari游戲上取得重大進展。
  對於SAC離散動作,我們沒有進行超參數調整,而是使用了Haarnoja et al. (2019)和Kaiser et al. (2019)的混合超參數。超參數可在附錄B中找到。我們比較的Rainbow結果來自Kaiser et al. (2019),並且其解釋是大量超參數調整的結果。1因此,我們正在將調整后的Rainbow算法與未調整的SAC算法進行比較,因此,如果我們花一些時間調整超參數,很有可能可以改進SAC的相對性能。
  我們發現SAC-Discrete在20個游戲中有10個得分高於Rainbow,平均表現為-1%,最高表現為+ 4330%,最低為-99%——圖1總結了結果,附錄A在表中提供了這些結果。總體而言,因此,在采樣效率方面,我們認為SAC-Discrete算法與Atari套件中無模型的最新技術具有相當的競爭力。

 

1 對於兩款游戲(Enduro和SpaceInvaders),Kaiser et al. (2019)沒有為Rainbow提供任何結果,因此對於這兩個游戲,我們只能自行運行Rainbow算法。我們使用Dopamine[Castro et al., 2018]代碼庫(與Kaiser et al. (2019)一樣)以及與Kaiser et al. (2019)使用相同的(調整后的)超參數進行此操作。我們在合作筆記中共享用於執行此操作的代碼:https://colab.research.google.com/drive/11prfRfM5qrMsfUXV6cGY868HtwDphxaF

 

 

5 Conclusion

  原始的Soft Actor-Critic算法在許多連續動作設置上都獲得了最新的結果,但不適用於離散動作設置。 為了更正此問題,我們推導了一種適用於離散動作設置的算法SACDiscrete版本,並顯示出即使沒有任何超參數調整,它也可以與Atari套件上的無模型最新技術相媲美。 我們在項目的GitHub存儲庫中提供了該算法的Python實現。2

 

2 https://github.com/p-christ/Deep-Reinforcement-Learning-Algorithms-with-PyTorch

 

Appendix

A SAC and Rainbow Atari Results

 

B SAC-Discrete Hyperparameters


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM