什么是Q-Learning
假设机器处于某个状态S1,此时有两种选择:动作a1和动作a2,行为准则Q表记录了这两种动作相对应的潜在奖励,Q Learning会选择潜在奖励更高的动作去做,进而转移到下一个状态,并重复这样的步骤。
Q表如何更新
q即q(s,a)指在某一时刻的s状态下($s\in S$),采取动作a($a\in A$)动作所能够获得收益的期望。
举个Q表的例子:
以上面提到的贝尔曼方程为基础,来看看Q Table是如何更新的。
Q表在初始状态下的值全部为0。
此处,图中的算式所使用的符号和我平时看到的不是很一致,所以我在接下来进行一些解释,使之与我的MDP博客中的符号一致。
首先对公式中的符号进行说明:
- $r$ ,即 $R_s^{a’}$ ,表示在状态 s 下采取动作 $a’$ 得到的奖励值
- $\gamma$, 即衰减系数
- $\alpha$,即学习率,用来决定这次的误差(现实 - 估计)有多少是要被学习的
- $max_{a’}Q(s’,a’)$ ,即贝尔曼最优方程中的 $max_{a’} q_*(s’,a’)$ ,表示在状态 s 下采取动作 $a’$ 转移到 $s’$ 能够取得的最大行为价值
- $\varepsilon - greedy$ ,是用在决策上的一种策略, 比如 $\varepsilon$ = 0.9 时, 就说明有90% 的情况会按照 Q 表的最优值选择行为,10% 的时间使用随机来选择行为
类比曾经学习的贝尔曼最优方程:
根据下一个状态 $s’$ 中选取最大的 $Q(s’,a’)$ 值乘以衰变 $\gamma$ 加上真实的回报值 $r$ 作为 Q 现实,而根据过往 Q 表中的 $Q(s,a)$ 作为 Q 估计进行 Q 值的更新。即