• Q-learning


    几个关键要素

    State:状态

    Action:行动,每个State下可以采取的行动

    Reward(State,Action):实际的奖励,每个State下采取不同的Action,会得到不同的Reward。因此其可以是一张二维的表,也可以根据实际情况来判定。

    Q(State,Action):Q-value,动作效用,即每个State下采取不同的Action,得到的不同的效用,可以看成是agent的经验与记忆。其是一张二维的表,往往各个元素都初始化为0。

    π(s):策略,对于当前State s 在所有可能的Action中选择一个Action a 的策略,在Q-learning中通常采用ε-greedy

    Q-learning算法学习框架

    1. 初始化各个参数

    2. 对每一个episode:

    • (随机)初始化agent的state
    • 若未达到目标状态,则执行:
      • 在当前State s 所有可能的Action中选择一个,记作a(通常采用ε-greedy策略)
      • 应用Action a,可以得到下一个State,记作s_
      • 更新Q(State,Action)表,Q[S,A] ← (1-α)*Q[S,A] + α*(R(S,a) + γ* max Q[S',a_i ])
      • 更新State s,s ← s_

    Q(State,Action)更新公式的解释

      

      (该图里前后两个a含义不一样,后者表示a_i)

      α 表示learning rate,右边式子中的Q[S,A]表示之前的经验,(R(S,a) + γ* max Q[S',a_i ])表示新学到的经验

      γ 表示discount factor,R(S,a) 表示实际收获的经验,max Q[S',a_i ]表示下一状态期望学习到的经验(是一个估计,并且这个经验是基于过去的记忆的)

    参考:

    Q-learning的解释:https://www.zhihu.com/question/26408259

    A Painless Q-learning Tutorial:https://blog.csdn.net/itplus/article/details/9361915

  • 相关阅读:
    go语言教程零基础入门到精通
    php探针文件内容
    一篇文章揭穿创业公司的套路
    Google资深工程师深度讲解Go语言面向接口(五)
    完全解析<atlalloc.h>
    巧妙的Section — — 剖析ATL OBJECT_MAP的自动建立
    ATL中的各种CriticalSection
    C++中的INL
    如何剖析一个类
    ATL线程模型解析
  • 原文地址:https://www.cnblogs.com/sbj123456789/p/10273580.html
Copyright © 2020-2023  润新知