【强化学习】简介

什么是强化学习

是让计算机从不会到会,不断尝试,从错误中学习达到目标的方法,更新自己的行为准则,最终达到学习的目的。

强化学习的分数导向性

理解为在电脑中有一个老师在为行为打分,有一类行为会被打高分,有一类会被打低分,类似于在监督学习中的正确标签,而不同点在于,监督学习是已知数据和数据对应的标签,由此得出规律性结论,而强化学习需要通过一次次在环境中的尝试,获取这些数据和标签,然后通过学习,做出得到高分的行为。

常用算法分类

通过价值选行为:

  • Q Learning
  • Sarsa
  • Deep Q Network

直接选行为:

  • Policy Gradients

想象环境并从中学习:

  • Model based RL

学习方法汇总

是否理解环境

将所有的强化学习方法分为是否理解环境:不理解环境(Model-Free RL)和理解环境(Model-Based RL)

不理解环境的算法包括:Q Learning,Sarsa,Policy Gradients。都是从环境中得到反馈,从而学习。需要等待现实环境给出的反馈,再根据反馈进行下一步的行动。

理解环境的算法包括:比不理解环境的算法多了一个步骤:为现实环境建模。通过建模预判断接下来可能发生的所有情况,然后选择最好的那一种,并根据这种情况来采取下一步的策略。(alpha go)

基于概率/价值

基于概率(Policy-Based RL)和基于价值(Value-Based RL)

基于概率:用感官分析所处的环境,直接输出下一步所采取的各种行为的概率,然后根据概率采取行动。每一种行为都可能被选中,只是可能性不同。算法有:Policy Gradients

基于价值:输出所有行为的价值,选取价值最高者。算法有:Q Learning,Sarsa。

当动作为连续动作时,不能使用基于价值的算法,而应该采用基于概率的算法。

这两种算法结合起来,可以形成一种新的算法:Actor-Critic。即Actor基于概率做出动作,然后Critic负责评估Actor的表现,并指导Actor下一阶段的动作。这种算法在原有的Policy Gradients算法基础上加速了学习过程。

回合/单步更新

回合更新(Monte-Carlo update)和单步更新(Temporal-Difference update)

老师的图画的不错,截来用。

捕获

单步更新指在游戏过程中的每一步都在更新。

我的理解是,回合更新是在一轮训练结束之后,更新行为准则,而单步更新就是边训练边更新。

回合更新的算法包括:基础版 Policy Gradients,Monte-Carlo Learning。

单步更新的算法包括:Q Learning,Sarsa,升级版 Policy Gradients。

在线/离线学习

在线学习指先产生一个模型,并在把这个模型放入实际操作中,而不需要在一开始就提供完整的的训练数据集,随着更多的实时数据到达,模型会在操作中不断地更新。

离线学习要求所有的训练数据在模型训练期间必须是可用的。只有训练完成了之后,模型才能被拿来用。简而言之,先训练,再用模型,不训练完就不用模型。

在线学习算法包括:Sarsa

离线学习算法包括:Q Learning,Deep Q Network。

Author: iwannaeat
Link: https://iwannaeat.github.io/2020/11/26/【强化学习】简介/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.