强化学习的有效方法
强化学习是一种机器学习的形式,通过对环境和行为的交互来使智能代理(如机器人、自动驾驶汽车)从错误中学习策略。下面将分享三个观点,介绍强化学习的方法和技巧。
强化学习有效方法(精选篇1)
建立一个强化学习模型是熟悉强化学习的第一步。在这个过程中,需要将问题转化为与大量数据使用交作用的智能代理,该代理在每个时刻都会根据观察到的情况和前期体验做出决策和操作。学生可以利用探索/开发方法定义智能代理想要学习的策略以及奖励设计方案等;还可以借鉴 Q-Learning、SARSA 等经典算法,并在不断迭代和反馈中不断优化模型。
基于概率是强化学习中最直接的一种, 他能通过感官分析所处的环境, 直接输出下一步要采取的各种动作的概率, 然后根据概率采取行动, 所以每种动作都有可能被选中, 只是可能性不同. 而基于价值的方法输出则是所有动作的价值, 我们会根据最高价值来选着动作, 相比基于概率的方法, 基于价值的决策部分更为铁定, 毫不留情, 就选价值最高的, 而基于概率的, 即使某个动作的概率最高, 但是还是不一定会选到他.
我们现在说的动作都是一个一个不连续的动作, 而对于选取连续的动作, 基于价值的方法是无能为力的. 我们却能用一个概率分布在连续动作中选取特定动作, 这也是基于概率的方法的优点之一. 那么这两类使用的方法又有哪些呢?
比如在基于概率这边, 有 policy gradients, 在基于价值这边有 q learning, sarsa 等. 而且我们还能结合这两类方法的优势之处, 创造更牛逼的一种方法, 叫做 actor-critic, actor 会基于概率做出动作, 而 critic 会对做出的动作给出动作的价值, 这样就在原有的 policy gradients 上加速了学习过程.我们还能结合这两类方法的优势之处, 创造更牛逼的一种方法, 叫做 Actor-Critic , actor 会基于概率做出动作, 而 critic 会对做出的动作给出动作的价值, 这样就在原有的 policy gradients 上加速了学习过程.
强化学习有效方法(精选篇2)
我们可以将所有强化学习的方法分为理不理解所处环境,如果我们不尝试去理解环境, 环境给了我们什么就是什么. 我们就把这种方法叫做 model-free, 这里的 model 就是用模型来表示环境, 那理解了环境也就是学会了用一个模型来代表环境, 所以这种就是 model-based 方法. 我们想象. 现在环境就是我们的世界, 我们的机器人正在这个世界里玩耍, 他不理解这个世界是怎样构成的, 也不理解世界对于他的行为会怎么样反馈. 举个例子, 他决定丢颗原子弹去真实的世界, 结果把自己给炸死了, 所有结果都是那么现实. 不过如果采取的是 model-based RL, 机器人会通过过往的经验, 先理解真实世界是怎样的, 并建立一个模型来模拟现实世界的反馈, 最后他不仅可以在现实世界中玩耍, 也能在模拟的世界中玩耍 , 这样就没必要去炸真实世界, 连自己也炸死了, 他可以像玩游戏一样炸炸游戏里的世界, 也保住了自己的小命. 那我们就来说说这两种方式的强化学习各用那些方法吧.
Model-free 的方法有很多, 像 Qlearning, Sarsa, Policy Gradients 都是从环境中得到反馈然后从中学习. 而 model-based RL 只是多了一道程序, 为真实世界建模, 也可以说他们都是 model-free 的强化学习, 只是 model-based 多出了一个虚拟环境, 我们不仅可以像 model-free 那样在现实中玩耍,还能在游戏中玩耍, 而玩耍的方式也都是 model-free 中那些玩耍方式, 最终 model-based 还有一个杀手锏是 model-free 超级羡慕的. 那就是想象力.
Model-free 中, 机器人只能按部就班, 一步一步等待真实世界的反馈, 再根据反馈采取下一步行动. 而 model-based, 他能通过想象来预判断接下来将要发生的所有情况. 然后选择这些想象情况中最好的那种. 并依据这种情况来采取下一步的策略, 这也就是 围棋场上 AlphaGo 能够超越人类的原因. 接下来, 我们再来用另外一种分类方法将 强化学习分为基于概率和基于价值.
强化学习的第二步是通过多样性尝试向智能代理提供充分的经验来深化知识。学生应该将代理放置于各种情境中,例如赛车游戏或机器人导航,让其从实践中获取更多的经验。此外,全面利用可用资源,例如在线课程、指导文献或开源库进行调研;在虚拟或实验环境中重复或探究可能性及反向学习方案,并利用模拟仿真工具和可视化技术加强对算法的理解和优化策略。
强化学习有效方法(精选篇3)
强化学习的第三步是不断进行迭代修正。学生可以评估智能代理的表现和奖励的效果,并利用经验回放方法、广义策略迭代等来进一步提高策略效率和稳定性。同时,也需要不断检查算法设计与程序代码是否存在错误,并调整参数并比较不同算法之间的表现以减少经验样本的缺失率与干扰降难提升效率。例如,在使用深度强化学习时,采用分层控制结构避免因过多状态而过度复杂化智能代理为成长瓶颈,已得到证明行之有效。在巩固和拓展基础知识水平的基础上熟练运用迭代调整方法,会使你更加深入了解整个强化学习的过程和挑战以获取最佳控制结果。
强化学习还能用另外一种方式分类, 回合更新和单步更新, 想象强化学习就是在玩游戏, 游戏回合有开始和结束. 回合更新指的是游戏开始后, 我们要等待游戏结束, 然后再总结这一回合中的所有转折点, 再更新我们的行为准则. 而单步更新则是在游戏进行中每一步都在更新, 不用等待游戏的结束, 这样我们就能边玩边学习了.
再来说说方法, Monte-carlo learning 和基础版的 policy gradients 等 都是回合更新制, Qlearning, Sarsa, 升级版的 policy gradients 等都是单步更新制. 因为单步更新更有效率, 所以现在大多方法都是基于单步更新. 比如有的强化学习问题并不属于回合问题.
在线学习和离线学习, 所谓在线学习, 就是指我必须本人在场, 并且一定是本人边玩边学习, 而离线学习是你可以选择自己玩, 也可以选择看着别人玩, 通过看别人玩来学习别人的行为准则, 离线学习 同样是从过往的经验中学习, 但是这些过往的经历没必要是自己的经历, 任何人的经历都能被学习. 或者我也不必要边玩边学习, 我可以白天先存储下来玩耍时的记忆, 然后晚上通过离线学习来学习白天的记忆.那么每种学习的方法又有哪些呢?
最典型的在线学习就是 sarsa 了, 还有一种优化 sarsa 的算法, 叫做 sarsa lambda, 最典型的离线学习就是 Q learning, 后来人也根据离线学习的属性, 开发了更强大的算法, 比如让计算机学会玩电动的 Deep-Q-Network.
这就是我们从各种不同的角度来对比了强化学习中的多种算法.在监督学习中,在外部有一个“监督主管”,它拥有所有环境的知识,并且与智能体一起共享这个知识,从而帮助智能体完成任务。但是这样存在一些问题,因为在一个任务中,其中存在如此多的子任务之间的组合,智能体应该执行并且实现目标。所以,创建一个“监督主管”几乎是不切实际的。例如,在象棋游戏中,存在数万个可以移动的玩法。因此,去创建一个可以获胜的玩法知识库是一个单调乏味的任务。在这些问题中,从自己的经验中学习,并且获得知识是更加合理可行的。这就是强化学习和监督学习的主要区别。在监督学习和强化学习中,在输入和输出之间都存在映射。但是在强化学习中,存在的是对智能体的奖励反馈函数,而不是像监督学习直接告诉智能体最终的答案。
总之,强化学习需要建立一个强化学习模型、多样性尝试并增加经验、不断迭代修正,通过这些方法和技巧,可以提高智能代理的效率和稳定性,并实现在各种环境下的自主决策与操作。