• 【机器学习】强化学习算法的优化


    系列文章目录

    第十八章 Python 机器学习入门之强化学习


    目录

    系列文章目录

    前言

    一、神经网络框架的改进

    二、 算法改进:ε-贪婪策略


    前言

    我们通过之前的学习知道了所谓的强化学习,关键就是学习到Q函数,也就是状态动作函数,然后使用它来选择 好的行动。 为了求得Q函数,我们-使用了深度学习和神经网络来训练模型学习Q函数。本文所讲的对于强化学习的优化,一是对改进神经网络框架;二是使用 ε-贪婪策略来改进算法。


    一、神经网络框架的改进

    改进的神经网络框架可以提高效率,如图,这是之前的神经网络框架,它将输入12个数字并输出Q(s,a),

    当我们处于某个状态时,我们都需要计算4个Q值,从而选择最大Q值的动作A,这是低效的,因为我们必须从每个状态进行4次推理。

    事实证明,训练单个神经网络更有效,同时输出这4个值,如下图所示

    这是一个修改后的神经网络框架,其中输入是与登月器状态相对应的八个数字,然后通过第一个隐藏层中有64个单元的神经网络,第二个隐藏层有64个单元的神经网络,输出层有4个单元的神经网络。

    神经网络的工作就是有4个输出单元输出Q(s , a), 它同时计算所有4种可能动作的Q值。因为当我们处于状态S时,事实证明这比计算4个Q值更有效,因为给定状态S,我们只需要运行一次神经网络就可以获得所有的4个Q值,可以更块地找到最大的Q值对应的动作A。 此外,在贝尔曼方程中,有一个步骤我们必须计算Q函数的最大值,贝尔曼方程的右边,

    R(S) + γ*maxQ(s', a'),使用这种改进的神经网络,使得计算它也变得更有效。

    这种对神经网络框架的改变使得RN更加高效。

    二、 算法改进:ε-贪婪策略

    Algorithm refinement :ε-greedy policy

    我们开发的学习算法,即使我们还在学习要如何去近似Q(s,a ) 的过程中,也是需要在月球着陆器中采取一些行动。

    当我们还在学习的时候,我们如何选择这些动作?最常用的方法是使用一种叫做epsilon ε-贪婪策略的东西。

    让我们来看看ε-greedy policy 是如何起作用的。

    如图,这是我们之前看到的算法,该算法的步骤之一是在月球着陆器中采取行动,当算法仍然在运行时,我们并不知道每个状态采取的最佳行动是什么。但即使我们仍在学习并且还没有很好的Q(s,a )估计,我们还是需要在学习算法的这一步采取行动,怎么采取行动呢?

    我们有两个办法,一是随机采取动作;二是选择 在状态s 的任何时候选择一个使Q(s, a)最大化的动作A。

    这时候,我们一般可能会选择 在状态s 的任何时候选择一个使Q(s, a)最大化的动作A 。这样做确实比完全随机的采取行动要好。但是我们有更好的选择。

    假设概率为0.95,我们选择使Q(s, a)最大化的动作A;并且有0.05的概率,我们随机选择一个动作。

    为什么我们要偶尔随机选择一个动作?

    假设Q(s,a )被初始化时,因为一些原因,让算法认为启动推进器不是一个好的主意,也许神经网络被初始化,使得Q(s,main ) 总是很低,而神经网络是尝试选择最大化Q(s,a) 的动作a, 那么它永远也不会尝试启动主推进器,而启动主推进器有时是我们需要的。

    如果我们 选择选项1, 即选择一个使Q(s, a)最大化的动作a, 那我们永远也不能实现它,虽然这样的概率很低。

    所以我们更多的时候是使用选项2,我们有一些尝试的可能性很小的动作,这样神经网络就可以陷入上面所说的情况。

    这种随机选择动作的想法有时被称为 探索步骤 ’exploration‘. 因为我们要尝试一些可能不是很好的行动。

    采取最大化Q(s,a) 的行动a,有时被称为greedy 贪婪行动(或exploitation 利用),因为我们试图通过选择这个来最大化我们的回报。

    而对于选项2,我们就称其为epsilon-greedy policy( ε-贪婪策略), spsilon 就是随机选择动作的概率 0.05.

    有时强化学习中使用的技巧之一是从高的epsilon 开始,然后逐渐减少,这样随着时间的推移,我们就会很小的概率选择随机采取行动,更多的是使用我们改进的估计Q函数来选择好的动作,

     

  • 相关阅读:
    aio-3588SJD4 qt环境配置记录
    JavaFX介绍
    Pytorch部分报错问题
    JCMSuite应用-高功率半导体激光器
    强强联手 法大大电子合同金蝶云·苍穹版上线
    本地环境运行Llama 3大型模型:可行性与实践指南
    〔支付接入〕微信的 h5 支付和 jsapi 支付
    MySQL入门:如何创建数据库?
    【论文导读2】Causal Machine Learning:A Survey and Open Problems
    CocosCreator 面试题(十一)Cocos Creator 屏幕适配
  • 原文地址:https://blog.csdn.net/m0_51816252/article/details/126573558