強化學習-5 策略梯度、Actor-Critic 算法

文章目錄

  • 1 基于價值( value-based \text{value-based} value-based )算法的缺點
  • 2 策略梯度算法
    • 2.1 解釋
      • 2.1.1 分母和分子相消
      • 2.1.2 對數函數的導數
      • 2.1.3 組合公式
      • 2.1.4 總結
  • 3 REINFORCE算法
  • 4 策略梯度推導進階
    • 4.1 平穩分布
    • 4.2 基于平穩分布的策略梯度推導
  • 5 策略函數的設計
    • 5.1 離散動作
    • 5.2 連續動作
  • 6 附
    • 6.1 式9.12各部分解釋
      • 6.1.1 等式解釋
        • 6.1.1.1 左側等式
        • 6.1.1.2 右側等式
      • 6.1.2 直觀理解
      • 6.1.3 應用
    • 6.2 式9.13解釋
      • 6.2.1 各部分解釋
      • 6.2.2 逐步推導
      • 6.2.3 直觀理解
      • 6.2.4 應用
  • 7 策略梯度算法的缺點
  • 8 Q Actor - Critic算法
  • 9 A2C 與 A3C 算法
  • 10 廣義優勢估計


基于策略梯度( policy-based \text{policy-based} policy-based )的算法。這類算法直接對策略本身進行近似優化。在這種情況下,我們可以將策略描述成一個帶有參數 θ \theta θ的連續函數,該函數將某個狀態作為輸入,輸出的不再是某個確定性( deterministic \text{deterministic} deterministic )的離散動作,而是對應的動作概率分布,通常用 π θ ( a ∣ s ) \pi_{\theta}(a|s) πθ?(as) 表示,稱作隨機性( stochastic \text{stochastic} stochastic )策略。

1 基于價值( value-based \text{value-based} value-based )算法的缺點

基于價值(DQN)蒙特卡洛策略梯度Actor-Critic
優點效果不錯,有較好的收斂性適配連續動作空間;適配隨機策略兼容兩者的優點
缺點無法表示連續動作采樣效率低
高方差。通過采樣的方式估計價值函數,導致方差高,影響收斂性。高方差。估計梯度時蒙特卡洛算法引起的。
探索與利用的平衡問題。確定性策略和隨機策略的平衡。收斂性差。容易陷入局部最優解。
難以處理高維離散動作空間

2 策略梯度算法

策略梯度算法的優化目標與基于價值的算法是一樣的,都是累積的價值期望 V ? ( s ) V^{*}(s) V?(s) 。通常用 π θ ( a ∣ s ) \pi_{\theta}(a|s) πθ?(as) 來表示策略,即在狀態 s s s 下采取動作 a a a 的概率分布 p ( a ∣ s ) p(a|s) p(as),其中 θ \theta θ 是我們要去求出來的模型參數。

J ( π θ ) = E τ ~ π θ [ R ( τ ) ] = P θ ( τ 1 ) R ( τ 1 ) + P θ ( τ 2 ) R ( τ 2 ) + ? = ∫ τ P θ ( τ ) R ( τ ) = E τ ~ P θ ( τ ) [ ∑ t r ( s t , a t ) ] (9.3) \tag{9.3} \begin{aligned} J(\pi_{\theta}) = \underset{\tau \sim \pi_\theta}{E}[R(\tau)] & = P_{\theta}(\tau_{1})R(\tau_{1})+P_{\theta}(\tau_{2})R(\tau_{2})+\cdots \\ &=\int_\tau P_{\theta}(\tau) R(\tau) \\ &=E_{\tau \sim P_\theta(\tau)}[\sum_t r(s_t, a_t)] \end{aligned} J(πθ?)=τπθ?E?[R(τ)]?=Pθ?(τ1?)R(τ1?)+Pθ?(τ2?)R(τ2?)+?=τ?Pθ?(τ)R(τ)=EτPθ?(τ)?[t?r(st?,at?)]?(9.3)
我們的目標就是最大化策略的價值期望 J ( π θ ) J(\pi_{\theta}) J(πθ?),因此 J ( π θ ) J(\pi_{\theta}) J(πθ?) 又稱作目標函數。有了目標函數之后,只要能求出梯度,就可以使用萬能的梯度上升或下降的方法來求解對應的最優參數 θ ? \theta^* θ?了,這里由于目標是最大化目標函數,因此我們使用梯度上升的方法。那么問題來了,我們發現策略梯度的目標函數過于復雜,這種情況下要怎么求梯度呢?這就是策略梯度算法的核心問題。

這個公式涉及到概率密度函數的梯度和對數梯度的轉換,廣泛應用于強化學習和其他概率模型中。公式如下:

? θ P θ ( τ ) = P θ ( τ ) ? θ P θ ( τ ) P θ ( τ ) = P θ ( τ ) ? θ log ? P θ ( τ ) \nabla_\theta P_\theta(\tau) = P_\theta(\tau) \frac{\nabla_\theta P_\theta(\tau)}{P_\theta(\tau)} = P_\theta(\tau) \nabla_\theta \log P_\theta(\tau) ?θ?Pθ?(τ)=Pθ?(τ)Pθ?(τ)?θ?Pθ?(τ)?=Pθ?(τ)?θ?logPθ?(τ)

2.1 解釋

為了理解為什么這些表達式相等,我們需要理解以下幾個步驟:

2.1.1 分母和分子相消

首先,我們來看中間的部分:

? θ P θ ( τ ) P θ ( τ ) \frac{\nabla_\theta P_\theta(\tau)}{P_\theta(\tau)} Pθ?(τ)?θ?Pθ?(τ)?

這是一個簡單的比值,其中分子是 P θ ( τ ) P_\theta(\tau) Pθ?(τ) 對參數 θ \theta θ 的梯度,而分母是 P θ ( τ ) P_\theta(\tau) Pθ?(τ) 自身。這相當于用 P θ ( τ ) P_\theta(\tau) Pθ?(τ) 歸一化其梯度。

2.1.2 對數函數的導數

接下來,我們引入對數函數。對數函數有一個重要的性質:

? θ log ? P θ ( τ ) = ? θ P θ ( τ ) P θ ( τ ) \nabla_\theta \log P_\theta(\tau) = \frac{\nabla_\theta P_\theta(\tau)}{P_\theta(\tau)} ?θ?logPθ?(τ)=Pθ?(τ)?θ?Pθ?(τ)?

這個性質來源于對數的導數公式:

如果 y = log ? f ( x ) y = \log f(x) y=logf(x),那么 ? x y = ? x f ( x ) f ( x ) \nabla_x y = \frac{\nabla_x f(x)}{f(x)} ?x?y=f(x)?x?f(x)?

應用在這里,設 f ( θ ) = P θ ( τ ) f(\theta) = P_\theta(\tau) f(θ)=Pθ?(τ),則:

? θ log ? P θ ( τ ) = ? θ P θ ( τ ) P θ ( τ ) \nabla_\theta \log P_\theta(\tau) = \frac{\nabla_\theta P_\theta(\tau)}{P_\theta(\tau)} ?θ?logPθ?(τ)=Pθ?(τ)?θ?Pθ?(τ)?

2.1.3 組合公式

現在我們將這個性質帶回到原公式中:

P θ ( τ ) ? θ P θ ( τ ) P θ ( τ ) = P θ ( τ ) ? θ log ? P θ ( τ ) P_\theta(\tau) \frac{\nabla_\theta P_\theta(\tau)}{P_\theta(\tau)} = P_\theta(\tau) \nabla_\theta \log P_\theta(\tau) Pθ?(τ)Pθ?(τ)?θ?Pθ?(τ)?=Pθ?(τ)?θ?logPθ?(τ)

我們看到分母和分子 P θ ( τ ) P_\theta(\tau) Pθ?(τ) 互相抵消,剩下的就是對數梯度:

? θ P θ ( τ ) = P θ ( τ ) ? θ log ? P θ ( τ ) \nabla_\theta P_\theta(\tau) = P_\theta(\tau) \nabla_\theta \log P_\theta(\tau) ?θ?Pθ?(τ)=Pθ?(τ)?θ?logPθ?(τ)

2.1.4 總結

這個等式的關鍵在于對數函數的導數性質,即:

? θ log ? P θ ( τ ) = ? θ P θ ( τ ) P θ ( τ ) \nabla_\theta \log P_\theta(\tau) = \frac{\nabla_\theta P_\theta(\tau)}{P_\theta(\tau)} ?θ?logPθ?(τ)=Pθ?(τ)?θ?Pθ?(τ)?

這使得我們能夠將梯度從概率密度函數的形式轉換為對數概率密度函數的形式,從而簡化計算并利用對數的性質進行分析和優化。這種轉換在很多概率模型和強化學習算法中起到重要作用,例如策略梯度方法。

3 REINFORCE算法

利用蒙特卡洛的方法來近似求解了,即我們可以不必采樣所有的軌跡,而是采樣一部分且數量足夠多的軌跡,然后利用這些軌跡的平均值來近似求解目標函數的梯度。這種方法就是蒙特卡洛策略梯度算法,也稱作 REINFORCE \text{REINFORCE} REINFORCE 算法。

4 策略梯度推導進階

問題:
解決方案:
更泛化更通用的策略梯度公式。

4.1 平穩分布

概念
本質:熵增原理的一種體現

4.2 基于平穩分布的策略梯度推導

回顧前面小節中計算軌跡概率的公式 P θ ( τ ) P_{\theta}(\tau) Pθ?(τ),可以發現如果軌跡 τ \tau τ的初始狀態是 s 0 s_0 s0?并且終止狀態是 s s s的話,軌跡概率公式 P θ ( τ ) P_{\theta}(\tau) Pθ?(τ)跟平穩分布的 d π ( s ) d^\pi(s) dπ(s)是等效的,當然前提是該條軌跡必須“無限長”,即 t → ∞ t \rightarrow \infty t。但是平穩分布與軌跡概率公式相比,它的好處就是只涉及一個定量即初始狀態 s 0 s_0 s0?和一個變量 s s s。對于每個狀態 s s s,我們用 V π ( s ) V^{\pi}(s) Vπ(s)表示策略 π \pi π下對應的價值。讀者們現在可以往前回顧,為什么筆者說策略梯度算法跟基于價值函數的算法都是在計算累積狀態的價值期望了,此時策略梯度算法目標函數就可以表示為式 ( 9.12 ) \text(9.12) (9.12)
J ( θ ) = ∑ s ∈ S d π ( s ) V π ( s ) = ∑ s ∈ S d π ( s ) ∑ a ∈ A π θ ( a ∣ s ) Q π ( s , a ) (9.12) \tag{9.12} J(\theta)=\sum_{s \in \mathcal{S}} d^\pi(s) V^\pi(s)=\sum_{s \in \mathcal{S}} d^\pi(s) \sum_{a \in \mathcal{A}} \pi_\theta(a \mid s) Q^\pi(s, a) J(θ)=sS?dπ(s)Vπ(s)=sS?dπ(s)aA?πθ?(as)Qπ(s,a)(9.12)

這個公式描述了強化學習中策略的目標函數 J ( θ ) J(\theta) J(θ),其作用是評估給定策略 π \pi π 的期望回報。我們通過求和得到在所有狀態下的期望回報,并進一步通過策略 π \pi π 在每個狀態下的動作來分解回報。以下是對該公式的詳細解釋:

同樣可以利用對數微分技巧求得對應的梯度,如式 ( 9.13 ) \text(9.13) (9.13) 所示。

? θ J ( θ ) ∝ ∑ s ∈ S d π ( s ) ∑ a ∈ A Q π ( s , a ) ? θ π θ ( a ∣ s ) = ∑ s ∈ S d π ( s ) ∑ a ∈ A π θ ( a ∣ s ) Q π ( s , a ) ? θ π θ ( a ∣ s ) π θ ( a ∣ s ) = E π θ [ Q π ( s , a ) ? θ log ? π θ ( a ∣ s ) ] (9.13) \tag{9.13} \begin{aligned} \nabla_\theta J(\theta) & \propto \sum_{s \in \mathcal{S}} d^\pi(s) \sum_{a \in \mathcal{A}} Q^\pi(s, a) \nabla_\theta \pi_\theta(a \mid s) \\ &=\sum_{s \in \mathcal{S}} d^\pi(s) \sum_{a \in \mathcal{A}} \pi_\theta(a \mid s) Q^\pi(s, a) \frac{\nabla_\theta \pi_\theta(a \mid s)}{\pi_\theta(a \mid s)} \\ &=\mathbb{E}_{\pi_{\theta}}\left[Q^\pi(s, a) \nabla_\theta \log \pi_\theta(a \mid s)\right] \end{aligned} ?θ?J(θ)?sS?dπ(s)aA?Qπ(s,a)?θ?πθ?(as)=sS?dπ(s)aA?πθ?(as)Qπ(s,a)πθ?(as)?θ?πθ?(as)?=Eπθ??[Qπ(s,a)?θ?logπθ?(as)]?(9.13)

這個公式描述了如何計算策略梯度,即策略參數 θ \theta θ 的目標函數 J ( θ ) J(\theta) J(θ) 的梯度。這個過程在策略梯度方法中非常重要,用于更新策略參數以最大化期望回報。我們將結合上個問題的公式進行解釋。

到這里我們會發現, REINFORCE \text{REINFORCE} REINFORCE 算法只是利用蒙特卡洛的方式將公式中的 Q π ( s , a ) Q^\pi(s, a) Qπ(s,a) 替換成了 G ( τ ) G(\tau) G(τ)。實際上讀者們在學習了結合深度學習的 DQN 算法之后, Q π ( s , a ) Q^\pi(s, a) Qπ(s,a) 也是可以用神經網絡模型來近似的,只是略有不同的是這里的 Q π ( s , a ) Q^\pi(s, a) Qπ(s,a) 相比于 DQN \text{DQN} DQN 算法中的 Q Q Q 函數多了一個策略 π \pi π 作為輸入,并且輸出的不再是所有動作對應的 Q Q Q 值,而是針對當前狀態和動作 ( s t , a t ) (s_t,a_t) (st?,at?) 的單個值,因此更多的像是在評判策略的價值而不是狀態的價值,而用來近似 Q π ( s , a ) Q^\pi(s, a) Qπ(s,a) 的模型我們一般稱作 Critic \text{Critic} Critic
只包含策略梯度的一部分 ? θ log ? π θ ( a ∣ s ) \nabla_\theta \log \pi_\theta(a \mid s) ?θ?logπθ?(as) 的模型我們一般稱作 Actor \text{Actor} Actor 。這樣一來已經不是單純的策略梯度算法了,而是同時結合了基于價值和策略梯度的算法,我們一般把這類算法稱之為 Actor-Critic \text{Actor-Critic} Actor-Critic 算法。

5 策略函數的設計

5.1 離散動作

5.2 連續動作

6 附

6.1 式9.12各部分解釋

J ( θ ) = ∑ s ∈ S d π ( s ) V π ( s ) = ∑ s ∈ S d π ( s ) ∑ a ∈ A π θ ( a ∣ s ) Q π ( s , a ) (9.12) \tag{9.12} J(\theta)=\sum_{s \in \mathcal{S}} d^\pi(s) V^\pi(s)=\sum_{s \in \mathcal{S}} d^\pi(s) \sum_{a \in \mathcal{A}} \pi_\theta(a \mid s) Q^\pi(s, a) J(θ)=sS?dπ(s)Vπ(s)=sS?dπ(s)aA?πθ?(as)Qπ(s,a)(9.12)

  1. 目標函數 J ( θ ) J(\theta) J(θ)

    • J ( θ ) J(\theta) J(θ) 是策略 π θ \pi_\theta πθ? 的性能度量,表示在策略參數 θ \theta θ 下的期望回報。
  2. 狀態分布 d π ( s ) d^\pi(s) dπ(s)

    • d π ( s ) d^\pi(s) dπ(s) 是在策略 π \pi π 下狀態 s s s 的穩態分布。它表示在無限時間步內,系統處于狀態 s s s 的概率。
    • 通常通過馬爾可夫鏈的狀態轉移概率計算得到。
  3. 狀態值函數 V π ( s ) V^\pi(s) Vπ(s)

    • V π ( s ) V^\pi(s) Vπ(s) 是在策略 π \pi π 下,從狀態 s s s 開始的期望回報。
    • 定義為從狀態 s s s 開始,跟隨策略 π \pi π 所能獲得的期望回報。
  4. 動作值函數 Q π ( s , a ) Q^\pi(s, a) Qπ(s,a)

    • Q π ( s , a ) Q^\pi(s, a) Qπ(s,a) 是在策略 π \pi π 下,從狀態 s s s 采取動作 a a a 開始的期望回報。
    • 定義為在狀態 s s s 采取動作 a a a,然后按照策略 π \pi π 繼續行動所能獲得的期望回報。
  5. 策略 π θ ( a ∣ s ) \pi_\theta(a \mid s) πθ?(as)

    • π θ ( a ∣ s ) \pi_\theta(a \mid s) πθ?(as) 是策略 π \pi π 在狀態 s s s 選擇動作 a a a 的概率。
    • 它依賴于策略的參數 θ \theta θ

6.1.1 等式解釋

6.1.1.1 左側等式

J ( θ ) = ∑ s ∈ S d π ( s ) V π ( s ) J(\theta) = \sum_{s \in S} d^\pi(s) V^\pi(s) J(θ)=sS?dπ(s)Vπ(s)

  • 表示在所有狀態 s s s 的穩態分布 d π ( s ) d^\pi(s) dπ(s) 下,狀態值函數 V π ( s ) V^\pi(s) Vπ(s) 的加權和。
  • 直觀上,這表示在策略 π \pi π 下系統處于不同狀態時的期望回報的總和。
6.1.1.2 右側等式

J ( θ ) = ∑ s ∈ S d π ( s ) ∑ a ∈ A π θ ( a ∣ s ) Q π ( s , a ) J(\theta) = \sum_{s \in S} d^\pi(s) \sum_{a \in A} \pi_\theta(a \mid s) Q^\pi(s, a) J(θ)=sS?dπ(s)aA?πθ?(as)Qπ(s,a)

  • 將狀態值函數 V π ( s ) V^\pi(s) Vπ(s) 展開為動作值函數 Q π ( s , a ) Q^\pi(s, a) Qπ(s,a) 和策略 π θ ( a ∣ s ) \pi_\theta(a \mid s) πθ?(as) 的加權和。
  • 這一步利用了以下關系:
    V π ( s ) = ∑ a ∈ A π ( a ∣ s ) Q π ( s , a ) V^\pi(s) = \sum_{a \in A} \pi(a \mid s) Q^\pi(s, a) Vπ(s)=aA?π(as)Qπ(s,a)
    即在狀態 s s s 下,狀態值函數等于在該狀態下所有可能動作的值函數的期望。

6.1.2 直觀理解

  • 第一部分:我們在狀態 s s s 的穩態分布 d π ( s ) d^\pi(s) dπ(s) 下,計算所有狀態的期望回報 V π ( s ) V^\pi(s) Vπ(s)
  • 第二部分:通過引入策略 π θ \pi_\theta πθ?,將期望回報展開為每個狀態下的所有可能動作的值函數的期望。
  • 這種展開形式有助于進一步分析和優化策略,因為我們可以直接看到每個狀態和動作對總回報的貢獻。

6.1.3 應用

這個公式在強化學習中非常重要,尤其在策略梯度方法中,通過優化 J ( θ ) J(\theta) J(θ) 來改進策略參數 θ \theta θ。策略梯度算法通過計算 J ( θ ) J(\theta) J(θ) θ \theta θ 的梯度,調整策略參數以最大化期望回報。

總結來說,這個公式提供了一種計算和優化策略性能的方法,通過狀態分布、狀態值函數和動作值函數的結合,反映了策略在不同狀態和動作下的期望回報。

6.2 式9.13解釋

6.2.1 各部分解釋

  1. 目標函數的梯度 ? θ J ( θ ) \nabla_\theta J(\theta) ?θ?J(θ)

    • 目標是計算策略參數 θ \theta θ 的梯度,以便在策略優化中使用。
  2. 狀態分布 d π ( s ) d^\pi(s) dπ(s)

    • d π ( s ) d^\pi(s) dπ(s) 是在策略 π \pi π 下,系統處于狀態 s s s 的穩態分布。
  3. 動作值函數 Q π ( s , a ) Q^\pi(s, a) Qπ(s,a)

    • Q π ( s , a ) Q^\pi(s, a) Qπ(s,a) 是在策略 π \pi π 下,從狀態 s s s 采取動作 a a a 開始的期望回報。
  4. 策略 π θ ( a ∣ s ) \pi_\theta(a \mid s) πθ?(as)

    • π θ ( a ∣ s ) \pi_\theta(a \mid s) πθ?(as) 是策略 π \pi π 在狀態 s s s 選擇動作 a a a 的概率。

6.2.2 逐步推導

  1. 初始形式

    ? θ J ( θ ) ∝ ∑ s ∈ S d π ( s ) ∑ a ∈ A Q π ( s , a ) ? θ π θ ( a ∣ s ) \nabla_\theta J(\theta) \propto \sum_{s \in S} d^\pi(s) \sum_{a \in A} Q^\pi(s, a) \nabla_\theta \pi_\theta(a \mid s) ?θ?J(θ)sS?dπ(s)aA?Qπ(s,a)?θ?πθ?(as)

    這是目標函數梯度的初始形式,我們希望計算期望回報的梯度。

  2. 引入對數梯度技巧

    ? θ π θ ( a ∣ s ) = π θ ( a ∣ s ) ? θ π θ ( a ∣ s ) π θ ( a ∣ s ) = π θ ( a ∣ s ) ? θ log ? π θ ( a ∣ s ) \nabla_\theta \pi_\theta(a \mid s) = \pi_\theta(a \mid s) \frac{\nabla_\theta \pi_\theta(a \mid s)}{\pi_\theta(a \mid s)} = \pi_\theta(a \mid s) \nabla_\theta \log \pi_\theta(a \mid s) ?θ?πθ?(as)=πθ?(as)πθ?(as)?θ?πθ?(as)?=πθ?(as)?θ?logπθ?(as)

    通過引入對數梯度技巧,將梯度轉換為對數的形式。這一步利用了對數函數的導數性質。

  3. 替換并簡化

    ? θ J ( θ ) ∝ ∑ s ∈ S d π ( s ) ∑ a ∈ A π θ ( a ∣ s ) Q π ( s , a ) ? θ log ? π θ ( a ∣ s ) \nabla_\theta J(\theta) \propto \sum_{s \in S} d^\pi(s) \sum_{a \in A} \pi_\theta(a \mid s) Q^\pi(s, a) \nabla_\theta \log \pi_\theta(a \mid s) ?θ?J(θ)sS?dπ(s)aA?πθ?(as)Qπ(s,a)?θ?logπθ?(as)

    這里,我們將原始的梯度形式替換為對數梯度形式,進一步簡化表達式。

  4. 期望形式

    ? θ J ( θ ) = E π θ [ Q π ( s , a ) ? θ log ? π θ ( a ∣ s ) ] \nabla_\theta J(\theta) = \mathbb{E}_{\pi_\theta} [Q^\pi(s, a) \nabla_\theta \log \pi_\theta(a \mid s)] ?θ?J(θ)=Eπθ??[Qπ(s,a)?θ?logπθ?(as)]

    最后一步,將求和形式轉換為期望形式,這樣可以更直觀地表示在策略 π θ \pi_\theta πθ? 下的期望梯度。

6.2.3 直觀理解

  • 梯度的期望:公式的最終形式表明,目標函數 J ( θ ) J(\theta) J(θ) 的梯度是動作值函數 Q π ( s , a ) Q^\pi(s, a) Qπ(s,a) 與策略 π θ ( a ∣ s ) \pi_\theta(a \mid s) πθ?(as) 的對數梯度的乘積的期望值。
  • 策略改進:通過計算這個梯度,我們可以更新策略參數 θ \theta θ,使得期望回報 J ( θ ) J(\theta) J(θ) 最大化。

6.2.4 應用

這個公式在策略梯度方法(如REINFORCE算法)中至關重要,通過計算和使用這個梯度,我們可以不斷改進策略,以在給定環境中獲得更高的回報。

總結來說,該公式通過引入對數梯度技巧,將策略參數的目標函數梯度轉換為一個更加易于計算和理解的形式,使得在強化學習中策略優化變得更加高效和可行。

7 策略梯度算法的缺點

結合了策略梯度和值函數的 Actor-Critic \text{Actor-Critic} Actor-Critic 算法則能同時兼顧兩者的優點,并且甚至能緩解兩種方法都很難解決的高方差問題。可能讀者會奇怪為什么各自都有高方差的問題,結合了之后反而緩解了這個問題呢?我們再仔細分析一下兩者高方差的根本來源:

  1. 策略梯度算法是因為直接對策略參數化,相當于既要利用策略去與環境交互采樣,又要利用采樣去估計策略梯度,
  2. 而基于價值的算法也是需要與環境交互采樣來估計值函數的,因此也會有高方差的問題。
    而結合之后呢, Actor \text{Actor} Actor 部分還是負責估計策略梯度和采樣,但 Critic \text{Critic} Critic 即原來的值函數部分就不需要采樣而只負責估計值函數了,并且由于它估計的值函數指的是策略函數的值,相當于帶來了一個更穩定的估計,來指導 Actor \text{Actor} Actor 的更新,反而能夠緩解策略梯度估計帶來的方差。
    當然盡管 Actor-Critic \text{Actor-Critic} Actor-Critic 算法能夠緩解方差問題,但并不能徹底解決問題,在接下來的章節中我們也會展開介紹一些改進的方法。

8 Q Actor - Critic算法

Actor-Critic \text{Actor-Critic} Actor-Critic 算法的目標函數10.1
? θ J ( θ ) ∝ E π θ [ Q π ( s , a ) ? θ log ? π θ ( a ∣ s ) ] (10.1) \tag{10.1} \begin{aligned} \nabla_\theta J(\theta) \propto \mathbb{E}_{\pi_{\theta}}\left[Q^\pi(s, a) \nabla_\theta \log \pi_\theta(a \mid s)\right] \end{aligned} ?θ?J(θ)Eπθ??[Qπ(s,a)?θ?logπθ?(as)]?(10.1)

Q?Actor-Critic \text{Q Actor-Critic} Q?Actor-Critic 算法的目標函數10.2
? θ J ( θ ) ∝ E π θ [ Q ? ( s t , a t ) ? θ log ? π θ ( a t ∣ s t ) ] (10.2) \tag{10.2} \begin{aligned} \nabla_\theta J(\theta) \propto \mathbb{E}_{\pi_{\theta}}\left[Q_{\phi}(s_t, a_t) \nabla_\theta \log \pi_\theta(a_t \mid s_t)\right] \end{aligned} ?θ?J(θ)Eπθ??[Q??(st?,at?)?θ?logπθ?(at?st?)]?(10.2)

我們通常將 Actor 和 Critic 分別用兩個模塊來表示,即圖中的 策略函數( Policy )和價值函數( Value Function )。Actor 與環境交互采樣,然后將采樣的軌跡輸入 Critic 網絡,Critic 網絡估計出當前狀態-動作對的價值,然后再將這個價值作為 Actor 網絡的梯度更新的依據,這也是所有 Actor-Critic 算法的基本通用架構。
在這里插入圖片描述

9 A2C 與 A3C 算法

10 廣義優勢估計

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/38622.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/38622.shtml
英文地址,請注明出處:http://en.pswp.cn/web/38622.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python游戲腳本開發之大漠插件

自動化 文章目錄 自動化前言一、開發環境二、免注冊調用三、創建大漠對象四、注冊五、大漠功能調用六、整體代碼 前言 大漠插件是集前后臺,文字識別,圖色,鍵鼠,窗口,內存,DX,Call等功能于一身的…

HSP_13章 Python_魔術方法

文章目錄 P132 魔術方法1. 魔術方法的基本介紹2. 常見的魔術方法2.1 __str__2.2 __eq__2.3 其它的幾個魔術方法 P132 魔術方法 參考文檔 1. 魔術方法的基本介紹 2. 常見的魔術方法 2.1 str # 請輸出Monster[name,job,sal]對象的屬性信息 #可以根據需要…

(1, ‘[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1124)

WARNING: Retrying (Retry(total4, connectNone, readNone, redirectNone, statusNone)) after connection broken by SSLError(SSLError(1, [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1124))): /pypi/simple/urllib3/ pip install的時候遇到這個錯誤 第一步…

競賽選題 交通目標檢測-行人車輛檢測流量計數 - 競賽選題

文章目錄 0 前言1\. 目標檢測概況1.1 什么是目標檢測?1.2 發展階段 2\. 行人檢測2.1 行人檢測簡介2.2 行人檢測技術難點2.3 行人檢測實現效果2.4 關鍵代碼-訓練過程 最后 0 前言 🔥 優質競賽項目系列,今天要分享的是 🚩 畢業設計…

OtterTune dead,參數調優還有DBdoctor

前言 數據庫性能調優這塊必不可少的環節是進行參數調優,數據庫的參數很多,比如Oracle甚至有上千個參數,如何進行參數設置非常關鍵。參數調優需要基于業務的負載模型、硬件配置等多種因素,好的參數調優可以讓數據庫性能整體吞吐提…

Symfony配置管理深度解析:構建可維護項目的秘訣

Symfony是一個高度靈活且功能豐富的PHP框架,它提供了一套強大的配置管理系統,使得開發者能夠輕松定制和優化應用程序的行為。本文將深入探討Symfony中的配置管理機制,包括配置的結構、來源、加載過程以及最佳實踐。 一、配置管理的重要性 在…

Scala類型類(Type Classes):靈活而強大的類型增強術

🌟 Scala類型類(Type Classes):靈活而強大的類型增強術 在Scala編程語言中,類型類是一種強大的特性,它允許開發者以類型安全的方式擴展語言。類型類提供了一種機制,可以將行為與類型關聯起來,類似于Java中…

【筆記】Android Settings 應用設置菜單的界面代碼介紹

簡介 Settings應用中,提供多類設置菜單入口,每個菜單內又有各模塊功能的實現。 那么各個模塊基于Settings 基礎的界面Fragment去實現UI,層層按不同業務進行封裝繼承實現子類: DashboardFragmentSettingsPreferenceFragment 功…

植物大戰僵尸雜交版,最新安裝包(PC+手機+蘋果)+ 修改器+高清工具

植物大戰僵尸雜交版:全新游戲體驗與創意碰撞 游戲簡介 《植物大戰僵尸雜交版》是由B站知名UP主潛艇偉偉迷基于經典游戲《植物大戰僵尸》進行的一次大膽且富有創意的二次創作。這款游戲不僅保留了原版游戲的經典玩法,還融入了植物雜交的全新概念&#x…

Qt掃盲-QRect矩形描述類

QRect矩形描述總結 一、概述二、常用函數1. 移動類2. 屬性函數3. 判斷4. 比較計算 三、渲染三、坐標 一、概述 QRect類使用整數精度在平面中定義一個矩形。在繪圖的時候經常使用,作為一個二維的參數描述類。 一個矩形主要有兩個重要屬性,一個是坐標&am…

同步互斥與通信

目錄 一、同步與互斥的概念 二、同步與互斥并不簡單 三、各類方法的對比 一、同步與互斥的概念 一句話理解同步與互斥:我等你用完廁所,我再用廁所。 什么叫同步?就是:哎哎哎,我正在用廁所,你等會。 什…

【實戰場景】記一次UAT jvm故障排查經歷

【實戰場景】記一次UAT jvm故障排查經歷 開篇詞:干貨篇:1.查看系統資源使用情況2.將十進制進程號轉成十六進制3.使用jstack工具監視進程的垃圾回收情況4.輸出指定線程的堆內存信息5.觀察日志6.本地環境復現 總結篇:我是杰叔叔,一名…

線下促銷折扣視頻介紹

千呼新零售2.0系統是零售行業連鎖店一體化收銀系統,包括線下收銀線上商城連鎖店管理ERP管理商品管理供應商管理會員營銷等功能為一體,線上線下數據全部打通。 適用于商超、便利店、水果、生鮮、母嬰、服裝、零食、百貨、寵物等連鎖店使用。 詳細介紹請…

Linux上systemctl 和 service 兩個命令的區別和聯系

systemctl 和 service 兩個命令都是 Linux 系統中用于管理服務的工具,但它們分別關聯著不同的初始化系統(init system),并且在功能和使用場景上有所差異。 service 命令 關聯的初始化系統:service 命令通常與 SysV i…

Python從零學習筆記(1)

1pip無法調用 剛入python,需要用到第三方模塊,但是按照教程使用>>>pip install 總是出現錯誤提示 網上查詢許久:語句沒錯;安裝沒錯;環境配置也正常 最后才知道是不能先進入python模式,而是使用p…

2024年道路運輸安全員考試題庫及答案

一、多選題 11.《放射性物品安全管理條例》規定,運輸放射性物品時,應當使用專用的放射性物品運輸包裝容器。在運輸過程中正確的做法有( )。 A.托運人和承運人應當按照國家放射性物品運輸安全標準和國家有關規定,在…

什么是定時器?

前言👀~ 上一章我們介紹了阻塞隊列以及生產者消息模式,今天我們來講講定時器 定時器 標準庫中的定時器 schedule()方法 掃描線程 手動實現定時器 任務類 存儲任務的數據結構 定時器類 如果各位對文章的內容感興趣的話,請點點小贊&am…

【Python】列表

目錄 一、列表的概念 二、列表的創建 1.變量名 [ ] ..... 2.通過Python內置 的I ist類的構造函數來創建列表 三、操作列表元素的方法 1. 修改 2. 增加元素 3. 刪除 4. 其他操作 四、遍歷列表 五、列表排序 六、列表切片(list slicing) 七、…

淺談什么是計算機科學與技術(Computer Science,CS)

計算機科學的核心內容 計算機科學(Computer Science, CS)涵蓋了以下主要領域: 硬件:涉及數字電路、集成電路、存儲器和硬件設計與驗證方法等。 例子:學習如何設計和實現一個簡單的CPU,包括理解指令集、時鐘…

值得細讀的8個視覺大模型生成式預訓練方法

作者:vasgaowei(已授權原創) 編輯: AI生成未來 鏈接:https://zhuanlan.zhihu.com/p/677794719 大語言模型的進展催生出了ChatGPT這樣的應用,讓大家對“第四次工業革命”和“AGI”的來臨有了一些期待,也作為…