zoukankan      html  css  js  c++  java
  • 强化学习入门笔记系列——基本概念整理总结

    本系列是针对于DataWhale学习小组的笔记,从一个对统计学和机器学习理论基础薄弱的初学者角度出发,在小组学习资料的基础上,由浅入深地对知识进行总结和整理,今后有了新的理解可能还会不断完善。由于水平实在有限,不免产生谬误,欢迎读者多多批评指正。如需要转载请与博主联系,谢谢

    强化学习概论和基础概念


    什么是强化学习?

    个人理解,强化学习就是决策体agent通过探索(explore)和收获奖励(reward),来优化其在环境environment中面对不同状态时选择最优动作(action)的决策能力。

    强化学习如何进行?

    决策体首先从环境中获取当前状态,并根据已有的策略选择一个动作执行,当前状态和采取的动作会输出到环境中,以此下一步的状态和一个奖励。决策体的最终目的是尽可能多地收集奖励,在此期间它将依据具体的算法不断修正自己的策略,以使得自己在当前状态下选择的动作尽可能多地给自己带来奖励。

    强化学习与监督学习的区别?

    1. 强化学习的输入一般为时间序列,数据之间并不符合独立同分布的原则。
    2. 强化学习的环境并不会给予agent关于策略和动作好坏的直接标签,而是仅依靠行动收获的奖励作为引导,来帮助其自身获得更好的策略。在训练过程中,强化学习需要平衡exploration和exploitation的关系,这两个可以看做学习的风格,前者exploration(探索)代表应对当前状态时尝试新的未知的动作,以期获得更高的奖赏,发现更好的策略;后者exploitation(开发)指应对当前状态时采取之前已有的最优策略来行动,较为稳妥地获得一定的奖励。通常我们一开始选择较高的exploration比例以尽可能广泛地探索未知的环境,随着训练进行,我们会让exploitation的比例逐渐提高,有助于策略的稳定性和整体性能的提升。
    3. 强化学习通常缺乏明确的监督,收获的奖励可能无法直接告知agent当前动作是否正确,而且有时会存在延迟奖励等情况,对agent的学习过程带来比较大的挑战。

    强化学习算法如何区分model-based和model-free?

    之后的内容中会提到,马尔科夫决策过程(MDP)可由一个五元组来表示<S,A,P,R,γ>,如果这些变量完全明确和已知,则模型就是确定性的,可以通过一些规划算法直接求解。但在应用场景中我们通常并不清楚其中的一些量,如状态转移函数P(s'|s,a)——代表已知当前状态s和动作a后状态转移至s'的概率(由于s'可能性很多,因此一般表示为概率矩阵),或奖励函数R(s,a)——在状态s下执行a动作的奖励。
    由于上述情况,强化学习在解决这类问题时有两类方案,一是基于模型的方法(model-based),即对真实环境进行建模,构建近似的状态转移函数来指导算法优化;二是无模型的方法(model-free),即纯粹依靠数据驱动,通过数据来构建价值函数等形式引导决策,包括值迭代、策略迭代及actor-critic等类型的方法都属于model-free,该类方法有更好的泛化性能,但对数据的利用率较低,所需训练量较大。

    如何区分值迭代和策略迭代的算法?

    值迭代算法不会直接指定决策的策略,而是维护一个与状态有关的价值函数(如Q-Learning中该函数以表格形式表示),通过不断更新价值函数来引导agent选择当前最优的动作;策略迭代是agent直接指定动作策略并根据策略进行操作,强化学习算法中会根据累计奖励最大化的原则直接优化此策略。而Actor-Critic则是将两者结合起来,同时评估策略和价值。

    什么是深度强化学习?

    利用深度神经网络对强化学习中的状态S、价值函数Q或策略π等进行特征表示,以实现对高维输入或复杂策略空间的优化处理。实际上是将深度学习的感知能力和强化学习的决策能力相结合来解决更复杂的问题。

    参考资料:

    1. DataWhale组队学习资料——《强化学习》 王琦 杨毅远 江季 著
    2. 强化学习(二):马尔科夫决策过程(Markov decision process) https://blog.csdn.net/liweibin1994/article/details/79079884
  • 相关阅读:
    Servlet的数据库访问
    Servlet 网页重定向
    Intellij idea创建javaWeb以及Servlet简单实现
    Tomcat
    QQ简易版
    单例
    centos7 jdk安装
    centos7 allure安装
    centos中执行apt-get命令提示apt-get command not found
    centos mysql使用踩过的坑
  • 原文地址:https://www.cnblogs.com/liugd-2020/p/13848814.html
Copyright © 2011-2022 走看看