在前馈神经网络中增加隐藏层数量有什么影响?

机器算法验证 神经网络 深度学习
2022-03-29 10:25:50

增加隐藏层的数量会提高准确性还是在添加一些层后不会发生改进?如果隐藏层的数量远远多于足够的层数,增加数量会导致准确性降低吗?我们需要更多的 epoch 来训练网络吗?

1个回答

我建议您查看http://www.deeplearningbook.org/,它们很好地解释了“容量”的概念(第 5 章,第 110 页),这可能会给您一些问题的答案。不过,为了我的答案,我会尽力而为。

1)增加隐藏层的数量可能会提高准确性,也可能不会,这实际上取决于您要解决的问题的复杂性。

2)增加隐藏层的数量远远超过足够的层数会导致测试集中的准确性降低,是的。它会导致您的网络过度拟合训练集,也就是说,它会学习训练数据,但无法泛化到新的未见数据。从上述书中拍摄的一张图片为这个概念提供了很好的直觉 在此处输入图像描述 在左图中,他们试图将线性函数拟合到数据中。该函数不够复杂,无法正确表示数据,并且存在偏差(欠拟合)问题。在中间的图片中,模型具有适当的复杂性来准确表示数据并进行泛化,因为它已经了解了该数据遵循的趋势(数据是综合创建的并且具有倒抛物线形状)。在右图中,模型适合数据,但它过拟合了,它没有学习趋势,因此无法泛化到新数据。

3)时代的数量......我实际上不确定你是否需要更多的时代,你拥有的隐藏层越多。我想这取决于其他因素,例如正则化。如果你试图解决一个超级简单的问题,那么如果你有一个浅层和一个非常深的网络,并且你训练了相同数量的 epoch,你可能会在浅层得到更好的测试精度(由于我上面提到的深层网络的过度拟合)。但是,如果问题很复杂,那么您可能需要对浅层网络进行更多的训练,并应用正则化来获得与深度网络相同的准确度结果。我不是这个领域的专家,所以不要把最后一个答案当回事。

我运行一个实验来查看两个模型(3 个卷积层 + 1 个全连接 + 1 个 Softmax 输出层)的验证成本,蓝色曲线对应于 FC 层中具有 64 个隐藏单元的模型,绿色对应于具有 128 个隐藏单元的模型同一层中的隐藏单元。如您所见,对于相同数量的 epoch(x 轴),对于具有 128 个隐藏单元(具有更多容量)的模型,过拟合开始发生得更早。这个过拟合点可以看作是验证成本停止下降并开始增加的时候。

在此处输入图像描述

看看那本书,太棒了。