如何根据NN中的输入和输出确定最佳隐藏层和神经元?

时间:2015-03-09 06:27:38

标签: artificial-intelligence neural-network biological-neural-network

我在这里主要提到这篇论文: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个婴儿。新老一代的新种群的其余部分是随机选择的,包括最适合不合适的基因组。

这非常适合人工智能,在 50-100后之后,它几乎是人类无法击败的突破克隆和一个小坦克游戏,你可以射击和移动。

由于我有想法在每个“代理类型”的进化群体上使用,现在的问题是,是否有可能确定隐藏层的数量和隐藏层中神经元的数量。

我对坦克游戏的设置是4个输入,3个输出和1个隐藏层,其中有12个神经元效果最好(大约50代非常强大)。

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

完成研究

所以,回到论文:在第32页你可以看到,每个隐藏层的神经元似乎需要更多的时间来启动,但是神经元之间的神经元越多,进入神经元的机会就越多。功能无噪音。

我目前只使用健身增加成功优于上一次尝试。

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

在突破游戏中,它类似于我有一个人工智能可以移动的桨,它可以收集点数。这里的“射门”或消极对待是因为它忘了接球。因此,潜在的噪声输入将是2个输出值(向左移动,向右移动),这取决于4个输入值(球x,y,degx,degy)。

问题

那么,您认为隐藏层数量和神经元数量的计算可以是一个很好的权衡,没有噪声可以杀死基因组进化?

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

1 个答案:

答案 0 :(得分:0)

  

总而言之,对于大多数问题,通过仅使用两个规则设置隐藏层配置,可以获得不错的性能(即使没有第二个优化步骤):(i)隐藏层的数量等于1; (ii)该层中神经元的数量是输入和输出层中神经元的平均值。

- doug

简而言之。这是一个持续的研究领域。大多数(我所知道的)使用众多神经元和H层的ANN都没有设置静态数,而是使用算法来连续修改这些值。通常在输出收敛/发散时构造和销毁。

由于听起来你已经在使用一些进化计算,考虑一下Andrew Turner's work on CGPANN,我记得它在类似于你的工作的基准测试中得到了相当不错的改进。