作者:禅与计算机程序设计艺术
1.简介
Q-learning(Q-Learner) 是一种基于值函数的强化学习方法,由Watkins、Russell和Barto三人于2012年发明出来。简单来说,Q-learning就是训练一个机器人在一个环境中学习如何更好地执行任务。也就是说,它通过不断试错,试图找到最佳的动作策略,从而实现对环境的自动控制。它的算法是贪心法,即通过选择那些使得长期收益最大化的动作,从而逐步优化策略。如今,许多人都把Q-learning作为强化学习的一种应用方法。比如,AlphaGo用Q-learning训练出了世界上最先进的围棋AI,包括AlphaZero等改进版算法;李沐的深度强化学习算法Deep Q Network(DQN)则是其中著名的代表。本文将介绍最基础的Q-learning算法——即最简单的Q-table学习算法,并给出一个简单的示例,展示如何利用此算法玩俄罗斯方块游戏。
2.基本概念
首先,需要介绍一些基本概念,才能理解下面的算法。
2.1 状态空间和动作空间
Q-learning算法的输入是当前状态S,输出是下一步所采取的动作A。因此,我们首先要定义状态空间和动作空间。状态空间通常是一个有限的,且易于枚举的集合,表示机器人可能处于的所有状态。一般来