如何确定隐藏层的层数和神经元数?

原文标题How to determine the number of layers and neurons in the hidden layer?

如何确定隐藏层的层数和神经元数?

深度学习为人工智能提供了模仿人脑神经网络的能力。它是机器学习的一个子集。深度学习和机器学习之间的主要区别在于数据呈现给机器的方式。机器学习访问大量数据(结构化和非结构化)并从中学习以预测未来,而深度学习网络则在多层人工神经网络上工作以预测未来。

神经网络的一般结构

神经网络具有输入层、隐藏层和输出层。它可以理解数据中的模式、噪音和混淆来源。当特征线性相关时,通常不首选神经网络,可以使用机器学习来完成。即使在使用神经网络的线性相关中,也不需要任何隐藏层。

神经网络计算加权和。计算的权重总和作为输入传递给隐藏层中的激活函数。激活函数是将输入映射到所需输出的函数。它将“输入的加权和”作为函数的输入,添加一个偏差,并决定是否应该触发神经元。输出层给出预测输出,模型输出与实际输出进行比较。训练好神经网络后,模型使用反向传播的方法来提升网络的性能。成本函数有助于降低错误率。

输入和输出层中的神经元数量

输入层中的神经元数量等于数据中特征的数量,在极少数情况下,会有一个输入层用于偏置。而输出中的神经元数量取决于模型是用作回归器还是分类器。如果模型是回归器,那么输出层将只有一个神经元,但如果模型是分类器,它将有一个神经元或多个神经元,具体取决于模型的类标签。

隐藏层中的神经元数和层数

当涉及到隐藏层时,主要关心的是需要多少隐藏层和多少神经元?

jeffheaton 的 An Introduction to Neural Networks for Java,第二版提到隐藏层的数量如下确定。[0]

有许多经验法则可用于确定要在隐藏层中使用的正确神经元数量,例如:

  • 隐藏神经元的数量应该在输入层的大小和输出层的大小之间。
  • 隐藏神经元的数量应该是输入层大小的 2/3,加上输出层的大小。
  • 隐藏神经元的数量应小于输入层大小的两倍。

此外,隐藏层所需的神经元数量和层数还取决于训练案例、异常值的数量、复杂性、要学习的数据以及使用的激活函数的类型。

大多数问题可以通过使用单个隐藏层来解决,该隐藏层的神经元数量等于输入和输出层的平均值。如果选择的神经元数量较少,则会导致欠拟合和高统计偏差。然而,如果我们选择过多的神经元,可能会导致过度拟合、高方差,并增加训练网络所需的时间。

Pruning

修剪可用于优化隐藏中的神经元数量并提高计算和分辨率性能。它在训练期间通过识别对网络性能没有影响的神经元来修剪神经元。也可以通过检查神经元的权重来识别,接近于零的权重相对不太重要。在修剪这些节点被删除。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2022年4月28日
下一篇 2022年5月6日

相关推荐