我在 MNIST 数据集上训练了我的 ANN。隐藏层有 128 个神经元,输入层有 784 个神经元。这给了我 94% 的准确率。然而,当我再添加一层,每层有 64 个神经元时,准确度显着降低到 35%。这背后的原因可能是什么。
编辑:激活函数:sigmoid。521 个时代。
我在 MNIST 数据集上训练了我的 ANN。隐藏层有 128 个神经元,输入层有 784 个神经元。这给了我 94% 的准确率。然而,当我再添加一层,每层有 64 个神经元时,准确度显着降低到 35%。这背后的原因可能是什么。
编辑:激活函数:sigmoid。521 个时代。
原因是通过添加更多层,您为模型添加了更多可训练参数。你必须更多地训练它。您应该认为MNIST数据集是一个非常容易学习的数据集。您可能必须在每层中使用更少数量的神经元。每个尝试神经元以促进学习过程。您可以达到的准确率。
您的问题(如我之前所想)是 sigmoid 激活函数。它有很多问题。其中,您的性能下降可能是由于两个原因:
注意:为“消失梯度”提供的链接很好地解释了为什么增加层会使您的网络更容易受到学习饱和的影响。
梯度消失问题确保您的 Neural Neyt 被困在非最优解中。而高学习率可确保您陷入非最佳解决方案。简而言之,经过几次振荡后的高学习率会将您的网络推向饱和。
解决方案: