zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    文件内部写入及读取(参考疯狂安卓讲义)
    API内部文件读取
    内部存储文件(读)
    内部存储文件(写)
    短信发送器(1.0版)
    按钮点击的三种方法及推广
    struts标签错误:Can not find the tag library descriptor for "http://java.sun.com/jsp/jstl/core"
    java中16进制转换10进制
    java project转变成java web project
    oracle,sqlserver,mysql常见数据库jdbc连接
  • 原文地址:https://www.cnblogs.com/sbj123456789/p/10273580.html
Copyright © 2011-2022 走看看