强化学习:Actor-CriticSPGDDPGMADDPG
Posted Hellsegamosken
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了强化学习:Actor-CriticSPGDDPGMADDPG相关的知识,希望对你有一定的参考价值。
马尔可夫决策过程(MDP)
MDP 由元组
(
S
,
A
,
P
,
R
,
γ
)
(S, A, P, R, \\gamma)
(S,A,P,R,γ) 描述,分别表示有限状态集、有限动作集、状态转移概率、回报函数、折扣因子 。与马尔可夫过程不同,MDP的状态转移概率是包含动作的,即
P
s
s
′
a
=
P
[
S
t
+
1
=
s
′
∣
s
t
=
s
,
A
t
=
a
]
P_ss'^a = P[S_t+1 = s' | s_t = s, A_t = a]
Pss′a=P[St+1=s′∣st=s,At=a]
强化学习的目标是给定一个MDP,寻找最优策略,即每个状态动作的概率分布
π
\\pi
π。
累计回报在状态 s 处的期望定义为状态-值函数
v
(
s
)
=
E
[
∑
k
=
0
∞
γ
k
R
t
+
k
+
1
∣
S
t
=
s
]
v(s) = E[\\sum_k=0^\\infty\\gamma^k R_t+k+1|S_t = s]
v(s)=E[k=0∑∞γkRt+k+1∣St=s]
这里衰减因子
γ
\\gamma
γ 的道理是我们认为距离当前动作越远的将来发生的事情和这个动作的关系越小。类似的,状态-行为值函数定义为
q
(
s
,
a
)
=
E
[
∑
k
=
0
∞
γ
k
R
t
+
k
+
1
∣
S
t
=
s
,
A
t
=
a
]
q(s,a) = E[\\sum_k=0^\\infty\\gamma^k R_t+k+1|S_t = s,A_t = a]
q(s,a)=E[k=0∑∞γkRt+k+1∣St=s,At=a]
可以分别得到其贝尔曼方程:
v
(
s
)
=
E
[
R
t
+
1
∣
S
t
=
s
]
+
γ
E
[
v
(
S
t
+
1
)
∣
S
t
=
s
]
q
(
s
,
a
)
=
E
[
R
t
+
1
∣
S
t
=
s
,
A
t
=
a
]
+
γ
E
[
q
(
S
t
+
1
,
A
t
+
1
)
∣
S
t
=
s
,
A
t
=
a
]
v(s) = E[R_t+1|S_t=s] + \\gamma E[v(S_t+1) | S_t = s]\\\\ q(s,a) = E[R_t+1|S_t=s, A_t=a] + \\gamma E[q(S_t+1,A_t+1) | S_t = s, A_t = a]
v(s)=E[Rt+1∣St=s]+γE[v(St+1)∣St=s]q(s,a)=E[Rt+1∣St=s,At=a]+γE[q(St+1,At+1)∣St=s,At=a]
Importance Sampling
蒙特卡洛积分中,如果在 f ( x ) f(x) f(x) 对积分贡献大的区域进行相对密集的采样,可以在采样数不变的情况下增加准确度,减少方差。
换句话说,如果我们对 x 的采样本身就满足一个分布 p ( x ) p(x) p(x),那么 p ( x ) p(x) p(x) 和 f ( x ) f(x) f(x) 越接近,统计量的方差就越小。
蒙特卡洛积分与重要性采样详解 - 烈日行者 - 博客园 (cnblogs.com)
Stochastic Policy Gradient(SPG)
一种基于策略的算法,不依赖价值函数。输入状态,输出动作的概率分布。对于策略 π θ \\pi_\\theta πθ,枚举一轮完整的游戏轨迹 τ \\tau τ,计算期望奖励(省略 θ \\theta θ 下标):
R ‾ = ∑ τ R ( τ ) p ( τ ) \\overlineR=\\sum_\\tau R(\\tau)p(\\tau) R=τ∑R(τ)p(τ)
对
θ
\\theta
θ 求梯度:
∇
R
‾
=
∑
τ
R
(
τ
)
∇
p
(
τ
)
=
∑
τ
R
(
τ
)
p
(
τ
)
∇
log
p
(
τ
)
=
E
τ
∼
p
(
τ
)
[
R
(
τ
)
∇
log
p
(
τ
)
]
=
1
N
∑
n
=
1
N
R
(
τ
n
)
∇
log
p
(
τ
n
)
=
1
N
∑
n
=
1
N
R
(
τ
n
)
∑
t
=
1
T
n
∇
log
p
(
a
t
n
∣
s
t
n
)
\\beginaligned \\nabla \\overlineR&=\\sum_\\tau R(\\tau)\\nabla p(\\tau)\\\\ &=\\sum_\\tau R(\\tau)p(\\tau)\\nabla\\log p(\\tau)\\\\ &=E_\\tau\\sim p(\\tau)[R(\\tau)\\nabla\\log p(\\tau)]\\\\ &=\\frac 1N\\sum_n=1^N R(\\tau^n)\\nabla\\log p(\\tau^n)\\\\ &=\\frac 1N\\sum_n=1^NR(\\tau^n)\\sum_t=1^T_n\\nabla\\log p(a_t^n|s_t^n) \\endaligned
∇R=τ∑R(τ)∇p(τ)=τ∑R(τ)p(τ)∇logp(τ)=Eτ∼p(τ)[R(τ)∇logp(τ)]=N1n=1∑NR(τn)∇logp(τn)=N1n=1∑NR(τn)t=1∑强化学习⚠️手把手带你走进强化学习 1⚠️ 强化学习简介