【发布时间】:2018-12-14 06:26:55
【问题描述】:
出于学习目的,我正在用 Python 编写自己的 ANN。我已经为 GD 和激活函数实现了最常见的优化,并计算了数值梯度,以确保 ANN 计算的梯度是正确的。
我尝试了非常简单的示例,并且效果很好,但最近我正在尝试使用 MNIST 数据集训练 ANN。我从数据集中的前 100 或 1000 张图像开始,只是为了了解每层要使用多少隐藏层和神经元。例如,我从 16 个神经元的单个隐藏层开始,对于提到的样本效果很好,损失函数逐渐减小,但是如果我使用几乎任何其他数量的神经元,损失函数变化很小甚至没有变化在训练期间,无论我使用多少个 epoch。我正在尝试建议的拓扑,这些拓扑对整个数据集都有效,结果相似。
我的理由是,可能没有足够的神经元让网络正常工作,但我很惊讶在多种情况下损失函数甚至没有改变,这是正常行为还是我更有可能有一些错误在我的代码中?
对于我所描述的,我使用 Adam 优化,leakyReLU 作为隐藏层的激活函数,softmax 作为输出层的激活函数。
【问题讨论】:
标签: python neural-network deep-learning