Policy Network (策略网络)
我们无法知道策略函数
π
\pi
π所以要做函数近似,求一个近似的策略函数
使用策略网络
π
(
a
∣
s
;
θ
)
\pi(a|s;\theta)
π(a∣s;θ) 去近似策略函数
π
(
a
∣
s
)
\pi(a|s)
π(a∣s)
∑
a
∈
A
π
(
a
∣
s
;
θ
)
=
1
\sum_{a\in A} \pi(a|s;\theta) = 1
∑a∈Aπ(a∣s;θ)=1
动作空间A的大小是多少,输出向量的维度就是多少。
策略学习的目标函数
状态价值函数(State-value function)
V
π
(
s
t
)
=
E
A
[
Q
π
(
s
t
,
A
)
]
=
∑
a
π
(
a
∣
s
t
)
⋅
Q
π
(
s
t
,
a
)
V_\pi(s_t)=E_A[Q_\pi(s_t,A)] = \sum_a\pi(a|s_t)\cdot Q_\pi(s_t,a)
Vπ(st)=EA[Qπ(st,A)]=∑aπ(a∣st)⋅Qπ(st,a)
对A求期望,去掉A的影响
用策略网络
π
(
a
∣
s
t
;
θ
)
\pi(a|s_t;\theta)
π(a∣st;θ) 去近似策略函数
π
(
a
∣
s
t
)
\pi(a|s_t)
π(a∣st)
V
π
(
s
t
;
θ
)
=
E
A
[
Q
π
(
s
t
,
A
)
]
=
∑
a
π
(
a
∣
s
t
;
θ
)
⋅
Q
π
(
s
t
,
a
)
V_\pi(s_t;\theta)=E_A[Q_\pi(s_t,A)] = \sum_a\pi(a|s_t;\theta)\cdot Q_\pi(s_t,a)
Vπ(st;θ)=EA[Qπ(st,A)]=∑aπ(a∣st;θ)⋅Qπ(st,a)
近似状态价值既依赖于当前状态
s
t
s_t
st,也依赖于策略网络
π
\pi
π的参数
θ
\theta
θ
如果一个策略很好,那么状态价值函数的近似
V
π
(
s
;
θ
)
V_\pi(s;\theta)
Vπ(s;θ)的均值应当很大。因此我们定义目标函数:
J
(
θ
)
=
E
S
[
V
π
(
s
;
θ
)
]
J(\theta)=E_S[V_\pi(s;\theta)]
J(θ)=ES[Vπ(s;θ)]
目标函数
J
(
θ
)
J(\theta)
J(θ) 排除了状态
S
S
S的因素,只依赖于策略网络
π
\pi
π的参数
θ
\theta
θ。策略越好,则
J
(
θ
)
J(\theta)
J(θ) 越大,所以策略学习可以被看作是这样一个优化问题:
m
a
x
θ
J
(
θ
)
\mathop{max}_{\theta}J(\theta)
maxθJ(θ)
通过学习参数
θ
\theta
θ ,使得目标函数
J
(
θ
)
J(\theta)
J(θ)
越来越大,也就意味着策略网络越来越好。
使用策略梯度上升更新
θ
\theta
θ ,使得
J
(
θ
)
J(\theta)
J(θ)增大。
设当前策略网络的参数为
θ
\theta
θ,做梯度上升更新参数,得到新的参数
θ
′
\theta'
θ′,
β
\beta
β为学习率
θ
′
=
θ
+
β
⋅
∂
V
(
s
;
θ
)
∂
θ
\theta' =\theta+\beta \cdot \frac{\mathrm{\partial}V(s;\theta)}{\mathrm{\partial}\theta}
θ′=θ+β⋅∂θ∂V(s;θ)
策略梯度(Policy Gradient)
∂
V
(
s
;
θ
)
∂
θ
\frac{\mathrm{\partial}V(s;\theta)}{\mathrm{\partial}\theta}
∂θ∂V(s;θ)大概推导 不严谨 实际上
Q
π
Q_\pi
Qπ中也有
θ
\theta
θ要求导
使用策略梯度更新策略网络
算法:
1、在
t
t
t时刻观测到状态
s
t
s_t
st
2、根据策略网络
π
(
.
∣
s
t
;
θ
)
\pi(.|s_t;\theta)
π(.∣st;θ)随机抽样一个动作
a
t
a_t
at
3、计算动作价值
q
t
≈
Q
π
(
s
t
,
a
t
)
q_t \approx Q_\pi(s_t,a_t)
qt≈Qπ(st,at)
4、计算策略网络关于参数
θ
\theta
θ的微分
d
θ
=
∂
l
n
π
(
a
∣
s
;
θ
)
∂
θ
∣
θ
=
θ
t
d\theta = \frac{\mathrm{\partial}ln\pi(a|s;\theta)}{\mathrm{\partial}\theta}|_{\theta=\theta_t}
dθ=∂θ∂lnπ(a∣s;θ)∣θ=θt
5、计算近似策略梯度
g
(
a
t
,
θ
t
)
=
q
t
,
d
θ
g(a_t,\theta_t)=q_t,d\theta
g(at,θt)=qt,dθ
6、更新策略网络:
θ
t
+
1
=
θ
t
+
β
⋅
g
(
a
t
,
θ
t
)
\theta_{t+1}=\theta_t+\beta \cdot g(a_t,\theta_t)
θt+1=θt+β⋅g(at,θt)
在第 3 步中,怎么计算
q
t
q_t
qt?
在后面章节中,我们用两种方法对
Q
π
(
s
,
a
)
Q_\pi(s,a)
Qπ(s,a) 做近似。
1、REINFORCE 算法
用实际观测的回报
u
u
u近似
Q
π
(
s
,
a
)
Q_\pi(s,a)
Qπ(s,a)。
2、actor-critic 算法
用神经网络
q
(
s
,
a
;
w
)
q(s,a;w)
q(s,a;w)近似
Q
π
(
s
,
a
)
Q_\pi(s,a)
Qπ(s,a)。
所以想要近似求得 π \pi π函数 还要近似求得 Q π Q_\pi Qπ函数