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

原文地址:https://www.cnblogs.com/sbj123456789/p/10273580.html