更多的隐藏层对分类模型的准确性有更大的影响吗?

数据挖掘 机器学习 深度学习 神经网络 分类
2022-03-05 02:37:09

我使用 Keras 训练了不同的分类模型,这些模型具有不同数量的隐藏层和每层中相同数量的神经元。我发现模型的准确性随着隐藏层数量的增加而降低,但是,隐藏层数量越多,下降越明显。下图显示了不同模型的准确率,其中隐藏层的数量发生了变化,而其余参数保持不变(每个模型的每个隐藏层有 64 个神经元): 在此处输入图像描述

我的问题是为什么 8 个隐藏层和 16 个隐藏层之间的准确度下降比 1 个隐藏层和 8 个隐藏层之间的下降要大得多,即使隐藏层数量的差异是相同的 (8)。

2个回答

神经网络试图逼近将给定图像映射到其标签的函数。改变隐藏层的数量本质上意味着改变参数的数量,这将用于近似输入标签映射。这些参数包括权重和偏差(在密集层的情况下)。根据参数的数量,模型可能,

  • 欠拟合,这意味着它的参数少于解决问题所需的参数。这将导致模型在测试数据集上的准确性下降。

  • Overfit,意味着模型有过多的参数,现在它倾向于记住给定的训练数据集。在这种情况下,模型在训练数据集上的准确度将远高于在测试数据上的准确度。

除了这些情况,如果模型的损失以及准确性(或任何衡量模型性能的指标)似乎在测试和训练数据上都有所提高,直到一定数量的 epoch,我们说模型已经概括了自己。

这取决于您要解决的问题。像 InceptionV3、MobileNets、ResNets 这样的 CNN 有数百个隐藏层,因为它们是在 CelebA 或 ImageNet 等巨大的图像数据集上训练的。因此,它们需要数百万个参数来概括自己并在测试数据上获得更好的准确性。

您可能会在此处找到更清晰的过拟合定义

我的问题是为什么 8 个隐藏层和 16 个隐藏层之间的准确度下降比 1 个隐藏层和 8 个隐藏层之间的下降要大得多,即使隐藏层数量的差异是相同的 (8)。

可能是没有。这些隐藏层中的参数数量刚好达到模型泛化自身的标准。作为没有。隐藏层数增加到 16,模型参数过多,过度拟合训练数据。

我们如何确定编号。模型所需的隐藏层数?

一种确定方法是执行超参数优化并搜索超参数的最佳可能组合(学习率、辍学率)。

当您添加更多参数时,您的模型可能会过度拟合训练数据,也就是说,它正在记忆训练数据,因此在用于测试/验证数据时泛化能力较差。