几个关键要素
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