一、目标函数的选取(Metrics to define optimal policies)【2类】
有两类形式的目标函数/metrics:
- The average state value
- Average one-step reward
1、The average state value
2种常见表达形式:
v
ˉ
π
=
∑
s
∈
S
d
(
s
)
v
π
(
s
)
≐
E
[
∑
t
=
0
∞
γ
t
R
t
+
1
]
\begin{aligned} \bar{v}_{\pi}\:&=\sum_{s\in\mathcal{S}}d(s)v_{\pi}(s) \\[2ex] &\doteq\mathbb{E}\left[\sum_{t=0}^\infty\gamma^tR_{t+1}\right] \end{aligned}
vˉπ=s∈S∑d(s)vπ(s)≐E[t=0∑∞γtRt+1]
第一大类是the average state value, 或者简单地称为 average value。这个metric定义如下:
v
ˉ
π
=
∑
s
∈
S
d
(
s
)
v
π
(
s
)
\bar{v}_{\pi}\:=\sum_{s\in\mathcal{S}}d(s)v_{\pi}(s)
vˉπ=s∈S∑d(s)vπ(s)
- 其中 v ˉ π \bar{v}_\mathrm{\pi} vˉπ 是state values的加权平均;
- d ( s ) ≥ 0 d(s)≥0 d(s)≥0是对于状态 s s s的权重
- 因为
∑
s
∈
S
d
(
s
)
=
1
\sum_{s\in S}d(s)=1
∑s∈Sd(s)=1,我们可以将
d
(
s
)
d(s)
d(s) 解释为一个概率分布(probability distribution)。然后,这个melnic可以被写为
v ˉ π = E [ v π ( S ) ] \bar{v}_\pi=\mathbb{E}[v_\pi(S)] vˉπ=E[vπ(S)]
其中 S ∼ d S\sim d S∼d。
显然 v ˉ π \bar{v}_\mathrm{\pi} vˉπ 是策略 π \pi π 的函数,不同的策略 π \pi π 对应的它的值也不同,所以我们就可以去优化,找到一个最优的策略 π \pi π 让这个值达到最大,这个其实是非常自然的一个选择metric的一个方法。
Vector-product(向量内积)的形式:
v
ˉ
π
=
∑
s
∈
S
d
(
s
)
v
π
(
s
)
=
d
T
v
π
\bar{v}_\pi=\sum_{s\in\mathcal{S}}d(s)v_\pi(s)=d^Tv_\pi
vˉπ=s∈S∑d(s)vπ(s)=dTvπ
其中
- v π = [ . . . , v π ( s ) , . . . ] T ∈ R ∣ S ∣ v_\pi=[...,v_\pi(s),...]^T\in\mathbb{R}^{|\mathcal{S}|} vπ=[...,vπ(s),...]T∈R∣S∣ ,这里边的每一个元素 v π ( s ) v_\pi(s) vπ(s) 对应的就是 s s s 的state value;
- d = [ . . . , d ( s ) , . . . ] T ∈ R ∣ S ∣ d=[...,d(s),...]^T\in\mathbb{R}^{|\mathcal{S}|} d=[...,d(s),...]T∈R∣S∣,这里边的每一个元素 d ( s ) d(s) d(s) 对应的是状态 s s s 的权重或者是概率;
这种形式对于后面分析它的梯度是非常有帮助的。
如何选择分布 d d d ? 这里有两种情况:
- 第一种情况是
d
d
d 和策略
π
\pi
π 没什么关系。
- 这种情况相对简单,因为metric的gradient是容易计算的。如果这个 d d d 和 π π π 没有关系那我求 v π v_π vπ 的梯度的时候,这个 d d d 就不涉及到任何的梯度所以我会只求一个 v π v_π vπ的梯度(如果 d d d 和 π π π 有关系那我求 v π v_π vπ 梯度的时候,当然也要求这个 d d d 关于这个 π π π 的梯度,所以相对来说会麻烦一点)。
- 这种情况下,为了表明 d d d 和 π π π 没有关系,将 d d d写为 d 0 d_0 d0, v ˉ π \bar{v}_\pi vˉπ 写为 v ˉ π 0 \bar{v}_\pi^0 vˉπ0
- 如何选择
d
0
?
d_0?
d0?
- 一个简单的方式是平等地对待所有的states,即选择 d 0 ( s ) = 1 ∣ S ∣ d_0(s)=\cfrac{1}{|S|} d0(s)=∣S∣1,所以这个实际上是一个均匀分布。
- 另一个重要的情况是我们只对一个特定的state
s
0
s_{0}
s0感兴趣。例如,episodes在某些任务中总是从相同的state
s
0
s_{0}
s0 开始【比如说在一些游戏最开始的时候,它总是从那个画面开始,那个画面实际上就对应一个特定的状态
s
0
s_0
s0,那从那出发我希望我能够得到的reward是越大越好,在这种情况下我就不能对所有的状态都一视同仁了,那我可能要对一些状态有所偏好,那在这个极端情况下就是我只关心
s
0
s_{0}
s0,从
s
0
s_{0}
s0出发我所得到的 reward 越大越好】,然后,我们仅仅关注从
s
0
s_0
s0开始的long-term return。在这种情况下
d 0 ( s 0 ) = 1 d 0 ( s ≠ s 0 ) = 0 \begin{aligned} &d_0(s_0)=1\\ &d_0(s\neq s_0)=0 \end{aligned} d0(s0)=1d0(s=s0)=0
在这种情况下 v ˉ π \bar{v}_\pi vˉπ 也就变成了 v ˉ π 0 \bar{v}_\pi^0 vˉπ0,我去最大化这个 v ˉ π \bar{v}_\pi vˉπ,实际上就是最大化从 s 0 s_{0} s0出发我能得到多大的return。
- 第二种情况是
d
d
d 依赖于策略
π
π
π。
- 这是一种常见的选择,选择
d
d
d 为
d
π
(
s
)
d_\pi(s)
dπ(s), 即 stationany distribution under
π
\pi
π【简单来说就是我有一个策略,然后我跟随那个策略去不断地和环境进行交互,当我执行那个策略很多很多次之后我就可以预测在某一个状态就是agent在那个状态它的概率是多少,也就是那时候会逐渐达到一个平稳的状态,而且这个概率其实可以直接通过这个
d
π
T
P
π
=
d
π
T
d_\pi^TP_\pi=d_\pi^T
dπTPπ=dπT式子给计算出来】。
-
d
p
i
d_pi
dpi的一个基本性质是它满足
d π T P π = d π T d_\pi^TP_\pi=d_\pi^T dπTPπ=dπT
其中 P π P_\mathrm{\pi} Pπ是state transition probability matrix(状态转移矩阵)。
-
d
p
i
d_pi
dpi的一个基本性质是它满足
- 选择
d
π
d_{\pi}
dπ的解释:
- 如果一个state在long run中是frequently visited, 它是更重要的,应带给与更多权重;
- 如果一个state很少被visited,相应的它的权重自然少一些;
- 这是一种常见的选择,选择
d
d
d 为
d
π
(
s
)
d_\pi(s)
dπ(s), 即 stationany distribution under
π
\pi
π【简单来说就是我有一个策略,然后我跟随那个策略去不断地和环境进行交互,当我执行那个策略很多很多次之后我就可以预测在某一个状态就是agent在那个状态它的概率是多少,也就是那时候会逐渐达到一个平稳的状态,而且这个概率其实可以直接通过这个
d
π
T
P
π
=
d
π
T
d_\pi^TP_\pi=d_\pi^T
dπTPπ=dπT式子给计算出来】。
2、average one-step reward
2种常见表达形式:
r
ˉ
π
≐
∑
s
∈
S
d
π
(
s
)
r
π
(
s
)
≐
lim
n
→
∞
1
n
E
[
∑
k
=
1
n
R
t
+
k
]
\begin{aligned} \bar{r}_{\pi}&\doteq\sum_{s\in\mathcal{S}}d_{\pi}\left(s\right)r_{\pi}\left(s\right) \\[4ex] &\doteq\lim_{n\to\infty}\frac{1}{n}\mathbb{E}\left[\sum_{k=1}^{n}R_{t+k}\right] \\[4ex] \end{aligned}
rˉπ≐s∈S∑dπ(s)rπ(s)≐n→∞limn1E[k=1∑nRt+k]
第二大类是average one-step reward, 或者简称为 average reward.具体地
′
_{\prime}
′ the metrics是
r
ˉ
π
≐
∑
s
∈
S
d
π
(
s
)
r
π
(
s
)
=
E
[
r
π
(
S
)
]
\color{red}{ \bar{r}_{\pi}\doteq\sum_{s\in\mathcal{S}}d_{\pi}\left(s\right)r_{\pi}\left(s\right)=\mathbb{E}[r_{\pi}\left(S\right)]}
rˉπ≐s∈S∑dπ(s)rπ(s)=E[rπ(S)]
其中:
- d π ( s ) d_π(s) dπ(s) 是 s s s 所对应的权重,它实际上是stationary distribution,它是依赖于这个策略 π π π 的;
- S ∼ d π S\sim d_{\pi} S∼dπ。
-
r
π
≐
∑
a
∈
A
π
(
a
∣
s
)
r
(
s
,
a
)
\begin{aligned}r_\pi\doteq\sum_{a\in\mathcal{A}}\pi(a|s)r(s,a)\end{aligned}
rπ≐a∈A∑π(a∣s)r(s,a) 是从
s
s
s 出发我所得到的单步的immediate reward的一个平均值, 并且
r ( s , a ) = E [ R ∣ s , a ] = ∑ r r p ( r ∣ s , a ) r(s,a)=\mathbb{E}[R|s,a]=\sum_rrp(r|s,a) r(s,a)=E[R∣s,a]=r∑rp(r∣s,a)
正如它的名称所暗示的, r ˉ π \bar{r}_\pi rˉπ 是 one-step immediate reward的一个加权平均值( r ˉ π \bar{r}_\pi rˉπ 上面这条横线也是代表一个平均的意思)。
上面average reward的第二种形式:
- 假设一个agent沿着一个给定的policy,生成一个trajectory,它的rewards是 ( R t + 1 , R t + 2 , . . . ) (R_{t+1},R_{t+2},...) (Rt+1,Rt+2,...);
- 沿着trajectony的average single-step reward是
lim n → ∞ 1 n E [ R t + 1 + R t + 2 + ⋯ + R t + n ∣ S t = s 0 ] = lim n → ∞ 1 n E [ ∑ k = 1 n R t + k ∣ S t = s 0 ] \begin{aligned} &\begin{aligned}\lim_{n\to\infty}\frac1n\mathbb{E}\Big[R_{t+1}+R_{t+2}+\cdots+R_{t+n}|S_t=s_0\Big]\end{aligned}=\lim_{n\to\infty}\frac1n\mathbb{E}\left[\sum_{k=1}^nR_{t+k}|S_t=s_0\right] \end{aligned} n→∞limn1E[Rt+1+Rt+2+⋯+Rt+n∣St=s0]=n→∞limn1E[k=1∑nRt+k∣St=s0]
其中 s 0 s_0 s0 是the starting state of the trajectory。
上面的形式还可以继续改写为:
lim
n
→
∞
1
n
E
[
∑
k
=
1
n
R
t
+
k
∣
S
t
=
s
0
]
=
lim
n
→
∞
1
n
E
[
∑
k
=
1
n
R
t
+
k
]
=
∑
s
d
π
(
s
)
r
π
(
s
)
=
r
ˉ
π
\begin{aligned} \lim_{n\to\infty}\frac{1}{n}\mathbb{E}\left[\sum_{k=1}^nR_{t+k}|S_t=s_0\right]&=\color{red}{\lim_{n\to\infty}\frac{1}{n}\mathbb{E}\left[\sum_{k=1}^{n}R_{t+k}\right]}\\ &=\sum_sd_\pi(s)r_\pi(s) \\ &=\bar{r}_{\pi} \end{aligned}
n→∞limn1E[k=1∑nRt+k∣St=s0]=n→∞limn1E[k=1∑nRt+k]=s∑dπ(s)rπ(s)=rˉπ
大家看
s
0
s_0
s0 没有了 为什么呢?因为
s
0
s_0
s0 不起作用 就是你跑了无穷多步之后,你最开始从哪开始的其实已经不再重要了。
注意:
- 当n趋近于无穷的时候,starting state s 0 s_{0} s0 已经不重要了。
- 这两个关于 r ˉ π \bar{r}_\pi rˉπ 的等式是相等的。
这个式子是大家在论文当中你可能会经常看到的一个式子。
3、Remarks
对上面两个metrics强调几点:
- Remark1
- 这些 metrics 都是策略 π \pi π 的函数;
- 因为策略 π \pi π是由 θ \theta θ进行参数化的,因此这些metric是 θ \theta θ的函数;
- 换句话说,不同的 θ \theta θ 可以生成不同的metric values;
- 因此,我们可以搜索最优的 θ \theta θ 进而最大化这些metrics;
- Remark2
- 这些metrics是具有复杂性的,分为两种情况,第一种是 discounted case, 其中 γ ∈ [ 0 , 1 ) \gamma\in[0,1) γ∈[0,1);另一种情况是 undiscounted case 其中 γ = 1 \gamma=1 γ=1。
- 这里我们仅仅考虑the discounted case.
- Remark3
- 直观上, r ˉ π \bar{r}_\pi rˉπ 是short-sighted,因为它很少考虑the immediate rewards, 而 v ˉ π \bar{v}_\pi vˉπ考虑 the total reward overall steps。【 × \color{red}{×} ×】
- 然而,事实上这两个metrics是等价的,具体地,在discounted case, 当
γ
<
1
\gamma<1
γ<1,有
r ˉ π = ( 1 − γ ) v ˉ π \bar{r}_\pi\:=\:(1-\gamma)\bar{v}_\pi rˉπ=(1−γ)vˉπ
4、练习(目标函数的另一种形式)
回答: 首先,分析和理解这样一个metric。
- 它从 S 0 ∼ d S_0\sim d S0∼d 开始,然后 A 0 , R 1 , S 1 , A 1 , R 2 , S 2 , . . . . . . A_0,R_1,S_1,A_1,R_2,S_2,...... A0,R1,S1,A1,R2,S2,......
- A t ∼ π ( S t ) A_t\sim\pi(S_t) At∼π(St),并且 R t + 1 , S t + 1 ∼ p ( R t + 1 ∣ S t , A t ) R_{t+1},S_{t+1}\sim p(R_{t+1}|S_t,A_t) Rt+1,St+1∼p(Rt+1∣St,At), p ( S t + 1 ∣ S t , A t ) p(S_{t+1}|S_t,A_t) p(St+1∣St,At)
然后,我们知道这个metric和average value相同,因为
J
(
θ
)
=
E
[
∑
t
=
0
∞
γ
t
R
t
+
1
]
=
∑
s
∈
S
d
(
s
)
E
[
∑
t
=
0
∞
γ
t
R
t
+
1
∣
S
0
=
s
]
=
∑
s
∈
S
d
(
s
)
v
π
(
s
)
=
v
ˉ
π
\begin{aligned} J(\theta) =\mathbb{E}\left[\sum_{t=0}^\infty\gamma^tR_{t+1}\right] &=\sum_{s\in\mathcal{S}}d(s)\mathbb{E}\left[\sum_{t=0}^\infty\gamma^tR_{t+1}|S_0=s\right]\\ &=\sum_{s\in\mathcal{S}}d(s)v_{\pi}(s) \\ &=\bar{v}_{\pi} \end{aligned}
J(θ)=E[t=0∑∞γtRt+1]=s∈S∑d(s)E[t=0∑∞γtRt+1∣S0=s]=s∈S∑d(s)vπ(s)=vˉπ
二、目标函数的梯度(Gradients of the metrics)
给定一个metric,然后
- 推导它的梯度
- 然后,应用gradient-based methods去优化这个metric。
gradient的计算是policy gradient methods中最复杂的计算部分!
- 首先,我们需要区分不同的目标函数/metrics:
- v ˉ π = ∑ s ∈ S d ( s ) v π ( s ) ≐ E [ ∑ t = 0 ∞ γ t R t + 1 ] \begin{aligned}\bar{v}_{\pi}\:&=\sum_{s\in\mathcal{S}}d(s)v_{\pi}(s)\doteq\mathbb{E}\left[\sum_{t=0}^\infty\gamma^tR_{t+1}\right] \end{aligned} vˉπ=s∈S∑d(s)vπ(s)≐E[t=0∑∞γtRt+1]
- v ˉ π 0 \bar{v}_\pi^0 vˉπ0;
- r ˉ π ≐ ∑ s ∈ S d π ( s ) r π ( s ) ≐ lim n → ∞ 1 n E [ ∑ k = 1 n R t + k ] \begin{aligned}\bar{r}_{\pi}\doteq\sum_{s\in\mathcal{S}}d_{\pi}\left(s\right)r_{\pi}\left(s\right) \doteq\lim_{n\to\infty}\frac{1}{n}\mathbb{E}\left[\sum_{k=1}^{n}R_{t+k}\right] \\[4ex]\end{aligned} rˉπ≐s∈S∑dπ(s)rπ(s)≐n→∞limn1E[k=1∑nRt+k]
- 第二,我们需要区分 the discounted 和 undiscounted cases
Gradients/梯度的统一表示形式:
∇
θ
J
(
θ
)
=
∑
s
∈
S
η
(
s
)
∑
a
∈
A
∇
θ
π
(
a
∣
s
,
θ
)
q
π
(
s
,
a
)
\color{red}{ \nabla_\theta J(\theta)=\sum_{s\in\mathcal{S}}\eta(s)\sum_{a\in\mathcal{A}}\nabla_\theta\pi(a|s,\theta)q_\pi(s,a)}
∇θJ(θ)=s∈S∑η(s)a∈A∑∇θπ(a∣s,θ)qπ(s,a)
其中
- 目标函数
J
(
θ
)
J(\theta)
J(θ)可以是:
- v ˉ π = ∑ s ∈ S d ( s ) v π ( s ) ≐ E [ ∑ t = 0 ∞ γ t R t + 1 ] \begin{aligned}\bar{v}_{\pi}\:&=\sum_{s\in\mathcal{S}}d(s)v_{\pi}(s)\doteq\mathbb{E}\left[\sum_{t=0}^\infty\gamma^tR_{t+1}\right] \end{aligned} vˉπ=s∈S∑d(s)vπ(s)≐E[t=0∑∞γtRt+1]
- v ˉ π 0 \bar{v}_\pi^0 vˉπ0;
- r ˉ π ≐ ∑ s ∈ S d π ( s ) r π ( s ) ≐ lim n → ∞ 1 n E [ ∑ k = 1 n R t + k ] \begin{aligned}\bar{r}_{\pi}\doteq\sum_{s\in\mathcal{S}}d_{\pi}\left(s\right)r_{\pi}\left(s\right) \doteq\lim_{n\to\infty}\frac{1}{n}\mathbb{E}\left[\sum_{k=1}^{n}R_{t+k}\right] \\[4ex]\end{aligned} rˉπ≐s∈S∑dπ(s)rπ(s)≐n→∞limn1E[k=1∑nRt+k]
- = = = 可以表示严格相等(=),近似(≈)或者成比例等于(∝);
- ∑ s ∈ S \begin{aligned}\sum_{s\in\mathcal{S}}\end{aligned} s∈S∑:表示对 s s s 求和;
- η \eta η 是一个在states下的分布或者权重,每一个state有一个权重 η ( s ) \eta(s) η(s); η \eta η 对于不同的目标函数在不同的情况下它会呈现出来不同的distribution;
-
∑
a
∈
A
∇
θ
π
(
a
∣
s
,
θ
)
q
π
(
s
,
a
)
\begin{aligned}\sum_{a\in\mathcal{A}}\nabla_\theta\pi(a|s,\theta)q_\pi(s,a)\end{aligned}
a∈A∑∇θπ(a∣s,θ)qπ(s,a):表示每一个 state
s
s
s 对应的所有的 action 的
∇
θ
π
(
a
∣
s
,
θ
)
q
π
(
s
,
a
)
\nabla_\theta\pi(a|s,\theta)q_\pi(s,a)
∇θπ(a∣s,θ)qπ(s,a) 的加和;
- ∇ θ π ( a ∣ s , θ ) \nabla_\theta\pi(a|s,\theta) ∇θπ(a∣s,θ):表示策略 π π π 的梯度;
- q π ( s , a ) q_\pi(s,a) qπ(s,a):表示 ( s , a ) (s,a) (s,a) 的action value;
总而言之,所有这些情况求出来的gradient
是大同小异,所以就用这一个式子来表示出来了。对于绝大多数的同学来说这个式子就够了,除非是你需要去研究创新新的算法,那你可以到书里面去看详细的内容。
分别对于
r
ˉ
π
\bar{r}_{\pi}
rˉπ、
v
ˉ
π
\bar{v}_{\pi}
vˉπ、
v
ˉ
π
0
\bar{v}_\pi^0
vˉπ0,我们可以分别得到以下梯度公式(Details are not given here. Interested readers can read my book):
∇
θ
r
ˉ
π
≃
∑
s
d
π
(
s
)
∑
a
∇
θ
π
(
a
∣
s
,
θ
)
q
π
(
s
,
a
)
,
∇
θ
v
ˉ
π
=
1
1
−
γ
∇
θ
r
ˉ
π
∇
θ
v
ˉ
π
0
=
∑
s
∈
S
ρ
π
(
s
)
∑
a
∈
A
∇
θ
π
(
a
∣
s
,
θ
)
q
π
(
s
,
a
)
\color{red}{ \begin{aligned} &\nabla_\theta\bar{r}_\pi \simeq\sum_sd_\pi(s)\sum_a\nabla_\theta\pi(a|s,\theta)q_\pi(s,a), \\[2ex] &\nabla_\theta\bar{v}_\pi=\frac1{1-\gamma}\nabla_\theta\bar{r}_\pi \\[2ex] &\nabla_\theta\bar{v}_\pi^0 =\sum_{s\in\mathcal{S}}\rho_\pi(s)\sum_{a\in\mathcal{A}}\nabla_\theta\pi(a|s,\theta)q_\pi(s,a) \end{aligned}}
∇θrˉπ≃s∑dπ(s)a∑∇θπ(a∣s,θ)qπ(s,a),∇θvˉπ=1−γ1∇θrˉπ∇θvˉπ0=s∈S∑ρπ(s)a∈A∑∇θπ(a∣s,θ)qπ(s,a)
1、梯度公式的分析
梯度/Gradient
∇
θ
J
(
θ
)
=
∑
s
∈
S
η
(
s
)
∑
a
∈
A
∇
θ
π
(
a
∣
s
,
θ
)
q
π
(
s
,
a
)
\nabla_\theta J(\theta)=\sum_{s\in\mathcal{S}}\eta(s)\sum_{a\in\mathcal{A}}\nabla_\theta\pi(a|s,\theta)q_\pi(s,a)
∇θJ(θ)=s∈S∑η(s)a∈A∑∇θπ(a∣s,θ)qπ(s,a)
可以写成一个这样紧凑且有用的形式:
∇ θ J ( θ ) = ∑ s ∈ S η ( s ) ∑ a ∈ A ∇ θ π ( a ∣ s , θ ) q π ( s , a ) = E [ ∇ θ ln π ( A ∣ S , θ ) q π ( S , A ) ] \begin{aligned} \nabla_\theta J(\theta)&=\sum_{s\in\mathcal{S}}\eta(s)\sum_{a\in\mathcal{A}}\nabla_\theta\pi(a|s,\theta)q_\pi(s,a) \\[4ex] &\color{red}{=\mathbb{E}[\nabla_\theta\ln\pi(A|S,\theta)q_\pi(S,A)]} \\ \end{aligned} ∇θJ(θ)=s∈S∑η(s)a∈A∑∇θπ(a∣s,θ)qπ(s,a)=E[∇θlnπ(A∣S,θ)qπ(S,A)]
其中: S ∼ η S\sim\eta S∼η, A ∼ π ( A ∣ S , θ ) A\thicksim\pi(A|S,\theta) A∼π(A∣S,θ)。
- 把所有的 ∑ ∑ ∑ 全都去掉写成一个期望/Expectation的形式: E [ ] \mathbb{E}[] E[],
- 这里边的
S
S
S、
A
A
A 都是是随机变量,
S
∼
η
S\sim\eta
S∼η,
A
∼
π
(
A
∣
S
,
θ
)
A\thicksim\pi(A|S,\theta)
A∼π(A∣S,θ)。
- S S S 是满足 η η η 的分布;
- A A A是满足 π ( A ∣ S , θ ) \pi(A|S,\theta) π(A∣S,θ) 的这样一个分布;
为什么需要 ∇ θ J ( θ ) = E [ ∇ θ ln π ( A ∣ S , θ ) q π ( S , A ) ] \color{red}{\nabla_\theta J(\theta)=\mathbb{E}[\nabla_\theta\ln\pi(A|S,\theta)q_\pi(S,A)]} ∇θJ(θ)=E[∇θlnπ(A∣S,θ)qπ(S,A)] 这样的表达式? 就是因为这是一个真实的梯度,这个真实的梯度当中含有期望/Expectation,但是我不知道期望/Expectation,所以我就可以用采样来近似这个期望/Expectation。这个就是stochastic gradient descent或者是ascent的基本的思路。
使用采样的方式去近似梯度
∇
θ
J
(
θ
)
=
E
[
∇
θ
ln
π
(
A
∣
S
,
θ
)
q
π
(
S
,
A
)
]
\nabla_\theta J(\theta)=\mathbb{E}[\nabla_\theta\ln\pi(A|S,\theta)q_\pi(S,A)]
∇θJ(θ)=E[∇θlnπ(A∣S,θ)qπ(S,A)]:
∇
θ
J
≈
∇
θ
ln
π
(
a
∣
s
,
θ
)
q
π
(
s
,
a
)
\nabla_\theta J\approx\nabla_\theta\ln\pi(a|s,\theta)q_\pi(s,a)
∇θJ≈∇θlnπ(a∣s,θ)qπ(s,a)
2、梯度公式期望/Expectation形式的证明
如何根据
∇ θ J ( θ ) = ∑ s ∈ S η ( s ) ∑ a ∈ A ∇ θ π ( a ∣ s , θ ) q π ( s , a ) \begin{aligned} \nabla_\theta J(\theta)&=\sum_{s\in\mathcal{S}}\eta(s)\sum_{a\in\mathcal{A}}\nabla_\theta\pi(a|s,\theta)q_\pi(s,a) \\[4ex] \end{aligned} ∇θJ(θ)=s∈S∑η(s)a∈A∑∇θπ(a∣s,θ)qπ(s,a)
得到下面梯度的Expectation形式呢:
∇ θ J ( θ ) = E [ ∇ θ ln π ( A ∣ S , θ ) q π ( S , A ) ] \begin{aligned} \nabla_\theta J(\theta)&\color{red}{=\mathbb{E}[\nabla_\theta\ln\pi(A|S,\theta)q_\pi(S,A)]} \\ \end{aligned} ∇θJ(θ)=E[∇θlnπ(A∣S,θ)qπ(S,A)]
证明:
∵
∵
∵
∇
θ
ln
π
(
a
∣
s
,
θ
)
=
∇
θ
π
(
a
∣
s
,
θ
)
π
(
a
∣
s
,
θ
)
\nabla_\theta\:\ln\pi(a|s,\theta)=\frac{\nabla_\theta\:\pi(a|s,\theta)}{\pi(a|s,\theta)}
∇θlnπ(a∣s,θ)=π(a∣s,θ)∇θπ(a∣s,θ)
∴
∴
∴
∇
θ
π
(
a
∣
s
,
θ
)
=
π
(
a
∣
s
,
θ
)
∇
θ
ln
π
(
a
∣
s
,
θ
)
\nabla_\theta\pi(a|s,\theta)=\pi(a|s,\theta)\nabla_\theta\:\ln\pi(a|s,\theta)
∇θπ(a∣s,θ)=π(a∣s,θ)∇θlnπ(a∣s,θ)
为什么要做这样替换呢?就是因为它能够写成 Expectation 的形式。我们接下来看一下:
∵
∵
∵
∇
θ
r
ˉ
π
≃
∑
s
d
π
(
s
)
∑
a
∇
θ
π
(
a
∣
s
,
θ
)
q
π
(
s
,
a
)
,
\begin{aligned} \nabla_\theta\bar{r}_\pi \simeq\sum_sd_\pi(s)\sum_a\nabla_\theta\pi(a|s,\theta)q_\pi(s,a), \\[2ex] \end{aligned}
∇θrˉπ≃s∑dπ(s)a∑∇θπ(a∣s,θ)qπ(s,a),
∴
∴
∴
∇
θ
J
=
∑
s
d
(
s
)
∑
a
∇
θ
π
(
a
∣
s
,
θ
)
q
π
(
s
,
a
)
=
∑
s
d
(
s
)
∑
a
π
(
a
∣
s
,
θ
)
∇
θ
ln
π
(
a
∣
s
,
θ
)
q
π
(
s
,
a
)
\begin{aligned} \nabla_\theta J&=\sum_sd(s)\sum_a\nabla_\theta\pi(a|s,\theta)q_\pi(s,a) \\[2ex] &=\sum_sd(s)\sum_a\color{red}{\pi(a|s,\theta)\nabla_\theta\ln\pi(a|s,\theta)}\color{black}{q_\pi(s,a)} \\[2ex] \end{aligned}
∇θJ=s∑d(s)a∑∇θπ(a∣s,θ)qπ(s,a)=s∑d(s)a∑π(a∣s,θ)∇θlnπ(a∣s,θ)qπ(s,a)
首先我们把前面
∑
s
d
(
s
)
\begin{aligned}\sum_sd(s)\end{aligned}
s∑d(s) 这个求和写成了Expectation 的形式,得到:
∇ θ J = ∑ s d ( s ) ∑ a ∇ θ π ( a ∣ s , θ ) q π ( s , a ) = ∑ s d ( s ) ∑ a π ( a ∣ s , θ ) ∇ θ ln π ( a ∣ s , θ ) q π ( s , a ) = E S ∼ d [ ∑ a π ( a ∣ S , θ ) ∇ θ ln π ( a ∣ S , θ ) q π ( S , a ) ] \begin{aligned} \nabla_\theta J&=\sum_sd(s)\sum_a\nabla_\theta\pi(a|s,\theta)q_\pi(s,a) \\[2ex] &=\sum_sd(s)\sum_a\color{red}{\pi(a|s,\theta)\nabla_\theta\ln\pi(a|s,\theta)}\color{black}{q_\pi(s,a)} \\[2ex] &=\mathbb{E}_{\color{red}{S}\sim d}\left[\sum_a\pi(a|S,\theta)\nabla_\theta\ln\pi(a|S,\theta)q_\pi(S,a)\right] \\[2ex] \end{aligned} ∇θJ=s∑d(s)a∑∇θπ(a∣s,θ)qπ(s,a)=s∑d(s)a∑π(a∣s,θ)∇θlnπ(a∣s,θ)qπ(s,a)=ES∼d[a∑π(a∣S,θ)∇θlnπ(a∣S,θ)qπ(S,a)]
其中 S S S 满足 d d d 的分布。
接下啦,再把 ∑ a π ( a ∣ S , θ ) \begin{aligned}\sum_a\pi(a|S,\theta)\end{aligned} a∑π(a∣S,θ) 这个求和写成了Expectation 的形式,得到:
∇
θ
J
=
∑
s
d
(
s
)
∑
a
∇
θ
π
(
a
∣
s
,
θ
)
q
π
(
s
,
a
)
=
∑
s
d
(
s
)
∑
a
π
(
a
∣
s
,
θ
)
∇
θ
ln
π
(
a
∣
s
,
θ
)
q
π
(
s
,
a
)
=
E
S
∼
d
[
∑
a
π
(
a
∣
S
,
θ
)
∇
θ
ln
π
(
a
∣
S
,
θ
)
q
π
(
S
,
a
)
]
=
E
S
∼
d
,
A
∼
π
[
∇
θ
ln
π
(
A
∣
S
,
θ
)
q
π
(
S
,
A
)
]
\begin{aligned} \nabla_\theta J&=\sum_sd(s)\sum_a\nabla_\theta\pi(a|s,\theta)q_\pi(s,a) \\[2ex] &=\sum_sd(s)\sum_a\color{red}{\pi(a|s,\theta)\nabla_\theta\ln\pi(a|s,\theta)}\color{black}{q_\pi(s,a)} \\[2ex] &=\mathbb{E}_{\color{red}{S}\sim d}\left[\sum_a\pi(a|S,\theta)\nabla_\theta\ln\pi(a|S,\theta)q_\pi(S,a)\right] \\[2ex] &=\mathbb{E}_{S\boldsymbol{\sim}d,\color{red}{A}\boldsymbol{\sim}\boldsymbol{\pi}}\left[\nabla_\theta\ln\pi(A|S,\theta)q_\pi(S,A)\right] \end{aligned}
∇θJ=s∑d(s)a∑∇θπ(a∣s,θ)qπ(s,a)=s∑d(s)a∑π(a∣s,θ)∇θlnπ(a∣s,θ)qπ(s,a)=ES∼d[a∑π(a∣S,θ)∇θlnπ(a∣S,θ)qπ(S,a)]=ES∼d,A∼π[∇θlnπ(A∣S,θ)qπ(S,A)]
其中
A
A
A 满足
π
π
π 的分布。省略下标
S
∼
d
,
A
∼
π
{S}\boldsymbol{\sim}\boldsymbol{d},{A}\boldsymbol{\sim}\boldsymbol{\pi}
S∼d,A∼π,得到如下式子:
∇ θ J = ∑ s d ( s ) ∑ a ∇ θ π ( a ∣ s , θ ) q π ( s , a ) = ∑ s d ( s ) ∑ a π ( a ∣ s , θ ) ∇ θ ln π ( a ∣ s , θ ) q π ( s , a ) = E S ∼ d [ ∑ a π ( a ∣ S , θ ) ∇ θ ln π ( a ∣ S , θ ) q π ( S , a ) ] = E S ∼ d , A ∼ π [ ∇ θ ln π ( A ∣ S , θ ) q π ( S , A ) ] ≐ E [ ∇ θ ln π ( A ∣ S , θ ) q π ( S , A ) ] \begin{aligned} \nabla_\theta J&=\sum_sd(s)\sum_a\nabla_\theta\pi(a|s,\theta)q_\pi(s,a) \\[2ex] &=\sum_sd(s)\sum_a\color{red}{\pi(a|s,\theta)\nabla_\theta\ln\pi(a|s,\theta)}\color{black}{q_\pi(s,a)} \\[2ex] &=\mathbb{E}_{\color{red}{S}\sim d}\left[\sum_a\pi(a|S,\theta)\nabla_\theta\ln\pi(a|S,\theta)q_\pi(S,a)\right] \\[2ex] &=\mathbb{E}_{S\boldsymbol{\sim}d,\color{red}{A}\boldsymbol{\sim}\boldsymbol{\pi}}\left[\nabla_\theta\ln\pi(A|S,\theta)q_\pi(S,A)\right] \\[2ex] &\doteq\mathbb{E}\left[\nabla_\theta\ln\pi(A|S,\theta)q_\pi(S,A)\right] \end{aligned} ∇θJ=s∑d(s)a∑∇θπ(a∣s,θ)qπ(s,a)=s∑d(s)a∑π(a∣s,θ)∇θlnπ(a∣s,θ)qπ(s,a)=ES∼d[a∑π(a∣S,θ)∇θlnπ(a∣S,θ)qπ(S,a)]=ES∼d,A∼π[∇θlnπ(A∣S,θ)qπ(S,A)]≐E[∇θlnπ(A∣S,θ)qπ(S,A)]
一些补充说明:
因为我们需要计算 ln π ( a ∣ s , θ ) \ln\pi(a|s,\theta) lnπ(a∣s,θ),我们必须确保对于所有 s , a , θ s,a,\theta s,a,θ,满足: π ( a ∣ s , θ ) > 0 \pi(a|s,\theta)>0 π(a∣s,θ)>0,可以通过以下手段达到这一目的:
-
通过使用softmax function来满足这一要求,它能将 ( − ∞ , + ∞ ) (-\infty,+\infty) (−∞,+∞)的向量实体归一化到(0,1);
-
例如,对于任意向量 x = [ x 1 , . . . , x n ] T x=[x_1,...,x_n]^T x=[x1,...,xn]T,
z i = e x i ∑ j = 1 n e x j z_i=\frac{e^{x_i}}{\sum_{j=1}^ne^{x_j}} zi=∑j=1nexjexi
其中 z i ∈ ( 0 , 1 ) z_i\in(0,1) zi∈(0,1),并且 ∑ i = 1 n z i = 1 \sum_{i=1}^nz_i=1 ∑i=1nzi=1。 -
然后,有了softmax函数,就可以写出policy function, 如下:
π ( a ∣ s , θ ) = e h ( s , a , θ ) ∑ a ′ ∈ A e h ( s , a ′ , θ ) \pi(a|s,\theta)=\frac{e^{h(s,a,\theta)}}{\sum_{a^{\prime}\in\mathcal{A}}e^{h(s,a^{\prime},\theta)}} π(a∣s,θ)=∑a′∈Aeh(s,a′,θ)eh(s,a,θ)
其中 h ( s , a , θ ) h(s,a,\theta) h(s,a,θ) 是另一个函数。
需要强调的几点:
- 基于 softmax 函数的这种形式可以通过神经网络实现,其输入是
s
s
s,参数是
θ
θ
θ。该网络具有
∣
A
∣
|\mathcal{A}|
∣A∣ 个输出,每个输出对应于动作
a
a
a 的
π
(
a
∣
s
,
θ
)
π(a|s, θ)
π(a∣s,θ)。输出层的激活函数应该是 softmax。
- 由于对于所有的 a a a, π ( a ∣ s , θ ) > 0 π(a|s, θ) > 0 π(a∣s,θ)>0,参数化的策略是随机的,因此具有探索性质。
- 也存在确定性策略梯度(DPG)方法。
参考资料:
强化学习导论(十三)- 策略梯度法