自主软件

时间:2009-04-22 05:49:04

标签: c# self

是否有人在其中编写了应用程序所在的任何代码 终身学习和提高自己(使用观察数据 存储在KB中,是否有任何框架?

4 个答案:

答案 0 :(得分:3)

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

它基本上保持了3 9 元素数组,这是每个游戏状态。在每场比赛结束时,如果获胜,它将在该游戏中向所有州添加一个。如果它丢失了,则减去一个(包括旋转和镜像以便更快学习)。

在决定移动时,只需要咨询一些可能性并选择得分最高的那个。

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

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

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

答案 1 :(得分:1)

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

好看的地方还包括大学对更高水平AI的研究。 (也就是说,我知道有一群人编写了一个程序,通过计算机观察摆动摆动的相机来推断运动定律;非常酷的东西)http://blog.wired.com/wiredscience/2009/04/newtonai.html

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

我希望有所帮助。

答案 2 :(得分:1)

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

最好的是你读了一些关于机器学习的书(比如米切尔的Machine Learning)和人工智能。

答案 3 :(得分:1)

This previous post列出了一些标准教科书,我强烈推荐Russel / Norvig撰写Artificial Intelligence a Modern Approach (AIMA)

many available toolkits中,我建议您查看OrangeSciPy(Python)或Weka(Java)。