Q-learning
Q-learning 的核心就是不断地探索,然后更新这张表里的分数,直到这张表能告诉你所有情况下的最优选择
从数学上看
Q-learning 的核心就是贝尔曼方程(Bellman Equation)的迭代更新公式。
公式如下:
$$Q(s, a) \leftarrow Q(s, a) + \alpha \cdot \left[ \underbrace{r + \gamma \cdot \max_{a'} Q(s', a')}_{\text{现实(Target)}} - \underbrace{Q(s, a)}_{\text{预测(Current)}} \right]$$
符号解释:
- $s$:当前状态(State,比如你在路口)。
- $a$:当前动作(Action,比如向左走)。
- $s'$:下一个状态(Next State,比如走到了陷阱里)。
- $r$:刚才那个动作拿到的即时奖励(Reward,比如 -100)。
- $\alpha$:学习率(Learning Rate)。就是你听劝的程度。如果是 1,完全听现实的;如果是 0,完全不听,死守旧观念。
- $\gamma$:折扣因子(Discount Factor)。代表你有没有远见。
- 0:只看眼前的利益。
- 接近 1:非常看重未来的长期收益。
公式逻辑拆解
1. $Q(s, a)$(旧观念):
这是你更新前,小本本上记录的分数。比如你本来以为往左走能得 0 分。
2. $r + \gamma \cdot \max_{a'} Q(s', a')$(新现实 / Target):
这是你走了一步后,发现的真实情况。它由两部分组成:
- $r$:
眼前的甜头。刚才那一步实际拿到的分(比如 -100)。 - $\gamma \cdot \max_{a'} Q(s', a')$:
未来的预期。到了新位置 $s'$ 后,你往后看,觉得自己以后最好能拿多少分。 - 这句话的意思是:
这一步的真实价值 = 眼前的奖励 + 未来最好的预期。
3. $[\dots] - Q(s, a)$(误差 / TD Error):
用「新现实」减去「旧观念」。
- 如果差值是正的,说明以前低估了这个动作,要加分。
- 如果差值是负的,说明以前高估了这个动作,要扣分。
4. $Q(s, a) \leftarrow Q(s, a) + \alpha \cdot \text{误差}$(修正):
根据算出来的误差,按比例 $\alpha$ 修改小本本上的分数。