井字棋(Tic-Tac-Toe) 1 游戏是 两位玩家在三乘三的格子中行棋,成功在水平、垂直或对角线上使三子连成一线的玩家获得胜利。如果双方都发挥的最好,正常来说该游戏一般都为平局。
通过某种方法,来找到一个函数满足
如下图所示,强化学习 2 是机器学习的一种,一般可以描述成如下形式:
智能体 处于一种 环境 中,通过采取一系列的 动作 来获得环境状态的改变和获得反馈。通过不断地探索不同动作对环境的影响和获得的反馈。使得智能体能够得到更好的结果,这个过程就是强化学习 (Reinforcement Learning)。
最大化奖赏需要考虑两方面,一是了解每个动作带来的奖赏,二是执行最大奖赏的分数。其中获得不同动作带来的奖赏叫做 探索(Exploration),而执行最大奖赏分数的动作叫做 利用(Exploitation),而我们的目标是 最大化最终的奖赏 或者 最小化最终的惩罚。
这就好比我们要去一个荒原挖矿,我们的目标是挖到最多的矿。具体的做法是,首先我们需要探索这个荒原矿藏的位置,确定要在什么地方挖掘,这个过程就是探索;其次我们需要去挖掘矿藏含量最高的矿,进而得到更多的矿。这里有一个矛盾,一方面我们可能无法或者很难探索荒原的每一个角落,每次探索都需要成本;另一方面,如果结束探索直接挖掘,我们可能没有找到最多的矿,另外更多的探索也不一定能够找到含量更高的矿,所以有很多碰运气的成分,于是我们必须要在 探索和利用之间达到一种平衡。
设
若根据上式记录平均奖赏,则需要记录
初始时:
对于井字棋,其状态空间(动作空间)有限,我们可以直接使用穷举法来探索每种动作获胜的概率。
如前所述,我们从机器学习的角度来重新思考这个问题,我们需要找到一个函数
- 蒙特卡洛法
Footnotes
-
周志华. 机器学习[M]. 清华大学出版社 出版年 2016-1-1, 2016 ↩