概述
策略梯度方法介绍——策略梯度定理推导过程
- 目录
- 回顾:目标函数与状态分布
- 策略梯度定理
- 策略梯度定理求解过程
目录
上一节介绍了Policy-Based强化学习方法的优势,并介绍了影响目标函数梯度 ∇ J ( θ ) nablamathcal 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′,r∣s,a),衰减系数
γ
gamma
γ均视作常数。
对
∇
q
π
(
s
,
a
)
nabla q_pi(s,a)
∇qπ(s,a)整理结果如下:
∇
q
π
(
s
,
a
)
=
γ
∑
s
′
,
r
P
(
s
′
,
r
∣
s
,
a
)
∇
V
π
(
s
′
)
nabla q_pi(s,a) = gamma sum_{s',r}P(s',r mid s,a) nabla V_pi(s')
∇qπ(s,a)=γs′,r∑P(s′,r∣s,a)∇Vπ(s′)
该结果可以继续简化——对
r
r
r求解边缘概率分布:此时有:
∑
r
P
(
r
∣
s
,
a
)
=
1
sum_{r} P(r mid s,a) = 1
r∑P(r∣s,a)=1
因此
∇
q
π
(
s
,
a
)
nabla q_pi(s,a)
∇qπ(s,a)可以继续化简如下:
∇
q
π
(
s
,
a
)
=
γ
∑
r
P
(
r
∣
s
,
a
)
×
∑
s
′
P
(
s
′
∣
s
,
a
)
∇
V
π
(
s
′
)
=
γ
×
1
×
∑
s
′
P
(
s
′
∣
s
,
a
)
∇
V
π
(
s
′
)
=
γ
∑
s
′
P
(
s
′
∣
s
,
a
)
∇
V
π
(
s
′
)
begin{aligned} nabla q_pi(s,a) & = gamma sum_{r}P(r mid s,a) times sum_{s'} P(s' mid s,a) nabla V_pi(s') \ & = gamma times 1 times sum_{s'} P(s' mid s,a) nabla V_pi(s') \ & = gamma sum_{s'} P(s' mid s,a) nabla V_pi(s') end{aligned}
∇qπ(s,a)=γr∑P(r∣s,a)×s′∑P(s′∣s,a)∇Vπ(s′)=γ×1×s′∑P(s′∣s,a)∇Vπ(s′)=γs′∑P(s′∣s,a)∇Vπ(s′)
∇
q
π
(
s
,
a
)
nabla q_pi(s,a)
∇qπ(s,a)至此无法继续向下化简,对
∇
V
π
(
s
)
nabla V_pi(s)
∇Vπ(s)进行整理:
∇
V
π
(
s
)
=
∑
a
∈
A
(
s
)
∇
π
(
a
∣
s
)
q
π
(
s
,
a
)
+
∑
a
∈
A
(
s
)
π
(
a
∣
s
)
∇
q
π
(
s
,
a
)
=
∑
a
∈
A
(
s
)
∇
π
(
a
∣
s
)
q
π
(
s
,
a
)
+
∑
a
∈
A
(
s
)
π
(
a
∣
s
)
×
γ
∑
s
′
P
(
s
′
∣
s
,
a
)
∇
V
π
(
s
′
)
begin{aligned} nabla V_pi(s) & = 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) \ & = 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) times gamma sum_{s'} P(s' mid s,a) nabla V_pi(s') end{aligned}
∇Vπ(s)=a∈A(s)∑∇π(a∣s)qπ(s,a)+a∈A(s)∑π(a∣s)∇qπ(s,a)=a∈A(s)∑∇π(a∣s)qπ(s,a)+a∈A(s)∑π(a∣s)×γs′∑P(s′∣s,a)∇Vπ(s′)
我们发现,上述式子是 关于
∇
V
π
(
s
)
nabla V_pi(s)
∇Vπ(s)和
∇
V
π
(
s
′
)
nabla V_pi(s')
∇Vπ(s′)的迭代式子,即 找到了
∇
V
π
(
s
)
nabla V_pi(s)
∇Vπ(s)与
∇
V
π
(
s
′
)
nabla V_pi(s')
∇Vπ(s′)的关联关系,为了确定这组关联关系,我们继续对
∇
V
π
(
s
′
)
nabla V_pi(s')
∇Vπ(s′)向下展开:
设置场景
:状态
s
′
s'
s′条件下,通过策略函数
π
(
a
′
∣
s
′
;
θ
)
pi(a' mid s';theta)
π(a′∣s′;θ)选择动作
a
′
a'
a′,经过 状态转移 得到
s
′
s'
s′的下一时刻状态
s
′
′
s''
s′′。
s'状态价值函数求解梯度同s
∇
V
π
(
s
′
)
=
∑
a
′
∈
A
(
s
′
)
∇
π
(
a
′
∣
s
′
)
q
π
(
s
′
,
a
′
)
+
∑
a
′
∈
A
(
s
′
)
π
(
a
′
∣
s
′
)
×
γ
∑
s
′
′
P
(
s
′
′
∣
s
′
,
a
′
)
∇
V
π
(
s
′
′
)
nabla V_pi(s') = 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') times gamma sum_{s''}P(s'' mid s',a') nabla V_pi(s'')
∇Vπ(s′)=a′∈A(s′)∑∇π(a′∣s′)qπ(s′,a′)+a′∈A(s′)∑π(a′∣s′)×γs′′∑P(s′′∣s′,a′)∇Vπ(s′′)
将
∇
V
π
(
s
′
)
nabla V_pi(s')
∇Vπ(s′)带回
∇
V
π
(
s
)
nabla V_pi(s)
∇Vπ(s),则有:
∇
V
π
(
s
)
=
∑
a
∈
A
(
s
)
∇
π
(
a
∣
s
)
q
π
(
s
,
a
)
+
∑
a
∈
A
(
s
)
π
(
a
∣
s
)
×
γ
∑
s
′
P
(
s
′
∣
s
,
a
)
{
∑
a
′
∈
A
(
s
′
)
∇
π
(
a
′
∣
s
′
)
q
π
(
s
′
,
a
′
)
+
∑
a
′
∈
A
(
s
′
)
π
(
a
′
∣
s
′
)
×
γ
∑
s
′
′
P
(
s
′
′
∣
s
′
,
a
′
)
∇
V
π
(
s
′
′
)
}
nabla V_pi(s) = 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) times gamma sum_{s'} P(s' mid s,a) left{ 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') times gamma sum_{s''}P(s'' mid s',a') nabla V_pi(s'') right}
∇Vπ(s)=a∈A(s)∑∇π(a∣s)qπ(s,a)+a∈A(s)∑π(a∣s)×γs′∑P(s′∣s,a)⎩
⎨
⎧a′∈A(s′)∑∇π(a′∣s′)qπ(s′,a′)+a′∈A(s′)∑π(a′∣s′)×γs′′∑P(s′′∣s′,a′)∇Vπ(s′′)⎭
⎬
⎫
现在已经将状态
s
s
s状态转移了两次:
s
→
s
′
→
s
′
′
s to s' to s''
s→s′→s′′,根据上面的展开结果,尝试寻找求解
∇
V
π
(
s
)
nabla V_pi(s)
∇Vπ(s)的规律:
将上述公式完全展开,并归纳成若干项的加和 形式:
大家可以自行尝试展开,最终得到下面结果的加和形式即可
- 第一项:
∑ a ∈ A ( s ) ∇ π ( a ∣ s ) q π ( s , a ) sum_{a in mathcal A(s)} nabla pi(a mid s)q_pi(s,a) a∈A(s)∑∇π(a∣s)qπ(s,a) - 第二项:
∑ a ∈ A ( s ) π ( a ∣ s ) × γ ∑ s ′ P ( s ′ ∣ s , a ) ∑ a ′ ∈ A ( s ′ ) ∇ π ( a ′ ∣ s ′ ) q π ( s ′ , a ′ ) sum_{a in mathcal A(s)} pi(a mid s) times gamma sum_{s'} P(s' mid s,a)sum_{a' in mathcal A(s')} nabla pi(a' mid s')q_pi(s',a') a∈A(s)∑π(a∣s)×γs′∑P(s′∣s,a)a′∈A(s′)∑∇π(a′∣s′)qπ(s′,a′) - 第三项:
∑ a ∈ A ( s ) π ( a ∣ s ) × γ ∑ s ′ P ( s ′ ∣ s , a ) ∑ a ′ ∈ A ( s ′ ) π ( a ′ ∣ s ′ ) × γ ∑ s ′ ′ P ( s ′ ′ ∣ s ′ , a ′ ) ∇ V π ( s ′ ′ ) sum_{a in mathcal A(s)}pi(a mid s) times gamma sum_{s'} P(s' mid s,a) sum_{a' in mathcal A(s')} pi(a' mid s') times gamma sum_{s''}P(s'' mid s',a') nabla V_pi(s'') a∈A(s)∑π(a∣s)×γs′∑P(s′∣s,a)a′∈A(s′)∑π(a′∣s′)×γs′′∑P(s′′∣s′,a′)∇Vπ(s′′)
首先,先观察第二项:
∑
a
∈
A
(
s
)
π
(
a
∣
s
)
×
γ
∑
s
′
P
(
s
′
∣
s
,
a
)
∑
a
′
∈
A
(
s
′
)
∇
π
(
a
′
∣
s
′
)
q
π
(
s
′
,
a
′
)
sum_{a in mathcal A(s)} pi(a mid s) times gamma sum_{s'} P(s' mid s,a)sum_{a' in mathcal A(s')} nabla pi(a' mid s')q_pi(s',a')
a∈A(s)∑π(a∣s)×γs′∑P(s′∣s,a)a′∈A(s′)∑∇π(a′∣s′)qπ(s′,a′)
观察前半部分:
∑
a
∈
A
(
s
)
π
(
a
∣
s
)
×
γ
∑
s
′
P
(
s
′
∣
s
,
a
)
sum_{a in mathcal A(s)} pi(a mid s) times gamma sum_{s'} P(s' mid s,a)
∑a∈A(s)π(a∣s)×γ∑s′P(s′∣s,a),前半部分主要描述的是 状态
s
s
s转移至
s
′
s'
s′的转移概率。现在可能观察的不够明朗,我们将前半部分进行如下变换:
-
将 ∑ s ′ sum_{s'} ∑s′提到前面:
∑ a ∈ A ( s ) ∑ s ′ γ × π ( a ∣ s ) P ( s ′ ∣ s , a ) sum_{a in mathcal A(s)}sum_{s'} gamma times pi(a mid s) P(s' mid s,a) a∈A(s)∑s′∑γ×π(a∣s)P(s′∣s,a) -
其中, π ( a ∣ s ) pi(a mid s) π(a∣s)可看作 s s s状态下动作 a a a发生的条件概率; P ( s ′ ∣ s , a ) P(s' mid s,a) P(s′∣s,a)可看作 s s s状态下执行动作 a a a进行状态转移,转移状态为 s ′ s' s′的条件概率。
根据动态规划求解强化学习任务——策略评估[解析解]提到的条件概率密度积分:
∑ a ∈ A p ( c ∣ a , B ) p ( a ∣ B ) = ∑ a ∈ A p ( c , a ∣ B ) = p ( c ∣ B ) sum_{a in mathcal A}p(c mid a,mathcal B)p(a mid mathcal B) = sum_{a in mathcal A}p(c,a mid mathcal B) = p(c mid mathcal B) a∈A∑p(c∣a,B)p(a∣B)=a∈A∑p(c,a∣B)=p(c∣B)
将条件概率 π ( a ∣ s ) pi(a mid s) π(a∣s)和条件概率 P ( s ′ ∣ s , a ) P(s' mid s,a) P(s′∣s,a) 乘积结果的概率符号设为 P mathcal P P, 可以将上述式子化简成:
∑ a ∈ A ( s ) ∑ s ′ γ × π ( a ∣ s ) P ( s ′ ∣ s , a ) = ∑ s ′ γ × P ( s ′ ∣ s ) begin{aligned} sum_{a in mathcal A(s)}sum_{s'} gamma times pi(a mid s) P(s' mid s,a) = sum_{s'}gamma timesmathcal P(s' mid s) end{aligned} a∈A(s)∑s′∑γ×π(a∣s)P(s′∣s,a)=s′∑γ×P(s′∣s) -
根据上式,可以将 P ( s ′ ∣ s ) mathcal P(s' mid s) P(s′∣s)看作成 状态 s s s通过1次状态转移得到新状态 s ′ s' s′的概率。这和我们对状态分布中 P r { s 0 → s , k , π } P_r{s_0 to s,k,pi} Pr{s0→s,k,π}的定义十分相似,我们可以改成:
P ( s ′ ∣ s ) = P r { s → s ′ , 1 , π } mathcal P(s' mid s) = P_r{s to s',1,pi} P(s′∣s)=Pr{s→s′,1,π}
因此,前半部分可以转化成:
∑
a
∈
A
(
s
)
π
(
a
∣
s
)
×
γ
∑
s
′
P
(
s
′
∣
s
,
a
)
=
∑
s
′
γ
×
P
r
{
s
→
s
′
,
1
,
π
}
sum_{a in mathcal A(s)} pi(a mid s) times gamma sum_{s'} P(s' mid s,a) = sum_{s'} gamma times P_r{s to s',1,pi}
a∈A(s)∑π(a∣s)×γs′∑P(s′∣s,a)=s′∑γ×Pr{s→s′,1,π}
至此,改进后第二项表达如下:
∑
s
′
γ
×
P
r
{
s
→
s
′
,
1
,
π
}
∑
a
′
∈
A
(
s
′
)
∇
π
(
a
′
∣
s
′
)
q
π
(
s
′
,
a
′
)
sum_{s'} gamma times P_r{s to s',1,pi}sum_{a' in mathcal A(s')} nabla pi(a' mid s')q_pi(s',a')
s′∑γ×Pr{s→s′,1,π}a′∈A(s′)∑∇π(a′∣s′)qπ(s′,a′)
继续观察这个改进后的第二项,虽然现在不清楚它表示的具体意义是什么——但是该式子中包含2个变量和1个常数量:
- 变量 → s , s ′ to s,s' →s,s′;( a ′ a' a′只能看成一个中间过程量,因为它最终是要被 ∑ a ′ ∈ A ( s ′ ) sum_{a' in mathcal A(s')} ∑a′∈A(s′)积分掉的量)
- 常数量 → to → 转移次数:1
我们可以将其理解为:状态
s
s
s经过 1次状态转移 得到状态
s
′
s'
s′的量的描述。
可以将其做成一个 通向式,其表述含义为:状态
s
s
s经过
k
k
k次状态转移得到状态
x
x
x的量的描述。并且
x
∈
x in
x∈转移后的状态集合
S
mathcal S
S。对应式子表示如下:
∑
x
∈
S
γ
×
P
r
{
s
→
x
,
k
,
π
}
∑
a
∈
A
(
x
)
∇
π
(
a
∣
x
)
q
π
(
x
,
a
)
sum_{x in mathcal S} gamma times P_r{s to x,k,pi} sum_{a in mathcal A(x)} nabla pi(a mid x)q_pi(x,a)
x∈S∑γ×Pr{s→x,k,π}a∈A(x)∑∇π(a∣x)qπ(x,a)
重点:此时第二项的通式已经得到了,观察第一项是否满足该通式?
必然是满足的。
观察第一项式子:
∑
a
∈
A
(
s
)
∇
π
(
a
∣
s
)
q
π
(
s
,
a
)
sum_{a in mathcal A(s)} nabla pi(a mid s)q_pi(s,a)
a∈A(s)∑∇π(a∣s)qπ(s,a)
我们可以将其理解成:状态
s
s
s经过 0次状态转移 得到状态
s
s
s自身的量的描述。
表述如下:
- 状态 s s s状态转移0次 → to → 即没有进行状态转移,其结果是状态 s s s自身的概率 必然是1;
- 由于没有状态转移,转移后的状态集合
S
mathcal S
S的选择只有
s
s
s一个。即:
∑ x ∈ S P r { s → x , k , π } = P r { s → s , 0 , π } ∣ x = s = 1 sum_{x in mathcal S}P_r{s to x,k,pi} = P_r{s to s,0,pi}mid_{x=s} = 1 x∈S∑Pr{s→x,k,π}=Pr{s→s,0,π}∣x=s=1 - 由于没有状态转移,自然没有奖励结果衰减,因此,衰减系数 γ = 1 gamma = 1 γ=1;
因此,第一项经过整理表示如下:
∑
x
∈
S
γ
×
P
r
{
s
→
x
,
k
,
π
}
∑
a
∈
A
(
x
)
∇
π
(
a
∣
x
)
q
π
(
x
,
a
)
=
1
×
P
r
{
s
→
s
,
0
,
π
}
∣
x
=
s
∑
a
∈
A
(
x
)
∇
π
(
a
∣
x
)
q
π
(
x
,
a
)
=
1
×
1
×
∑
a
∈
A
(
x
)
∇
π
(
a
∣
x
)
q
π
(
x
,
a
)
=
∑
a
∈
A
(
x
)
∇
π
(
a
∣
x
)
q
π
(
x
,
a
)
begin{split} & sum_{x in mathcal S} gamma times P_r{s to x,k,pi} sum_{a in mathcal A(x)} nabla pi(a mid x)q_pi(x,a) \ & = 1 times P_r{s to s,0,pi} mid_{x =s}sum_{a in mathcal A(x)} nabla pi(a mid x)q_pi(x,a) \ & = 1 times 1 times sum_{a in mathcal A(x)} nabla pi(a mid x)q_pi(x,a) \ & = sum_{a in mathcal A(x)} nabla pi(a mid x)q_pi(x,a) end{split}
x∈S∑γ×Pr{s→x,k,π}a∈A(x)∑∇π(a∣x)qπ(x,a)=1×Pr{s→s,0,π}∣x=sa∈A(x)∑∇π(a∣x)qπ(x,a)=1×1×a∈A(x)∑∇π(a∣x)qπ(x,a)=a∈A(x)∑∇π(a∣x)qπ(x,a)
至此,第一项和第二项全部满足上述通式。第三项通过观察,发现它仍然是一个迭代式,因为第三项中包含
∇
V
π
(
s
′
′
)
nabla V_pi(s'')
∇Vπ(s′′),该项仍然可以继续展开,并一直展开下去。
示例:如果展开
N
N
N次,前
N
−
1
N-1
N−1项均能表述为上述通式结果。
至此,
∇
V
π
(
s
)
nabla V_pi(s)
∇Vπ(s)表示如下:
注意:这里的‘无穷’符号并非表示迭代公式能够无限展开,即到情节结束时,后续展开项的结果均为0;
∇
V
π
(
s
)
=
∑
x
∈
S
∑
k
=
0
∞
γ
k
×
P
r
{
s
→
x
,
k
,
π
}
∑
a
∈
A
(
x
)
∇
π
(
a
∣
x
)
q
π
(
x
,
a
)
nabla V_pi(s) = sum_{x in mathcal S} sum_{k=0}^infty gamma^k times P_r{s to x,k,pi} sum_{a in mathcal A(x)} nabla pi(a mid x)q_pi(x,a)
∇Vπ(s)=x∈S∑k=0∑∞γk×Pr{s→x,k,π}a∈A(x)∑∇π(a∣x)qπ(x,a)
现在,将公式中所有的 s s s替换回初始状态 s 0 s_0 s0,将公式中所有的 x x x替换回 s → s to s→ 最终还是要求解初始状态价值函数的梯度——定义就是这么定义的。
∇ V π ( s 0 ) = ∑ s ∈ S ∑ k = 0 ∞ γ k × P r { s 0 → s , k , π } ∑ a ∈ A ( s ) ∇ π ( a ∣ s ) q π ( s , a ) nabla V_pi(s_0) = sum_{s in mathcal S} sum_{k=0}^infty gamma^k times P_r{s_0 to s,k,pi} sum_{a in mathcal A(s)} nabla pi(a mid s)q_pi(s,a) ∇Vπ(s0)=s∈S∑k=0∑∞γk×Pr{s0→s,k,π}a∈A(s)∑∇π(a∣s)qπ(s,a)
将状态分布
η
(
s
)
=
∑
k
=
0
T
−
1
P
r
{
s
0
→
s
,
k
,
π
}
eta(s) = sum_{k=0}^{T-1}P_r{s_0 to s,k,pi}
η(s)=∑k=0T−1Pr{s0→s,k,π}带回上式:
∇
V
π
(
s
0
)
=
∑
s
∈
S
∑
k
=
0
∞
γ
k
×
P
r
{
s
0
→
s
,
k
,
π
}
∑
a
∈
A
(
s
)
∇
π
(
a
∣
s
)
q
π
(
s
,
a
)
=
∑
s
∈
S
γ
k
×
η
(
s
)
∑
a
∈
A
(
s
)
∇
π
(
a
∣
s
)
q
π
(
s
,
a
)
begin{aligned} nabla V_pi(s_0) & = sum_{s in mathcal S} sum_{k=0}^infty gamma^k times P_r{s_0 to s,k,pi} sum_{a in mathcal A(s)} nabla pi(a mid s)q_pi(s,a) \ & = sum_{s in mathcal S} gamma^k times eta(s) sum_{a in mathcal A(s)} nabla pi(a mid s)q_pi(s,a) end{aligned}
∇Vπ(s0)=s∈S∑k=0∑∞γk×Pr{s0→s,k,π}a∈A(s)∑∇π(a∣s)qπ(s,a)=s∈S∑γk×η(s)a∈A(s)∑∇π(a∣s)qπ(s,a)
将
s
s
s的出现概率
μ
(
s
)
mu(s)
μ(s)引入到公式中:
→
to
→ 乘以一个
∑
s
′
η
(
s
′
)
×
1
∑
s
′
η
(
s
′
)
sum_{s'} eta(s') times frac{1}{sum_{s'} eta(s')}
∑s′η(s′)×∑s′η(s′)1:
∇
J
(
θ
)
=
∇
V
π
(
s
0
)
=
∑
s
′
η
(
s
′
)
∑
s
∈
S
γ
k
×
η
(
s
)
∑
s
′
η
(
s
′
)
∑
a
∈
A
(
s
)
∇
π
(
a
∣
s
)
q
π
(
s
,
a
)
=
∑
s
′
η
(
s
′
)
∑
s
∈
S
γ
k
×
μ
(
s
)
∑
a
∈
A
(
s
)
∇
π
(
a
∣
s
)
q
π
(
s
,
a
)
begin{aligned} nabla mathcal J(theta) & = nabla V_pi(s_0) \ & = sum_{s'} eta(s') sum_{s in mathcal S} gamma^k times frac{eta(s)}{sum_{s'} eta(s')} sum_{a in mathcal A(s)} nabla pi(a mid s)q_pi(s,a)\ & = sum_{s'} eta(s') sum_{s in mathcal S} gamma^k times mu(s)sum_{a in mathcal A(s)} nabla pi(a mid s)q_pi(s,a) end{aligned}
∇J(θ)=∇Vπ(s0)=s′∑η(s′)s∈S∑γk×∑s′η(s′)η(s)a∈A(s)∑∇π(a∣s)qπ(s,a)=s′∑η(s′)s∈S∑γk×μ(s)a∈A(s)∑∇π(a∣s)qπ(s,a)
∑
s
′
η
(
s
′
)
sum_{s'} eta(s')
∑s′η(s′)是归一化因子,是常数,它只是影响梯度的具体数值,根据本节开头介绍,我们更加关注梯度方向,因此:
γ
gamma
γ在这里被
∝
propto
∝(正比于符号)包含在内;
∇
J
(
θ
)
∝
∑
s
∈
S
μ
(
s
)
∑
a
∈
A
(
s
)
∇
π
(
a
∣
s
)
q
π
(
s
,
a
)
nabla mathcal J(theta) propto sum_{s in mathcal S} mu(s)sum_{a in mathcal A(s)} nabla pi(a mid s)q_pi(s,a)
∇J(θ)∝s∈S∑μ(s)a∈A(s)∑∇π(a∣s)qπ(s,a)
至此,完成了求解目标函数梯度 ∇ J ( θ ) nabla mathcal J(theta) ∇J(θ)的全部推倒过程。下一节将介绍蒙特卡洛策略梯度方法(REINFORCE)。
相关参考:
【强化学习】策略梯度方法-策略梯度定理
深度强化学习原理、算法pytorch实战 —— 刘全,黄志刚编著
最后
以上就是能干羊为你收集整理的策略梯度方法介绍——策略梯度定理推导过程目录的全部内容,希望文章能够帮你解决策略梯度方法介绍——策略梯度定理推导过程目录所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复