前馈神经网络何时需要第二个隐藏层?

机器算法验证 神经网络 近似
2022-03-20 17:42:17

我正在使用前馈神经网络来近似具有 24 个输入和 3 个输出的函数。大多数文献表明,具有足够数量的隐藏神经元的单层神经网络将为大多数问题提供良好的近似,而添加第二层或第三层几乎没有什么好处。

但是我优化了单层和多层神经网络,我的多层网络要好得多。对于单层网络,我扫描了 1 到 80 个神经元,每次都重新训练网络,并绘制性能图。在大约 30 个神经元之后,性能收敛。对于多层网络,我使用遗传算法来选择第一层和第二层的神经元数量。这导致了更好的性能。

我想知道为什么会发生这种情况,考虑到大多数文献表明 1 层就足够了。是否存在需要不止一层的特定类型的问题?这是否表明被逼近的函数是不连续的、没有明确定义的、锯齿状的(不平滑的)或以上所有/混合的?或者它是否暗示了其他东西,或者什么都没有?我知道当用于分类时,多层神经网络可以对不可线性分离的数据进行分类,但我正在使用该网络进行函数逼近。

2个回答

从理论的角度来看,您几乎可以用一层神经网络逼近任何函数。

在一些例子中,两层神经网络可以用有限数量的节点函数来逼近,而单层神经网络只能用无限数量的神经元来逼近。

尝试增加一层神经网络中的节点数量,或尝试使用 PSO 等另一种算法训练您的上层神经网络。通常很容易陷入局部最小值。

斯坦福大学教授 Andrew Ng在 Coursera 上的机器学习课程中给出了一些选择神经网络架构的指南我没有在 YouTube 上看到具体的讲座视频,但该课程是免费的,因此在 Coursera 的网站上访问它们是免费的。以下是相关材料的摘要。

在第9-7 课中将所有内容放在一起,给出了为您的神经网络架构选择默认值的一般准则。

输入单元数:特征维度 x(i)
输出单元数:类数

合理的默认值是一个隐藏层,或者如果 > 1 个隐藏层,则在每一层中具有相同数量的隐藏单元(通常越多越好,大约是输入单元数量的 1X 到 4X)。

在第10-7 课“决定下一步做什么”中,吴教授进行了更详细的介绍。

小型神经网络:

  • 更少的参数
  • 更容易欠拟合
  • 计算更便宜

大型神经网络:

  • 更多参数
  • 更容易过拟合
  • 计算成本更高
  • 使用正则化来解决过拟合

隐藏层数:将您的数据拆分为训练集、交叉验证集和测试集,并使用 1、2 和 3 个隐藏层训练神经网络,然后查看哪个具有最低的交叉验证错误来选择架构。