神经网络中的最小神经元

数据挖掘 神经网络 训练
2022-03-03 01:06:39

我使用蛮力机制来确定最佳隐藏层/神经元,方法是将层/神经元增加 1 直到某个最大值,然后从性能最佳的模型中选择最佳计数。我的问题是关于这个“蛮力”过程的隐藏神经元计数的起点。有什么好的机制可以确定从哪个神经元计数开始,这样我就不会错过一些最小的最佳计数?

例如:

假设我有 8 个不是线性相关的输入。如果我将(输入数量:8)+ 1(如某些帖子所建议的那样)作为增加层内神经元数量的起点,我是否可能会错过最佳神经元数量,因为它可能少于 9 个神经元?

我使用的蛮力机制设置了每个隐藏层的最大神经元数量,所以如果我有 8 个输入,并且我从每个隐藏层 9 到 30 个神经元的范围开始,我将在第一个隐藏层中有 9 个神经元当开始使用第二个隐藏层进行测试时,它将增加到 30,然后回滚到 9:

循环 1 隐藏层 = 1 隐藏神经元 = 9 ... 隐藏层 = 1 隐藏神经元 = 30

循环 2 隐藏层 = 2 个隐藏神经元 = 9 ... 隐藏层 = 2 个隐藏神经元 = 30

循环 3 隐藏层 = 3 个隐藏神经元 = 9 ... 隐藏层 = 3 个隐藏神经元 = 30

我承认这效率低下,因为每一层可能不需要相同数量的神经元,但这篇文章的重点是尝试通过最小化需要测试以确定“最佳”的层/神经元组合的数量来改进这种机制计数。

编辑:

因此,只是为了澄清这个问题是关于确定如果使用上面概述的蛮力机制而不考虑数据域(因此输入 + 1 示例),一个好的最小起点是什么。

1个回答

对此没有硬性规定。

您应该拥有的隐藏节点的数量基于两者之间的复杂关系

  • 输入和输出节点数

  • 可用的训练数据量

  • 试图学习的功能的复杂性

  • 训练算法

  • 节点太少会导致系统出现高错误,因为预测因素可能过于复杂,以至于无法捕获少量节点

  • 太多的节点会过度拟合你的训练数据并且不能很好地泛化

总而言之,

  • 没有硬性规定。你只需要不断尝试不同数量的层,看看哪一个效果最好……

  • 在神经网络中,模型架构是一门艺术,你可以通过一些经验和领域知识掌握。

也检查这个答案...