通过创建ai来播放代码名称,我学到了什么
关键点
- 人工智能现在在几个不同的游戏中击败了人类.
- 代码名称是一个派对游戏,涉及将口头线索连接到目标单词的术语.
- 播放代号名称的程序演示了创建技术的难度,以与人类聪明的方式聪明.
人工智能在许多游戏中遭到殴打或挑战人类:去,Hanabi,Bridge,外交,Dota 2和当然的国际象棋.我决定尝试用手制作一个程序*在代码名称中可用的程序.
对于那些不知道的人,代码名称是两支球队之间播放的派对游戏.二十五张牌位于桌子上,每个牌都显示一个单词.一些卡被分配给一个团队,一些牌到另一个团队.只有一个人在每个团队中,都知道哪个.四分之一的时间轮流给他们的团队给出线索,希望猜测者会说出正确的话语,避免说对手的话语或游戏.线索由一个单词和一个数字组成 - 您针对您的线索单词所针对的卡片数.从我写的程序看一下下面的图片.我正在播放红色团队的Spymaster.如果我感到大胆,我可能会说,"罪,3."我希望我的队友猜测"小偷","天使"和"堕落".偷窃是一个罪,天使与道德有关,"堕落"作为一个伸展,可能与"天使"联系在一个堕落的天使中.
玩游戏需要大量的世界知识.它还邀请了创造性的关联.它是思考你的队友和强度都在思考的思考. ai是多么努力?
我知道捷径.它被称为Word Embeddings.计算机科学家们已经开发了一种编码数字单词的含义的方法.算法遍历互联网上的数十亿个文本文字,看看每个词汇单词在每个其他词汇单词附近出现的频率.然后,它分配每个序列,也可能总结其与其他单词的关系.该序列表示其位置在300维的含义空间中.如果人们在类似情况下写下"小偷"和"窃贼",他们将在语义空间中彼此靠近嵌入.
我通过下载一组名为GLOVE的单词嵌入品,并将其从40万字到最受欢迎的50,000字(忽略"a"和"两个")从40万字中修剪.然后,我计算了这些单词之间的每个距离 - 潜在的线索 - 并且可以在代码堂游戏中出现的400个单词中的每一个.
这是我的程序如何生成线索:它首先尝试找到一个线索,该线索将针对其留在董事会上的每个团队的单词.在一场比赛的开头,那是九个,赫尔克风格的任务.它扫描了50,000个可能的线索,寻找更接近所有(例如)这些单词的词语,而不是任何对手的词语或炸弹字.如果它没有在实践中找到,成功定位三个单词令人印象深刻,甚至两个可能是一个挑战 - 它会将有针对性的单词的数量减少到八个挑战.对于八个九个词的每个可能分组,它再次尝试找到一个接近所有八个缓冲量的线索 - 而不是要避免的单词. (如果发现不止一个线索,它会选择最接近最遥远的目标字的那个.如果它找到了一个以上的目标词组的线索,它再次选择最接近最遥远的目标词的线索. )然后提供该线索,以及它瞄准的单词数量.
猜测更简单.如果线索是"SIN,3",它会发现电路板上的三个字最相似的"罪".一个小技巧:提示可以携带.让我们说,在之前的转弯上,线索是"小行星,2",它猜到了"恐龙"和"空间". "恐龙"是一个红字,但"空间"是一个中立的词,所以在暗示"小行星"时,Spymaster必须记住另一个红字.现在轮到了,即使线索是"罪",它将略微偏向与"小行星"匹配的词语,并且更有可能猜测"堕落".
当我在最近的一篇文章中写入纽约人关于ai和常识,我至少学到了这个项目中的几件事.首先,我的代码名称AI非常聪明.当提供线索"妻子,2",瞄准"公主"和"律师"时,我印象深刻.但它也很愚蠢.我们可以在一组数字中嵌入很多人类知识,允许技术制作聪明的连接,但这并不意味着它在我们聪明的所有方式中都会聪明.
量化它的戏剧程度,我使用人群运行了一个小的用户学习.对于我的学习,我随机生成了10个25个单词的10个集合,对于每个我提供一个针对一个团队的九个单词的线索,我也让我的程序为这两个九个词提供了一个线索.然后我在网上参与者展示了10个集合,每个集合都有我的线索或计算机的线索.平均而言,对于我的线索,人们猜到的是我们的球队的话(即使他们不是我想的两个目标).对于计算机的线索,平均值为1.3.可敬. (机会是0.1.)对于猜测我的线索,电脑略微比人们更好,尽管差异可能没有统计学意义.虽然人们猜到了我的团队的话语1.6,但电脑猜测了1.7.
当然,该软件在该研究中没有捕获的缺点.我永远不会尝试使用这个程序作为猜测的"SIN,3",因为"堕落"只有通过与"天使"的关联有意义,而且该程序仅在线索和卡之间的单跳相似之处看起来.实际上,当我进入那个线索时,它正确地猜到了"小偷"和"天使"但不正确地猜到"收费"结束游戏.它错过了明显的线索,以头发的方式. (既不是"植物"也不是"花园"触发它以猜测"根.")
更重要的是,代码申名只测试了常识的某些方面,静态含义的部署可能会查找.考虑一个播放代号名的夜晚.常识揭示了在联想中的词和合理推理所需点.在无意识的能力下翻转沙漏或填充酒杯也很明显.它需要社交流动性.一天晚上,我记录了这次交流,在对话期间关于我的程序:
人1:"现在有一点人工智能站在这张桌子周围."
人2:"你在谈论我还是你?"
人1:"我们会离开那斜."
*我在2017年写下了我的大部分计划.2019年,我调试它,添加了一个图形用户界面,并运行了用户学习.我把代码放在github上.