强化学习

Q学习(Q-learning)

/ kyoo LURN-ing /

Q学习是一道经典的配方,让智能体纯凭试错就学会自己各个动作的「质量」,全程无人告诉它这个世界的规则。想象有一本大笔记本,为每一个(情形, 动作)的组合记着一个分数——它的 Q 值。每当智能体行动、看到结果、落到一个新地方,它就把那一个分数往真相挪近一点:「我刚拿到的奖励,加上从我落脚之处看去最佳动作有多好」。慢慢地,整本笔记本就被准确的数字填满。

巧妙之处在于它更新时假定的是哪一种未来。Q学习总是假定自己从下一个状态起将最优地行动来更新——它去够那里可选的最佳动作,全然不管它接下来实际做了什么。这正是它「离策略」的缘由:它可以拿着随机着法到处探索游荡,却仍能学到那个理想的、贪心策略的价值。一旦笔记本填好,智能体只需在每个状态读出得分最高的动作,那就是它的最优策略。

在合理的条件下——每个状态—动作组合都被试过足够多次、学习率得当地衰减——表格式 Q学习被证明会收敛到真正最优的价值。这是一个漂亮的保证,但它附带一个无声的天花板:它需要为每一种情形单设一格,所以只有当情形少到列得完时才行得通。一旦这个世界的状态数多过满盘棋局所能摆出的局面,你就没法再记笔记本了——而这恰恰是深度 Q 网络被发明出来要弥合的那道鸿沟。

迷宫里的一个智能体试了「向右走」,得到奖励 0,落到一个它当前把最佳动作评为 9 的格子。设学习率为 0.5、不打折扣,它就把 Q(此处, 右)朝 0+9=9 更新,挪到半路。在成千上万个回合里如此重复,迷宫真正的价值便浮现出来。

每一步把一个 Q 值朝「当下奖励+下一步最佳价值」挪近。离策略:哪怕在随机探索,它学到的也是最优。

Q学习的收敛证明只适用于表格情形——每个状态—动作组合一格。把表格换成神经网络(就像 DQN 那样),保证便烟消云散;训练可能震荡乃至发散,这正是为什么 DQN 单是为了保持稳定,就得加上经验回放、冻结目标网络这类额外的把戏。

又称
Q学习Q-表学习tabular Q-learning