确定神经网络的适当神经元数量

时间:2012-06-25 16:17:47

标签: c# neural-network

我一直在用神经网络做一些研究,整个概念和理论对我来说很有意义。虽然我不能找到答案的一个问题是神经网络中应该使用多少个神经元。实现适当/有效的结果。包括隐藏层,每个隐藏层的神经元等。更多的神经元必须更准确的结果(同时对系统更多的负担)或更少的神经元仍然是足够的?是否有某种管理规则来帮助确定这些数字?它是否取决于正在神经网络中实施的训练/学习算法的类型。它取决于呈现给网络的数据/输入类型吗?

如果它更容易回答问题,我很可能会使用前馈和后向传播作为训练和预测的主要方法。

另一方面,是否有预测算法/解雇规则或学习算法通常被评为“最佳/最实用”,或者是否也取决于呈现给网络的数据类型?< / p>

感谢任何有任何意见的人,我们将不胜感激!

编辑:关于C#标签,这是我将神经网络整合在一起的语言。如果这些信息有帮助的话。

2 个答案:

答案 0 :(得分:2)

我专攻大学的AI / NN,并且在游戏方面有一些工作经验,这就是我发现的入门指南。但要意识到,每个NN都会进行一些调整,以便在您选择的环境中发挥最佳性能。 (一个可能的解决方案是将您的程序暴露给1000个不同的NN,设置一个可测试的性能标准,然后使用遗传算法传播更多有用的NN并剔除不太有用的NN - 但这是另一个非常大的帖子...... )

我发现 - 一般来说

  • 输入层 - 每个输入向量一个AN + 1个偏置(始终为1)
  • 内层 - 双输入层
  • 输出图层 - 每个操作或结果一个AN

示例:字符识别

  • 如果您正在检查10x10网格以进行字符识别;
  • 以101输入AN开始(每个像素一个,加上一个偏差)
  • 202 Inner AN
  • 和26输出AN(字母表中每个字母一个)

示例:二十一点

  • 如果您正在建立NN以赢得二十一点&#34;;
  • 以16输入AN开始(13表示卡的每次出现,1表示玩家手值,1表示经销商&#34;上牌&#34;和1偏)
  • 32 Inner AN
  • 和6输出AN(一个用于&#34; Hit&#34;&#34; Stay&#34;&#34; Split&#34;&#34; Double&#34;&#34; Surrender&#34;和&#34; Insurrance&#34;)

答案 1 :(得分:0)

基于本文的一些一般规则如下:'在多个隐藏层BPNN架构中隐藏层神经元的数量'由Saurabh Karsoliya撰写。

  • 隐藏层神经元的数量是2/3(或70%) 到输入图层大小的90%。如果是这样的话 然后输出层神经元的数量不足 稍后加入。
  • 隐藏层神经元的数量应该更少 比输入层中神经元数量的两倍多。
  • 隐藏层神经元的大小介于 输入图层大小和输出图层大小。