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

参考链接:https://morvanzhou.github.io/tutorials/machine-learning/ML-intro/4-01-RL/
二、强化学习方法汇总
1. Model-free 中, 机器人只能按部就班, 一步一步等待真实世界的反馈, 再根据反馈采取下一步行动. 而 model-based, 他能通过想象来预判断接下来将要发生的所有情况. 然后选择这些想象情况中最好的那种. 并依据这种情况来采取下一步的策略。Model-based可以看作model-free的强化学习,它只是多了一道程序, 为真实世界建模。

2.基于概率是强化学习中最直接的一种, 他能通过感官分析所处的环境, 直接输出下一步要采取的各种动作的概率, 然后根据概率采取行动, 所以每种动作都有可能被选中, 只是可能性不同。 而基于价值的方法输出则是所有动作的价值, 选择最高价值的动作。 而基于概率的, 即使某个动作的概率最高, 但是还是不一定会选到他。
另外,对于选取连续的动作,基于价值的方法是无能为力的。
Actor-critic结合了两类方法的优点,actor 会基于概率做出动作, 而 critic 会对做出的动作给出动作的价值, 这样就在原有的 policy gradients 上加速了学习过程。

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

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

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

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


参考链接:https://morvanzhou.github.io/tutorials/machine-learning/ML-intro/4-03-q-learning/
四、Sarsa
Sarsa和Q Learning类似,只不过Sarsa的更新规则有点差别

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

参考链接:https://morvanzhou.github.io/tutorials/machine-learning/ML-intro/4-05-sarsa-lambda/
六、DQN (Deep Q Learning)
DQN结合了神经网络和Q Learning,它使用神经网络来生成Q值,而不是使用表来存储。

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

参考链接:https://morvanzhou.github.io/tutorials/machine-learning/ML-intro/4-06-DQN/
七、Policy Gradients
Policy Gradients策略梯度,与Q Learning不同,它不通过分析奖励值, 直接输出行为。所以它能够在一个连续区间内挑选动作, 而基于值的, 比如 Q-learning, 不适合在无穷多的动作中计算价值, 从而选择行为。
由于Policy Gradients直接输出行为,所以它没有“误差”一说。在做出行为后,它通过奖惩信息来决定是加强对当前输出行为的选择,还是进行削弱。(回合制,回合结束后才有奖惩信息)

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

https://morvanzhou.github.io/tutorials/machine-learning/ML-intro/4-08-AC/
九、Deep Deterministic Policy Gradient
DDPG与Actor-Critic类似,但是它使用了两个网络——估计网络和现实网络。

参考链接:https://morvanzhou.github.io/tutorials/machine-learning/ML-intro/4-09-DDPG/
十、 Asynchronous Advantage Actor-Critic (A3C)
A3C 是一种平行方式, 它采用的是Actor-Critic形式,使用并行的方式训练练多对,然后再将并行训练的这些Actor和Critic总结到一起,形成最终的一对 Actor 和 Critic。

参考链接: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/
网友评论