本文主要是记录一下个人学习RL的总结,梳理了常见的RL方法,同时也尝试区分了一些常见的概念。如有错误之处,欢迎批评指正,不胜感激。
强化学习
- 要解决的问题:序列决策问题。
- 特点:环境的状态转换受到环境规则和智能体动作的影响,智能体通过学习后,执行策略能够取得较好收益。
- 基本概念,原理:马尔可夫决策过程、贝尔曼方程。
- 两类强化学习方法:value、policy based。
value-based
该方法通常是估计动作价值
Q
(
s
,
a
)
Q(s,a)
Q(s,a) 。其隐含的策略是采用更高动作价值的动作。
常见的方案:
- DQN:使用神经网络来拟合 Q ( s , a ) Q(s,a) Q(s,a)。这样我们就不需要一个状态动作表格了,可以处理连续状态的问题。
- Double DQN:采用两个 Q Q Q 网络 ,避免单个网络对于价值的过高估计,可以看作是实现上的优化。
policy-based
显式地学习一个动作策略。
g
r
a
d
=
E
[
∑
t
T
ψ
∇
θ
log
π
θ
(
a
t
∣
s
t
)
]
grad=E[\sum_t^T{\psi\nabla_{\theta} \log\pi_{\theta(a_t|s_t)}}]
grad=E[t∑Tψ∇θlogπθ(at∣st)]
常见的方案:
- REINFORCE:on-policy算法。通过蒙特卡洛方法估计序列的 Q ( s , a ) Q(s,a) Q(s,a) 然后对现有的策略 π θ \pi_{\theta} πθ 进行梯度上升。
- Actor-Critic:优化带参数的策略,同时也学习一个价值函数,价值函数用来辅助策略的学习。
- 在REINFORCE中轨迹回报项是通过采样的方式获得。在Actor-Critic框架中,这项回报更加灵活,可以使用:
- 轨迹的总回报
- 执行t时刻动作 a t a_t at 后的回报
- 基于基线的回报改进
- 使用不断学习的动作价值函数
- TPRO(2015):信任区域策略优化。解决训练不稳定的问题。
- PPO(2017): Proximal Policy Optimization。基于TPRO的思想,但是计算量减少,是值得优先考虑的算法。
- SAC:Soft Actor-Critic。损失函数中引进了一个自动调整熵正则项。我们知道策略的熵值高表示策略的随机性强,具有更好的探索能力。同时在熵值过高的时候,该项会调整策略训练更加专注于价值提升。
- 在REINFORCE中轨迹回报项是通过采样的方式获得。在Actor-Critic框架中,这项回报更加灵活,可以使用:
常见问题:
- on-policy or off:这是两种不同的学习方式。on-policy算法——使用当前策略采集到的数据计算梯度并且更新策略。off-policy 算法则是行为策略和目标策略可以不同,更加灵活,但是引入了估计偏差。
- online or offline:两者都基于智能体和环境的交互并且获得反馈数据。两者的区别是:在线策略直接使用反馈数据,离线策略先将反馈数据存入buffer,需要时再采样。离线算法对超参数敏感,难调参。
- model-based or model-free:model指的是环境的模型,是否对环境模型进行建模。如果对环境进行建模,那么我们将能够清楚知道执行每个动作之后的下个状态,甚至能够观察到整条episode。上述提到的value、policy based,都是model-free的方案,不对环境进行建模。