强化学习算法总结 3
8 策略梯度
**基于价值:**Q-learning 是处理有限状态的,而DQN可以解决连续状态的问题
通过对值函数的学习,学习值函数,然后根据值函数导出一定的策略
**基于策略:**通过显式去学习策略
8.1 策略梯度
策略学习的目标函数:
是一个在线的算法,必须使用当前策略,采集到的数据来更新梯度
输入一个状态,输出是一个动作的概率分布:寻找一个最有策略,并且最大化这个策略的回报
J
(
θ
)
=
E
s
[
V
π
(
s
)
]
J(\theta) = E_s[V^\pi(s)]
J(θ)=Es[Vπ(s)]
8.2 REINFORCE
收集整条序列的策略轨迹,然后使用MC进行更新
p
o
l
i
c
y
n
e
t
:
f
o
r
i
i
n
r
a
n
g
e
(序列个数):
采样
从最后向前计算
M
C
回报
更新参数
policy\ net:\\ \\ for\ i\ in\ range(序列个数):\\ 采样\\ 从最后向前计算MC回报\\ 更新参数\\
policy net:for i in range(序列个数):采样从最后向前计算MC回报更新参数
9. actor-critic
梯度 g = E [ ∑ t = 0 T ψ t ∇ θ l o g ( π ( a ∣ s ) ) ] ψ t 可以是很多形式: Q ,轨迹回报, b a s e l i n e , A d v a n t a g e f u n c t i o n , T D _ e r r o r ( 价值函数 ) 梯度\\ g = E[\sum^T_{t=0}\psi_t\nabla_\theta log(\pi(a|s))] \\ \psi_t可以是很多形式:Q,轨迹回报,baseline,Advantage\ function ,TD\_error(价值函数) 梯度g=E[t=0∑Tψt∇θlog(π(a∣s))]ψt可以是很多形式:Q,轨迹回报,baseline,Advantage function,TD_error(价值函数)
10 TRPO &PPO
**TRPO:**对于ac沿着梯度进行更新,这种方法可能会让收敛效果变差,所以在旧策略的小范围内进行更新。
**PPO:**对于TRPO的复杂情况,这里1:把KLD加到了策略梯度里面。2:截断