策略梯度方法介绍——策略梯度定理推导过程
目录
上一节介绍了Policy-Based强化学习方法的优势,并介绍了影响目标函数梯度 ∇ J ( θ ) \nabla\mathcal J(\theta) ∇J(θ)的核心要素——状态分布。本节将使用状态分布对策略梯度定理进行表示。
回顾:目标函数与状态分布
上一节介绍到:
-
通常将目标函数 J ( θ ) \mathcal J(\theta) J(θ)定义为 情节中初始状态回报的期望,即初始状态的状态价值函数:
J ( θ ) = E π ( a ∣ s ; θ ) [ G 0 ∣ S = s 0 ] ≜ V π ( a ∣ s ; θ ) ( s 0 ) \mathcal J(\theta) = \mathbb E_{\pi(a \mid s;\theta)}[G_0 \mid S = s_0] \triangleq V_{\pi(a \mid s;\theta)}(s_0) J(θ)=Eπ(a∣s;θ)[G0∣S=s0]≜Vπ(a∣s;θ)(s0) -
情节中策略函数 π ( a ∣ s ; θ ) \pi(a \mid s;\theta) π(a∣s;θ)的变化会影响状态分布的变化,而状态分布的变化直接影响目标函数 J ( θ ) \mathcal J(\theta) J(θ)的变化。
关于状态 s s s出现的平均次数表示如下:
η ( s ) = h ( s ) + ∑ s ˉ η ( s ˉ ) ∑ a π ( a ∣ s ˉ ) P ( s ∣ s ˉ , a ) = ∑ k = 0 T − 1 P r { s 0 → s , k , π } \begin{aligned} \eta(s) & = h(s) + \sum_{\bar s}\eta(\bar s)\sum_{a}\pi(a \mid \bar s)P(s \mid \bar s,a) \\ & = \sum_{k=0}^{T-1}P_r\{s_0 \to s,k,\pi\} \end{aligned} η(s)=h(s)+sˉ∑η(sˉ)a∑π(a∣sˉ)P(s∣sˉ,a)=k=0∑T−1Pr{ s0→s,k,π}
其中, P r { s 0 → s , k , π } P_r\{s_0 \to s,k,\pi\} Pr{ s0→s,k,π}表示初始状态 s 0 s_0 s0,在策略函数 π \pi π的条件下,经过 k k k次状态转移,最终达到状态 s s s的概率。即 存在 P r { s 0 → s , k , π } P_r\{s_0 \to s,k,\pi\} Pr{ s0→s,k,π}的概率,初始状态 s 0 s_0 s0经过 k k k次状态转移后的状态必然是状态 s s s(必出现一次状态 s s s)。
因而,状态 s s s在情节中出现的平均次数 η ( s ) \eta(s) η(s)即 从初始时刻 t = 0 t = 0 t=0开始,到情节结束的前一个时刻 T − 1 T-1 T−1之间所有时刻“出现一次状态 s s s”的平均次数之和。 -
状态 s s s的出现概率表示如下:
μ ( s ) = η ( s ) ∑ s ′ η ( s ′ ) \mu(s) = \frac{\eta(s)}{\sum_{s'} \eta(s')} μ(s)=∑s′η(s′)η(s)
策略梯度定理
策略梯度定理本质就是求解 目标函数的梯度 ∇ J ( θ ) \nabla \mathcal J(\theta) ∇J(θ), ∇ J ( θ ) \nabla \mathcal J(\theta) ∇J(θ)自身是一个向量,它包含两个要素:
- 梯度数值;
- 梯度方向;
相比于梯度数值,我们更关心的是梯度方向——梯度方向会 引导目标函数 J ( θ ) \mathcal J(\theta) J(θ)向最优方向收敛,而梯度数值在迭代过程中会与学习率 α \alpha α相乘,它只参与决定 J ( θ ) \mathcal J(\theta) J(θ)收敛的 步长(step)。
在后续推导过程中会用到该思想。
策略梯度定理求解过程
根据目标函数的描述,将 ∇ J ( θ ) \nabla \mathcal J(\theta) ∇J(θ)表示如下:
为了使推导过程更具有‘普遍性’ -> 将s_0用s表达;
∇ J ( θ ) = ∇ V π ( s ) \nabla \mathcal J(\theta) = \nabla V_\pi(s) ∇J(θ)=∇Vπ(s)
将 V π ( s ) V_\pi(s) Vπ(s)使用贝尔曼期望方程进行展开:
∇ V π ( s ) = ∇ ∑ a ∈ A ( s ) π ( a ∣ s ) q π ( s , a ) \nabla V_\pi(s) = \nabla \sum_{a \in \mathcal A(s)}\pi(a \mid s)q_\pi(s,a) ∇Vπ(s)=∇a∈A(s)∑π(a∣s)qπ(s,a)
将连加符号 ∑ a ∈ A ( s ) \sum_{a \in \mathcal A(s)} ∑a∈A(s)与梯度符号交换位置——即对连加操作中的每一项求解梯度,并对 π ( a ∣ s ) q π ( s , a ) \pi(a \mid s)q_\pi(s,a) π(a∣s)qπ(s,a)求解梯度;
可以看成‘乘法求导’。
∑ a ∈ A ( s ) ∇ π ( a ∣ s ) q π ( s , a ) + ∑ a ∈ A ( s ) π ( a ∣ s ) ∇ q π ( s , a ) \sum_{a \in \mathcal A(s)} \nabla \pi(a \mid s)q_\pi(s,a) + \sum_{a \in \mathcal A(s)}\pi(a \mid s)\nabla q_\pi(s,a) a∈A(s)∑∇π(a∣s)qπ(s,a)+a∈A(s)∑π(a∣s)∇qπ(s,a)
此时观察第二项 ∑ a ∈ A ( s ) π ( a ∣ s ) ∇ q π ( s , a ) \sum_{a \in \mathcal A(s)}\pi(a \mid s)\nabla q_\pi(s,a) ∑a∈A(s)π(a∣s)∇qπ(s,a)。 q π ( s , a ) q_\pi(s,a) qπ(s,a)可以继续展开,即状态 s s s条件下选择并执行动作 a a a,经过状态转移得到下一时刻状态 s ′ s' s′。
∇ q π ( s , a ) = ∇ ∑ s ′ , r P ( s ′ , r ∣ s , a ) [ r + γ V π ( s ′ ) ] = ∇ ∑ s ′ , r P ( s ′ , r ∣ s , a ) ⋅ r + ∇ ∑ s ′ , r γ P ( s ′ , r ∣ s , a ) V π ( s ′ ) \begin{aligned} \nabla q_\pi(s,a) & = \nabla \sum_{s',r}P(s',r \mid s,a)[r + \gamma V_\pi(s')] \\ & = \nabla \sum_{s',r}P(s',r \mid s,a) \cdot r + \nabla \sum_{s',r} \gamma P(s',r \mid s,a) V_\pi(s') \end{aligned} ∇qπ(s,a)=∇s′,r∑P(s′,r∣s,a)[r+γVπ(s′)]=∇s′,r∑P(s′,r∣s,a)⋅r+∇s′,r∑γP(s′,r∣s,a)Vπ(s′)
我们要对 θ \theta θ求解梯度,只有策略函数 π ( a ∣ s ; θ ) \pi(a \mid s;\theta) π(a∣s;θ)和包含策略函数的 V π , q π V_\pi,q_\pi Vπ,qπ中含有 θ \theta θ。因此:动态特性函数 P ( s ′ , r ∣ s , a ) P(s',r \mid s,a) P(s