5

有没有人写过任何代码,应用程序在其生命周期中学习和改进自身(使用存储在 KB 中的观察数据),是否有任何框架?

4

4 回答 4

3

我曾经写过一个学习Tic Tac Toe(或Noughts and Crosses)游戏。这算不算?

它基本上维护了一个 3 9元素数组,用于每个游戏状态。在每场比赛结束时,如果它赢了,它将在该比赛期间的所有状态中添加一个。或者如果它丢失了则减去一个(包括旋转和镜像以加快学习速度)。

在决定移动时,它只需要参考几种可能性,然后选择得分最高的一种。

它最终变得相当好,但不是通过扮演一个人,这花费了太长时间。它必须松散地玩自己的另一个副本,一个随机机器人和一个硬编码规则机器人,用于成千上万的游戏。

当我释放它时,它有 10 个初始智力水平,它们只是学习过程中的不同阶段。

我儿子目前正在对抗最愚蠢的水平 - 他只有四岁,所以我不想对他太粗暴,所以他们会一起学习(虽然他偶尔会击败我Connect Four,所以也许我应该施加更大的压力在他身上)。

于 2009-04-22T06:40:25.900 回答
1

我建议开始在网络上查看很多高级 AI 主题:这些主题包括神经网络、基因编程等(维基百科)。

值得关注的地方还包括大学对更高水平人工智能的研究。(即。我知道一个团队编写了一个程序,该程序通过使计算机用相机观察钟摆来推断运动定律;非常酷的东西)http://blog.wired.com/wiredscience/2009/ 04/newtonai.html

这是一个非常大的领域,需要您编写大量代码;您真正应该关注的是学习算法背后的概念,这样您就可以对您找到的算法进行编程或调整以满足您的需求。我认为这将是您创建学习算法的最佳选择。

我希望这会有所帮助。

于 2009-04-22T06:36:51.540 回答
1

恕我直言,您的问题非常广泛。大多数垃圾邮件过滤器都符合您的描述。但总的来说,您的方法将取决于应用程序必须学习什么以及应该如何学习。例如,垃圾邮件过滤器通常进行监督学习。但是,如果您不希望用户帮助您的应用程序学习,您将不得不使用无监督学习方法。当然还有更多的选择。mloss.org有很多包含 ML 算法的库,您可以使用它们。但是对于大多数库来说,如果您至少大致了解它们的算法是如何工作的,那将会很有帮助。

最好的办法是阅读一些关于机器学习(如 Mitchell 的机器学习)和 AI 的书籍。

于 2009-04-22T06:57:11.070 回答
1

一篇文章列出了一些标准教科书,其中我强烈推荐Russel/Norvig的人工智能现代方法 (AIMA)

许多可用的工具包中,我建议看一下OrangeSciPy(Python)或Weka(Java)。

于 2009-05-09T14:23:34.153 回答