2010-08-15 51 views
3

我感兴趣的编写使用机器学习,并根据外部数据的某些动作某些软件。订单发行神经网络?

但是我碰到的问题(这是一直对我有意思) - 怎么可能写出机器学习软件,问题订单或订单的序列?

的问题是,我的理解是,神经网络得到的输入一群人,“回忆”根据以前的培训的结果输出。即时(或多或少)。所以我不确定“发布订单”如何适合该系统,尤其是当系统执行的操作对系统有一定的延迟时。我还有点不确定如何训练这件事。

此类系统的示例:
1.第一人称射击者敌方控制器。据我了解,有可能实现机器人的神经网络控制器,根据某些输入(可能是健康,弹药等)切换机器人行为策略(以及为它们分配优先级)。但我没有办法做出更高级别的控制器,可以发出一系列命令,比如“去那里,然后左转”。此外,机器人的行为将影响控制机器人行为的变量。即射击减少弹药,从高处坠落降低健康等
2.自动化市场的交易者。制定一个能够预测下一个市场价格的系统当然是可能的。但是,我不知道如何让系统发出订单来购买东西,观察趋势,然后卖回来获取利润/掩盖损失。
3.汽车司机。同样,(据我了解),可以使系统根据位置/速度/转矩数据和以前的训练结果保持所需的运动矢量。但是我没有看到制作这种系统(学会)执行一系列操作的方法。

即据我所知,神经网络在技术上是一个矩阵 - 你给它输入,它产生输出。但是,如何产生可能改变环境计划的行动序列呢?

如果这样的任务并不完全适合神经网络,可以使用什么呢?

P.S.我明白这个问题并不完全清楚,我怀疑我错过了一些知识。所以我会欣赏一些指针(即书籍/资源阅读等)。

+0

您不确定“发布订单”与系统输出的关系如何? – 2010-08-15 22:55:32

+0

@Anon .:我不知道如何建立一个系统,学习如何发出命令序列,学会在某些情况下发出命令/延迟命令,命令可能会彻底改变系统监视器的变量。 “订单”也是即时和离散的。即在AI射手机器人的情况下,“投掷手榴弹”是“离散”顺序,一旦手榴弹投掷,它就消失了。即我不知道如何让系统能够学习何时在试图达成某个目标时扔出手榴弹。 – SigTerm 2010-08-15 23:04:20

+0

你似乎已经将注意力集中在神经网络上,作为解决你的“问题”(其中,顺便说一句,你还没有真正阐述过)。如果你只是为了好奇而努力学习更多关于神经网络的知识,那么你可能会更好地处理简单的任务和构建,而不是直接跳到“如何使用神经网络构建反击机器人?”。 。一些维基百科浏览器出现了本教程:(http://www.ai-junkie.com/ann/evolved/nnt1.html),这可能会让你感兴趣。 – 2010-08-15 23:24:58

回答

2

可以尝试将输出神经元直接连接到控制器,例如向自我射击者前进,转身或射击,或者为交易者购买订单。不过,我认为,如果让神经网络解决一个相当具体的子问题,然后让一个“正常”程序解释它的答案,那么现在就可以获得最好的结果。例如,你可以让神经网络构建一个“我想要成为什么”的地图叠加层,然后将这个机器人转换成运动。交易者的神经网络可以产生“我需要多少纸张”,然后机器人将其转化为买卖订单。

其子问题应该通过神经网络来解决这一决定是一个非常核心的一个为其设计。重要的是可以向神经网络传授好的解决方案。

编辑:在例子中进一步说明:当自我射手bot被枪杀时,它本不应该在那里;当它开始拍摄其他人的时候,它本该想要更多地在那里拍摄。当交易者从纸上失去钱时,应该早一点减少它;如果它获得了,它应该更想要它。这些东西可以教。

+0

*“我想成为什么样的人”*,*“我要多少纸张”*:谢谢,这个想法肯定会导致我在有用的方向。 – SigTerm 2010-08-15 23:27:28

1

您所描述的问题被称为Reinforcement Learning。增强学习本质上是一种机器学习算法(如神经网络)和一个控制器。它已用于您提到的所有应用程序,甚至可用于drive real cars