尽管贝叶斯分析包含更多内容,但垃圾邮件过滤器中众所周知的朴素贝叶斯算法是基于一个非常基本的假设:所有变量本质上是相互独立的。例如,在垃圾邮件过滤中,每个单词通常被视为一个变量,因此这意味着假设如果电子邮件包含单词“viagra”,那么该知识确实会影响它也包含单词“medicine”(或“foo”)的概率'或'垃圾邮件'或其他任何东西)。有趣的是,当涉及到自然语言时,这个假设显然是错误的,但仍然设法产生合理的结果。
现在,人们有时绕过独立性假设的一种方法是定义从技术上讲是事物组合的变量(例如搜索令牌“购买伟哥”)。如果您知道要查找的特定情况,这可能会起作用,但总的来说,在游戏环境中,这意味着您通常无法记住任何内容。所以每次你必须移动、执行一个动作等时,它完全独立于你迄今为止所做的任何其他事情。我想说,即使是最简单的游戏,这也是学习游戏的一种非常低效的方式。
我建议考虑改用 q-learning。无论如何,您会发现的大多数示例通常只是简单的游戏(例如学习导航地图同时避开墙壁、陷阱、怪物等)。强化学习是一种在线无监督学习,在可以建模为与环境交互的代理(如游戏(或机器人))的情况下表现得非常好。它这样做是为了弄清楚环境中每个状态的最佳操作是什么(每个状态可以根据需要包含尽可能多的变量,而不仅仅是“我在哪里”)。然后,诀窍是保持足够的状态,以帮助机器人做出正确的决策,而不会在您的状态“空间”中为先前动作的每个可能组合提供一个明显的点。
更具体地说,如果您要构建一个国际象棋机器人,如果您尝试创建一个基于所有先前动作做出决策的决策策略,您可能会遇到麻烦,因为国际象棋动作的所有可能组合的集合增长非常快. 即使是每个棋子在棋盘上的位置的更简单模型仍然是一个非常大的状态空间,因此您必须找到一种方法来简化您跟踪的内容。但是请注意,您确实可以跟踪某些状态,这样您的机器人就不会一遍又一遍地尝试将左术语变成墙。
维基百科的文章非常专业,但本教程在将概念转化为现实世界的示例方面做得更好。
一个问题是,您确实需要能够将奖励定义为积极的“强化”。也就是说,您需要能够定义机器人试图达到的状态,否则它将永远持续下去。