什么是强化学习?
由于实验需求,本人需要补充一点关于强化学习的知识,特记录强化学习之路的知识点,以便来日需要之用。(以下内容仅是本人的一点粗鄙见解,仅供参考,如需深入,建议阅读顶会论文及相关综述)
强化学习 算是机器学习大家族中现在比较热门的一支了,常应用在广告、推荐系统、游戏等场景中,并具有非常不错的训练效果。与传统的监督学习和非监督学习不同的是,强化学习是在不清楚环境的情况下,通过一步步的试错,从错误中学习来不断纠正自己的行为。这就好比我们的成长过程(当然前提是对这个世界一无所知的情况下),我们无法预知我们的行为会给我们带来什么样的后果,也没有过来人的建议以及可供参考的经历,只能自己不断的去探索,并从自己的历史探索中不断学习、不断纠正自己的错误,进而达到自己的目标。
具体的学习过程就是:
通过一次次在环境中的尝试,获取数据和标签,然后在学习哪些数据能够对应哪些数据,通过学习到的这些规律,尽可能的选择带来高分的行为。
强化学习方法分类
- 通过价值选择
- 使用表格学习:Q learning、Sarsa
- 使用神经网络学习:Deep Q Network
- 直接选行为:Policy Gradients
- 想象环境并从中学习:Model Based RL
强化学习方法的其他分类
1、Model-free和Model-based
model就是用模型来表示上述提到的环境。
- Modelfree:不尝试去理解环境,环境给了我们什么就是什么,从环境中得到反馈然后从中学习。Q learning、Sarsa、Policy Gradients等。
- Modelbased:通过过往的经验,先理解真实世界是怎么样的,并建立一个模型来模拟现实世界的反馈,不仅可以在真实世界中动作,也可以在虚拟环境中动作。能够通过想象来预判接下来将要发生的所有情况,然后选择这些想象情况中最好的那种,并依据这种情况来采取下一步的策略。
2、基于概率和基于价值
- 基于概率:通过感官分析所处的环境,直接输出下一步要采取的各种动作的概率,然后根据概率采取行动,所以每种动作都有可能被选中,只是可能性不同。Policy Gradients等。
- 基于价值:输出所有动作的价值,根据最高价值来选择动作。Q learning、Sarsa等。(对于选取连续的动作,基于价值的方法是无能为力的)
3、回合更新和单步更新(想象强化学习就是在玩游戏)
- 回合更新:游戏开始后,等待游戏结束,然后再总结这一回合中的所有转折点,再更新我们的行为准则。Monte-carlo learning和基础版的policy gradients。
- 单步更新:在游戏进行中每一步都在更新,不用等待游戏的结束。Q learning、Sarsa和升级版的policy gradients等。(单步更新效率更高)
4、在线学习和离线学习
- 在线学习:必须本人在场,并且一定是本人边玩边学习。Sarsa、Sarsa lambda等
- 离线学习:同样是从过往经验中学习,但这些过往经历没必要是自己的经历,任何人的经历都能被学习,或者可以白天先存储下来玩的记忆,然后晚上通过离线学习来学习白天的记忆。Q learning等。
希望以上一些简单的记录能够帮助大家理解强化学习的概念以及强化学习的一些主流算法,由于时间有限,下一篇将介绍强化学习的第一个算法Q learning。
参考文献:
https://mofanpy.com/tutorials/machine-learning/reinforcement-learning/