1 策略(policy):
策略是智能体的动作模型,它决定了智能体的动作。它其实是一个函数,用于把输入的状态变成动作。智能体会用策略来选取下一步的动作:
策略可以分为两种:
2 策略函数
上一篇文章DQN讲到最优动作价值函数
Q
∗
(
s
,
a
)
Q_∗(s,a)
Q∗(s,a)可以用来做控制,显然策略函数
π
(
a
∣
s
)
\pi(a|s)
π(a∣s)也可以用来做控制.
基于价值的深度强化学习:DQN
然后就会有下面的问题:
3 目标函数
策略函数可以作为actor与环境交互,形成轨迹
τ
\tau
τ
给定策略网络的参数
θ
\theta
θ,就可以计算某个轨迹
τ
\tau
τ 发生的概率为:
在交互的过程中还会产生奖励:
对于一条完整的轨迹𝜏的奖励𝑅(𝜏):
显然轨迹
τ
\tau
τ的分布服从
p
θ
(
τ
)
p_\theta(\tau)
pθ(τ),既然
R
(
τ
)
R(\tau)
R(τ)是一个随机变量,那么其期望:
显然,我们希望
R
‾
θ
\overline{R}_\theta
Rθ越大越好,所以目标函数是:
m
a
x
R
‾
θ
max \quad \overline{R}_\theta
maxRθ
4 求梯度
需要用到梯度上升来进行参数更新:
接下来的问题就是怎么计算目标函数的梯度的问题:
将前面
p
θ
(
τ
)
p_\theta(\tau)
pθ(τ)的公式带入
∇
l
o
g
p
θ
(
τ
)
\nabla log p_\theta(\tau)
∇logpθ(τ)得到:
从
p
θ
(
τ
)
p_\theta(\tau)
pθ(τ)中采样N个轨迹
τ
\tau
τ(这个过程其实就是基于当前策略网络𝜋(𝑎|𝑠;𝜃)与环境交互,获取N条轨迹):
把前面的串起来就是:
对此进行一个直观解释就是:
5 基于策略的深度强化学习算法1
基于上面的内容,形成初步的基于策略的强化学习算法:
6 优势函数
上面的算法的其中一个问题在于调节粒度太粗了:对于同一条轨迹,肯定有的动作好,有的动作坏。但是如果按照上面的算法,同一条轨迹内的
R
(
τ
n
)
R(\tau^n)
R(τn)是一样的,导致不管是好的还是坏的动作都统一增加概率或者减小概率。
所以我们希望
R
(
τ
n
)
R(\tau^n)
R(τn)是和状态与动作相关的,而不是整条轨迹,我们把这个可以记作
A
(
s
t
,
a
t
)
A(s_t,a_t)
A(st,at),把他称之为优势函数。如果这个优势函数带参数,可以写作
A
ω
(
s
t
,
a
t
)
A^\omega (s_t,a_t)
Aω(st,at)
优势函数的意义是,假设我们在某一个状态
s
t
s_t
st 执行某一个动作
a
t
a_t
at ,相较于其他可能的动作,
a
t
a_t
at 有多好。