AI算法有20个问题如何工作?

时间:2009-05-20 12:04:19

标签: algorithm artificial-intelligence

20个问题的简单在线游戏,由极其准确的AI提供支持。

他们如何猜得这么好?

5 个答案:

答案 0 :(得分:53)

您可以将其视为二进制搜索算法。 在每次迭代中,我们提出一个问题,该问题应该消除大约一半可能的单词选择。如果总共有N个单词,那么我们可以期望在log2(N)个问题之后得到答案。

有了20个问题,我们应该能够在2 ^ 20 = 100万个单词中找到一个单词。

消除异常值(错误答案)的一种简单方法是使用RANSAC之类的东西。这意味着,您不必考虑所有已回答的问题,而是随机选择一个较小的子集,这足以给您一个答案。现在你用不同的随机问题子集重复几次,直到你看到大部分时间,你得到相同的结果。然后你知道你有正确的答案。

当然,这只是解决这个问题的多种方法之一。

答案 1 :(得分:22)

我建议在这里阅读有关游戏的内容:http://en.wikipedia.org/wiki/Twenty_Questions

特别是计算机部分:

  

游戏暗示了这些信息   (用香农的熵测量   统计)需要识别   任意对象大约是20位。该   游戏通常用作例子   教人们了解信息   理论。数学上,如果每个   问题的结构是消除   一半的对象,20个问题将   允许提问者区分   在2 20 或1,048,576个受试者之间。   因此,最有效   二十个问题的战略是   提出会分裂的问题   剩下的可能性领域   每次大约一半。这个过程   类似于二分搜索   计算机科学中的算法。

答案 2 :(得分:21)

决策树直接支持这种应用。决策树通常用于人工智能。

决策树是一个二叉树,它在每个分支上询问“最佳”问题,以区分由其左右子代表的集合。最好的问题是由20个问题应用程序的创建者用来构建树的一些学习算法确定的。然后,正如其他海报所指出的那样,20层深的树给你一百万件事。

在每个点定义“最佳”问题的一种简单方法是查找最均匀地将集合划分为一半的属性。这样当你得到该问题的是/否答案时,你就会在每一步中摆脱大约一半的收集。这样您就可以进行二进制搜索。

维基百科提供了一个更完整的例子:

http://en.wikipedia.org/wiki/Decision_tree_learning

一些一般背景:

http://en.wikipedia.org/wiki/Decision_tree

答案 3 :(得分:8)

它将自己称为“互联网上的神经网络”,其中关键在于它。它可能将问题/答案概率存储在备用矩阵中。使用这些概率,它能够使用决策树算法推断出哪个问题可以最好地缩小下一个问题。一旦它缩小了几十个可能答案的数量,或者它已经达到了20个问题,那么它就开始读取最可能的答案。

20q.net真正有趣的方面是,与我所知的大多数决策树和神经网络算法不同,20q支持稀疏矩阵和增量更新。

编辑:结果这个答案一直在网上。发明家罗宾·伯吉纳(Robin Burgener)在他的2005 patent filing中详细描述了他的算法。

答案 4 :(得分:6)

它正在使用学习算法。

k-NN就是其中之一的一个很好的例子。

Wikipedia: k-Nearest Neighbor Algorithm