强化学习 q Learning 简介
Q-Learning 是强化学习中的一种 异策(off-policy)、无模型(model-free)算法,由 [[ 强化学习 - Q-Learning 简介#^56bb17|Watkins ]] 在 1989 年提出。是用来求解 马尔可夫决策过程 的算法,也可以用来求解 [[ Dynamic Programming 动态规划|动态规划 ]] 问题。Q-Learning 中的 Q 取自 Quality,表示的是在每个状态下,可执行动作的质量。
由于 Q-Learning 不需要模型即可求解,因此 Q-Learning 适合用于环境未知或部分未知的场景下。同时由于 Q-Learning 采用的是记录动作 - 状态价值对(action-state value)的方式,因此 Q-Learning 更适用于 [[ 动作空间 ]] 是离散状态的环境。
Q-Learning 使用 Q-table 记录动作 - 状态价值对,Q-table 的维度是 [[ 动作空间 ]] 的维度($n_{action}$)乘以 [[ 状态空间 ]] 的维度($n_{state}$),因此每一个动作 - 状态都有一个对应的值,这个值便是在这个状态下执行该动作所能获得的预期奖励。Q-Learning 的流程也比较简单:
- 初始化 Q-table,一般情况下初始化一个全零矩阵,维度为 $n_{action}*n_{state}$
- 根据 Epsilon-Greedy Policy,选择该状态下的执行的动作
- 根据执行动作后获得的奖励以及新的环境状态,更新 Q-table 中对应的动作 - 状态价值对
- 重复步骤 1-3,直到任务完成或达到终止条件
以上流程就是使用 Q-Learning 进行一次训练,通常根据任务难度不同,需要经过多次训练(迭代上千次或上万次)才能够是模型最终收敛。
Q-Learning 是强化学习中比较经典的方法,但是当 [[ 动作空间 ]] 和 [[ 状态空间 ]] 的维度很高或是连续状态时,Q-Learning 想要优化所有的动作 - 状态价值对所需要的开销就会呈指数上升。因此 Q-Learning 更适用于一些简单环境的强化学习任务。
Reference
- Learning from Delayed Rewards ^56bb17
反向链接
还没人提过这条笔记呢 😞