3

我在这里主要指的是这篇论文:http: //clgiles.ist.psu.edu/papers/UMD-CS-TR-3617.what.size.neural.net.to.use.pdf

当前设置

我目前正在尝试将我正在使用的神经遗传 AI解决方案移植到一个多用途的多代理工具中。因此,例如,它应该作为游戏引擎中的 AI 工作,用于在实体周围移动并让他们射击并摧毁敌人(例如,4 个输入,如距离 x,y 和角度 x,y 和 2 个输出,如左加速,对)。

到目前为止的状态是,我使用的基因组数量与确定最合适的代理的代理数量相同。20% 的最适合的智能体相互结合(选择 zz、zw 基因组),并为新种群分别创造 2 个婴儿。每个新一代的新种群的其余部分是在旧种群中随机选择的,包括最适合的基因组。

这对启动 AI 非常有效,在50-100 代之后,它在 Breakout 克隆和一个可以射击和四处移动的小型坦克游戏中几乎是人类无法击败的。

正如我想为每种“代理类型”使用进化种群的想法一样,现在的问题是是否有可能确定隐藏层的数量和隐藏层中神经元的数量。

我的坦克游戏设置是 4 个输入、3 个输出和 1 个隐藏层,其中 12 个神经元工作得最好(大约 50 代才能真正强大)。

我的突破游戏设置是 6 个输入、2 个输出和 2 个隐藏层,其中 12 个神经元似乎效果最好。

完成研究

所以,回到论文:在第 32 页上,您可以看到似乎每个隐藏层有更多的神经元当然需要更多的时间来启动,但是中间的神经元越多,进入函数而没有噪音的机会就越大.

我目前只使用成功比上次尝试更好的适应度增加来启动我的 AI。

所以在坦克游戏中,这意味着他成功地击中了另一辆坦克(打伤他4次更好,然后敌人死了)并赢得了回合。

在突围游戏中,它类似于我有一个 AI 可以移动并收集积分的桨。这里的“中枪”或负面处理是它忘记了接球。因此,潜在的噪声输入将是取决于 4 个输入值(球 x、y、degx、degy)的 2 个输出值(向左移动、向右移动)。

问题

那么,你认为对于隐藏层的数量和神经元的数量进行什么样的计算可以是一个很好的折衷方案,因为没有噪音会扼杀基因组进化?

在您可以说“它进一步发展”之前,最少的代理数量是多少?我目前的训练设置总是围绕有 50 个并行学习的代理(所以他们基本上在“幕后”并行模拟 50 个游戏)。

4

1 回答 1

0

In sum, for most problems, one could probably get decent performance (even without a second optimization step) by setting the hidden layer configuration using just two rules: (i) number of hidden layers equals one; and (ii) the number of neurons in that layer is the mean of the neurons in the input and output layers.

-doug

In short. It's an ongoing area of research. Most (All that I know of) ANN using numerous neurons and H-Layers don't set a static number of either, instead they use algorithms to continuously modify these values. Usually constructing and destroying when outputs converge/diverge.

Since it sounds like you're already using some evolutionary computing, consider looking into Andrew Turner's work on CGPANN, I remember it getting pretty decent improvements on benchmarks similar to your work.

于 2015-03-09T11:34:54.567 回答