强化学习学习笔记

1、强化学习的基本概念
agent environment 交互
agent输出action
environment反馈reward
state environment的反应

强化学习和监督学习的区别在于,监督学习是认知,强化学习是决策。
监督学习的样本事独立同分布的,强化学习的样本是序列决策数据

基于模型:动态规划

无模型:
按学习目标分类可分为
Value-based
求解每个状态的价值,向价值高的状态走
确定性策略:Sarsa Q-learning DQN
Policy-based
随机性策略

2、Value-based
MDP 马尔科夫决策过程<S,A,P,R>状态、动作、状态转移概率、奖励

Q:状态动作价值,当采取什么样的动作时,未来会获得一个怎样的收益
目标导向:未来的总收益
但以股票为例,比如十年后会有一次大涨大跌,这样考虑很不合理,所以可以引入衰减因子,让后面的收益淡化。

用下一状态的Q值更新这一状态的Q值,强化学习中的每一步都会在变

TD 时序差分
在这里插入图片描述
MC使用一个完整的episode去更新值函数,因此它需要从StSt到Terminal state的完整样本。
而TD只需要下一个

软更新:每次更新只更新一点点
SARSA:
St,At,Rt+1,St+1,At+1

SARSA和Q-learning的区别:
Q-learning更为大胆,SARSA更为保守。Q-learning没有下一步的action
SARSA:on-policy
Q-leaning: off-policy

3、DQN:
用一个函数近似Q表格
经验回放:解决样本关联性和利用效率
固定Q目标:算法非平稳
其将系统探索环境得到的数据储存起来,然后随机采样样本更新深度神经网络的参数。

由于agent与环境交互得到的训练样本并不是独立同分布的,为了解决这一问题DQN引入了经验回放机制。利用一个回放以往经验信息的buffer,将过去的experience和目前的experience混合,降低了数据相关性。并且,经验回放还使得样本可重用,从而提高学习效率。

4、DDPG:
PG-DPG-DDPG
Policy-Gradient得到每一步的概率
Deterministic Policy Gradient 每一步的行为被直接确定

DDPG:
Actor是策略网络,做动作选择(空间探索)

Critic是值函数,对策略函数进行评估

请问on-policy跟off-policy的区别是什么?
on-policy:生成样本的policy(value function)跟网络更新参数时使用的policy(value function)相同。典型为SARAS算法,基于当前的policy直接执行一次动作选择,然后用这个样本更新当前的policy,因此生成样本的policy和学习时的policy相同,算法为on-policy算法。该方法会遭遇探索-利用的矛盾,光利用目前已知的最优选择,可能学不到最优解,收敛到局部最优,而加入探索又降低了学习效率。epsilon-greedy 算法是这种矛盾下的折衷。优点是直接了当,速度快,劣势是不一定找到最优策略。

请简述下PPO算法。其与TRPO算法有何关系呢?
PPO算法的提出:旨在借鉴TRPO算法,使用一阶优化,在采样效率、算法表现,以及实现和调试的复杂度之间取得了新的平衡。这是因为PPO会在每一次迭代中尝试计算新的策略,让损失函数最小化,并且保证每一次新计算出的策略能够和原策略相差不大。具体来说,在避免使用important sampling时由于在 θ \thetaθ 下的 p θ \theta θ (at | st)跟 在 θ ′ \theta’θ

下的 p θ ’ \theta’ θ (at | st)差太多,导致important sampling结果偏差较大而采取的算法。、

DQN算法,为了方便收敛使用了经验回放的技巧。那么我们的Actor-Critic是不是也可以使用经验回放的技巧呢?当然可以!不过A3C更进一步,还克服了一些经验回放的问题。经验回放有什么问题呢? 回放池经验数据相关性太强,用于训练的时候效果很可能不佳。举个例子,我们学习下棋,总是和同一个人下,期望能提高棋艺。这当然没有问题,但是到一定程度就再难提高了,此时最好的方法是另寻高手切磋。

A3C的思路也是如此,它利用多线程的方法,同时在多个线程里面分别和环境进行交互学习,每个线程都把学习的成果汇总起来,整理保存在一个公共的地方。并且,定期从公共的地方把大家的齐心学习的成果拿回来,指导自己和环境后面的学习交互。

通过这种方法,A3C避免了经验回放相关性过强的问题,同时做到了异步并发的学习模型。

PPO:AC网络、KL散度来限制步长

策略梯度的方法取得好的结果存在着一些难度,因为这类方法对迭代步骤数(步长)非常敏感:如果选得太小,训练过程就会慢得令人绝望;如果选得太大,反馈信号就会淹没在噪声中,甚至有可能让模型表现雪崩式地下降。这类方法的采样效率也经常很低,学习简单的任务就需要百万级至十亿级的总迭代次数。

所谓合适的步长是指当策略更新后,回报函数的值不能更差。如何选择这个步长?或者说,如何找到新的策略使得新的回报函数的值单调增,或单调不减。TRPO的核心就是解决不好确定 Learning rate (或者 Step size) 的问题。

TRPO的做法是将新的策略所对应的回报函数分解成旧的策略所对应的回报函数+其他项。只要新的策略所对应的其他项大于等于零,那么新的策略就能保证回报函数单调不减。

https://blog.csdn.net/qq_44766883/article/details/112982236?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_title~default-0.no_search_link&spm=1001.2101.3001.4242

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值