• 表格型方法


    表格型方法

    概念

    强化学习是一个与时间相关的序列决策的问题。

    • 概率函数与奖励函数

    概率函数定量地表达状态转移的概率,其可以表现环境的随机性。但是实际上,我们经常处于一个未知的环境中,即概率函数和奖励函数是未知的。

    • 时序差分法

    它结合了动态规划和蒙特卡罗的思想,通过不断更新状态值函数或者动作值函数来学习最优策略。时序差分算法的特点是它不需要知道环境的完整模型,也不需要等待一个完整的回合结束,而是在每一步都可以进行学习和更新。

    KaTeX parse error: \tag works only in display equations

    • Sarsa法

    Sarsa算法是一种时序差分学习的方法,它是一种在线的强化学习算法,即它在学习的过程中遵循和改进同一个策略。Sarsa算法的名称来源于它的更新公式,即:

    Q ( s , a ) ← Q ( s , a ) + α ( r + γ Q ( s ′ , a ′ ) − Q ( s , a ) ) Q(s,a) \leftarrow Q(s,a) + \alpha (r + \gamma Q(s',a') - Q(s,a)) Q(s,a)Q(s,a)+α(r+γQ(s,a)Q(s,a))

    其中, s s s表示当前状态, a a a表示当前动作, r r r表示当前奖励, s ′ s' s表示下一个状态, a ′ a' a表示下一个动作, α \alpha α表示学习率, γ \gamma γ表示折扣因子, Q Q Q表示动作值函数。

    Sarsa算法的步骤如下:

    1. 初始化 Q ( s , a ) Q(s,a) Q(s,a)为任意值,通常为0。
    2. 选择一个初始状态 s s s,并根据 Q Q Q和一个探索性的策略(例如 ϵ \epsilon ϵ-贪心策略)选择一个动作 a a a
    3. 重复以下步骤,直到达到终止状态或者达到最大步数:
      • 执行动作 a a a,观察得到的奖励 r r r和下一个状态 s ′ s' s
      • 根据 Q Q Q和同样的探索性的策略选择下一个动作 a ′ a' a
      • 根据上述的更新公式更新 Q ( s , a ) Q(s,a) Q(s,a)
      • s s s更新为 s ′ s' s,将 a a a更新为 a ′ a' a
    4. 重复步骤2和3,直到 Q Q Q收敛或者达到最大回合数。

    Sarsa算法的优点是它可以处理部分可观测(Partially Observable)的环境,即不需要知道环境的完整模型(Model),也可以适应环境的变化(Change)。Sarsa算法的缺点是它的收敛速度较慢,且可能陷入局部最优(Local Optimum)。

    问题

    • 为什么我们可以使用未来的总奖励来评价当前动作是好是坏?

    因为在现实世界中奖励往往是延迟的,所以强化学习需要学习远期的奖励。我们一般会从当前状态开始,把后续有可能会收到的奖励加起来计算当前动作的Q值,让Q值可以真正代表当前状态下动作的真正价值。

    但有的时候我们把目光放得太长远并不好。如果任务很快就结束,那么考虑到最后一步的奖励无可厚非。但如果任务是一个持续的没有尽头的任务,即持续式任务(continuing task),我们把未来的奖励全部相加作为当前的状态价值就很不合理。

    • 蒙特卡洛法与时序差分法区别

    蒙特卡洛方法是基于回合的更新,即只有在一个回合结束后才可以进行学习和更新,而时序差分方法是基于单步的更新,即每一步都可以进行学习和更新。
    蒙特卡洛方法是基于采样的估计,即利用真实的回报来更新估计值,而时序差分方法是基于自助的估计,即利用当前的估计值来更新下一个估计值。
    蒙特卡洛方法只能处理离散的任务,即有终止状态的任务,而时序差分方法可以处理连续的任务,即没有终止状态的任务。
    蒙特卡洛方法对初始值的选择比较鲁棒,即最终的学习结果不受初始值的影响,而时序差分方法对初始值的选择比较敏感,即不同的初始值可能导致不同的学习结果。

    • 简述同策略和异策略的区别呢?

    同策略和异策略的根本区别在于生成样本的策略和参数更新时的策略是否相同。对于同策略,行为策略和要优化的策略是同一策略,更新了策略后,就用该策略的最新版本对数据进行采样;对于异策略,其使用任意行为策略来对数据进行采样,并利用其更新目标策略。例如,Q学习在计算下一状态的预期奖励时使用了最大化操作,直接选择最优动作,而当前策略并不一定能选择到最优的动作,因此这里生成样本的策略和学习时的策略不同,所以Q学习算法是异策略算法;相对应的Sarsa算法则是基于当前的策略直接执行一次动作选择,然后用动作和对应的状态更新当前的策略,因此生成样本的策略和学习时的策略相同,所以Sarsa算法为同策略算法。

  • 相关阅读:
    docker安装zookeeper(单机版)
    【业务功能篇104】 补充【业务功能篇99】微服务-springcloud-springboot-电商订单模块--整合支付
    C# 中的装箱(boxing)和拆箱(unboxing)
    django regroup对象是外键时无法正常使用
    分布式下多节点WebSocket消息收发
    js设计模式:适配器模式
    spring ioc源码解读
    SpringCloud Nacos + Ribbon 调用服务的 2 种方法!
    8 - 函数
    2.1 C++面向对象编程_访问控制和继承
  • 原文地址:https://blog.csdn.net/qq_45019698/article/details/134484619