添加更多层会降低准确性

数据挖掘 机器学习 神经网络 深度学习 毫升
2022-01-30 22:27:35

我在 MNIST 数据集上训练了我的 ANN。隐藏层有 128 个神经元,输入层有 784 个神经元。这给了我 94% 的准确率。然而,当我再添加一层,每层有 64 个神经元时,准确度显着降低到 35%。这背后的原因可能是什么。

编辑:激活函数:sigmoid。521 个时代。

2个回答

原因是通过添加更多层,您为模型添加了更多可训练参数。你必须更多地训练它。您应该认为MNIST数据集是一个非常容易学习的数据集。您可能必须在每层中使用更少数量的神经元。每个尝试神经元以促进学习过程。您可以达到的准确率。10100

您的问题(如我之前所想)是 sigmoid 激活函数。它有很多问题。其中,您的性能下降可能是由于两个原因:

注意:为“消失梯度”提供的链接很好地解释了为什么增加层会使您的网络更容易受到学习饱和的影响。

梯度消失问题确保您的 Neural Neyt 被困在非最优解中。而高学习率可确保您陷入非最佳解决方案。简而言之,经过几次振荡后的高学习率会将您的网络推向饱和。

解决方案:

  • 最好的解决方案是使用 ReLu 激活函数,最后一层可能是 sigmoid。
  • 使用自适应优化器,如 AdaGrad、Adam 或 RMSProp。
  • 将学习率降低到但为了补偿增加 epoch 的数量到106107106107