5

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

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

附带说明一下,是否有预测算法/触发规则或学习算法通常被重新归类为“最佳/最实用”,或者这也取决于呈现给网络的数据类型?

感谢任何有任何意见的人,我们总是很感激!

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

4

2 回答 2

3

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

我发现 - 一般来说

  • 输入层 - 每个输入向量一个 AN + 1 个偏差(始终为 1)
  • 内层 - 输入层的两倍
  • 输出层 - 每个动作或结果一个 AN

示例:字符识别

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

示例:二十一点

  • 如果您正在构建 NN 以“赢得二十一点”;
  • 从 16 输入 AN 开始(13 用于计算每次出现的牌,1 用于玩家手牌价值,1 用于庄家“上牌”,以及 1 偏差)
  • 32 内安
  • 和6个输出AN(一个用于“Hit”“Stay”“Split”“Double”“Surrender”和“Insurrance”)
于 2012-06-25T17:11:55.227 回答
1

基于本文的一些一般规则如下: Saurabh Karsoliya 的“多隐藏层 BPNN 架构中隐藏层神经元的近似数量”。来源在这里

  • 隐藏层神经元的数量是输入层大小的 2/3(或 70% 到 90%)。如果这还不够,那么可以稍后添加输出层神经元的数量。
  • 隐藏层神经元数量应小于输入层神经元数量的两倍。
  • 隐藏层神经元的大小介于输入层大小和输出层大小之间。
于 2017-06-08T08:26:37.277 回答