2018-08-03 强化学习

论坛 期权论坛 脚本     
匿名技术用户   2020-12-22 15:17   14   0

一、强化学习

强化学习包含多种算法,比如有通过行为的价值来选取特定行为的方法, 包括使用表格学习的 q learning, sarsa, 使用神经网络学习的 deep q network, 还有直接输出行为的 policy gradients, 又或者了解所处的环境, 想象出一个虚拟的环境并从虚拟的环境中学习 等等.

7130128-6bbf1ad7ef628428.png


参考链接:https://morvanzhou.github.io/tutorials/machine-learning/ML-intro/4-01-RL/

二、强化学习方法汇总

1. Model-free 中, 机器人只能按部就班, 一步一步等待真实世界的反馈, 再根据反馈采取下一步行动. 而 model-based, 他能通过想象来预判断接下来将要发生的所有情况. 然后选择这些想象情况中最好的那种. 并依据这种情况来采取下一步的策略。Model-based可以看作model-free的强化学习,它只是多了一道程序, 为真实世界建模。

7130128-b06407cd623f039b.png

2.基于概率是强化学习中最直接的一种, 他能通过感官分析所处的环境, 直接输出下一步要采取的各种动作的概率, 然后根据概率采取行动, 所以每种动作都有可能被选中, 只是可能性不同。 而基于价值的方法输出则是所有动作的价值, 选择最高价值的动作。 而基于概率的, 即使某个动作的概率最高, 但是还是不一定会选到他。

另外,对于选取连续的动作,基于价值的方法是无能为力的。

Actor-critic结合了两类方法的优点,actor 会基于概率做出动作, 而 critic 会对做出的动作给出动作的价值, 这样就在原有的 policy gradients 上加速了学习过程。

7130128-31268fd8c79ef05a.png

3. 回合更新指的是开始后, 要等待结束, 然后再总结这一回合中的所有转折点, 再更新的行为准则.。而单步更新则是在进行中每一步都在更新, 不用等待结束。因为单步更新更有效率, 所以现在大多方法都是基于单步更新. 比如有的强化学习问题并不属于回合问题。

7130128-86a4051102f95b96.png

4. 在线学习, 就是指我必须本人在场, 并且一定是本人边玩边学习, 而离线学习是你可以选择自己玩, 也可以选择看着别人玩, 通过看别人玩来学习别人的行为准则, 离线学习 同样是从过往的经验中学习, 但是这些过往的经历没必要是自己的经历, 任何人的经历都能被学习. 或者我也不必要边玩边学习, 我可以白天先存储下来玩耍时的记忆, 然后晚上通过离线学习来学习白天的记忆。

7130128-05c7f2fcb98f0acd.png

三、Q Learning

Q Learning可以看作一个决策过程,它根据 Q 表来选取最大的那个来对当前行为进行决策。

7130128-50912efb41c817f6.png

Q Learning通过如下规则更新Q表。

7130128-48721b3e6a51f6d2.png

7130128-0cd78060d425f7a4.png


参考链接:https://morvanzhou.github.io/tutorials/machine-learning/ML-intro/4-03-q-learning/

四、Sarsa

Sarsa和Q Learning类似,只不过Sarsa的更新规则有点差别

7130128-3433332312f98250.png

五、Sarsa(lambda)

lambda是一个动作影响力随距离衰变的参数,取值在0到1之间。Sarsa其实是Sarsa(0)。

7130128-071b48d534734b26.png


参考链接:https://morvanzhou.github.io/tutorials/machine-learning/ML-intro/4-05-sarsa-lambda/

六、DQN (Deep Q Learning)

DQN结合了神经网络和Q Learning,它使用神经网络来生成Q值,而不是使用表来存储。

7130128-2951bad141f642a5.png

DQN 有一个记忆库用于学习之前的经历,每次 DQN 更新的时候, 可以随机抽取一些之前的经历进行学习。随机抽取这种做法打乱了经历之间的相关性, 也使得神经网络更新更有效率。Fixed Q-targets 也是一种打乱相关性的机理, 如果使用 fixed Q-targets, 我们就会在 DQN 中使用到两个结构相同但参数不同的神经网络, 预测 Q 估计 的神经网络具备最新的参数, 而预测 Q 现实 的神经网络使用的参数则是很久以前的.

7130128-206d71201267c3fd.png


参考链接:https://morvanzhou.github.io/tutorials/machine-learning/ML-intro/4-06-DQN/

七、Policy Gradients

Policy Gradients策略梯度,与Q Learning不同,它不通过分析奖励值, 直接输出行为。所以它能够在一个连续区间内挑选动作, 而基于值的, 比如 Q-learning, 不适合在无穷多的动作中计算价值, 从而选择行为。

由于Policy Gradients直接输出行为,所以它没有“误差”一说。在做出行为后,它通过奖惩信息来决定是加强对当前输出行为的选择,还是进行削弱。(回合制,回合结束后才有奖惩信息)

7130128-b81b5ac92b127ca5.png


参考链接:https://morvanzhou.github.io/tutorials/machine-learning/ML-intro/4-07-PG/

八、Actor Critic

可以把这里的Actor看作policy gradient,critic看作Q learning。Actor负责决策,做出行为,然后由critic对actor的行为进行评价。Critic 通过学习环境和奖励之间的关系, 能看到现在所处状态的潜在奖励, 所以用它来指点 Actor 便能使 Actor 每一步都在更新, 如果使用单纯的 Policy Gradients, Actor 只能等到回合结束才能开始更新。

Actor-Critic 涉及到了两个神经网络, 而且每次都是在连续状态中更新参数, 每次参数更新前后都存在相关性, 导致神经网络只能片面的看待问题, 甚至导致神经网络学不到东西。

7130128-59081bd744007c69.png


https://morvanzhou.github.io/tutorials/machine-learning/ML-intro/4-08-AC/

九、Deep Deterministic Policy Gradient

DDPG与Actor-Critic类似,但是它使用了两个网络——估计网络和现实网络。

7130128-ff1cdaaae244d79a.png


参考链接:https://morvanzhou.github.io/tutorials/machine-learning/ML-intro/4-09-DDPG/

十、 Asynchronous Advantage Actor-Critic (A3C)

A3C 是一种平行方式, 它采用的是Actor-Critic形式,使用并行的方式训练练多对,然后再将并行训练的这些Actor和Critic总结到一起,形成最终的一对 Actor 和 Critic。

7130128-d3b96fdf79ecd98c.png


参考链接:https://morvanzhou.github.io/tutorials/machine-learning/ML-intro/4-10-A3C/

十一、 AlphaGo Zero 为什么更厉害?

参考链接:https://morvanzhou.github.io/tutorials/machine-learning/ML-intro/4-11-AlphaGo-zero/

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP