0

背景:我正在用 Python 编写一个三层神经网络,该网络使用小批量随机梯度下降,专门用于从著名的鸢尾花数据集中识别三类鸢尾植物。输入层有四个神经元,一个用于数据中的每个特征。隐藏层有 3 个神经元(但代码允许隐藏层神经元数量的变化),输出层有 3 个神经元(每个物种一个)。所有神经元都使用 sigmoid 激活函数。

问题:损失(均方误差)通常会随着时间的推移而降低,但准确度(通常低于 55.55% 甚至 33.33%)却停滞不前。我尝试过使用不同的迭代次数和学习率进行试验,但没有任何效果。有趣的是,无论输入值是什么,算法的输出通常都是固定的。我相当确定我的数学,因为随着时代数量的增加,损失似乎在减少。

复制问题:只需运行 Python 代码并观察 LEARNING_RESULTS.txt 文件。(确保 repo 中的 iris.txt 文件在同一目录中)

问题:如何提高此神经网络的性能?

GitHub 仓库链接:https ://github.com/kwonkyo/neural-networks

谢谢!

更新:问题解决了。我将一个常数值(小批量矩阵总和的数值总和)添加到权重和偏差矩阵,而不是小批量梯度矩阵的总和。更新的代码已推送到 github。

4

0 回答 0