当我使用相同的数据训练和数据测试时,反向传播神经网络出现大错误是否正常?
Is it normal to get big error in backpropagation neural network when I using the same data training and data test?
我正在使用神经网络反向传播进行一些编程。
我有大约 90 个数据,并使用所有数据进行数据训练(90 个数据)和相同的数据测试(90 个数据)进行一些训练。我正在使用大约 2 次迭代的迭代阈值来测试它,它给了我很大的错误(大约 60% MAPE/Mean 绝对平方误差)。
恐怕我的算法有误,因为使训练误差小于阈值 10% 的唯一方法是使用大约 3000k 次迭代的迭代阈值,并且训练需要很长时间(我没有使用动量。只是一个反向传播神经网络)。但使用上述条件后,测试准确率在 95-99% 左右。
这正常吗?或者我的程序运行正常?
当然,这将取决于所使用的数据集,但即使对于高度非线性数据(我在销售数据中看到过这一点),如果误差低于 1%,我也不会感到惊讶。只要您将训练和测试数据集分开,预计误差会上升,但对于相同的数据集,如果有足够的隐藏单元,误差应该会降至零。 ANN 拟合非线性数据的能力是巨大的(当然,拟合得越多,一般性越差)。
所以,我会寻找一些程序错误。
你说3000k迭代,但我假设你的意思是3k或3000。另一个答案说你的代码可能有错误,但是90个样本的问题3000迭代肯定是正常的。
您不能指望神经网络仅通过 2 次迭代就能拟合训练集,尤其是在学习率较低的情况下。
TL;DR - 您无需担心。 3000 次迭代就可以了。
我正在使用神经网络反向传播进行一些编程。 我有大约 90 个数据,并使用所有数据进行数据训练(90 个数据)和相同的数据测试(90 个数据)进行一些训练。我正在使用大约 2 次迭代的迭代阈值来测试它,它给了我很大的错误(大约 60% MAPE/Mean 绝对平方误差)。
恐怕我的算法有误,因为使训练误差小于阈值 10% 的唯一方法是使用大约 3000k 次迭代的迭代阈值,并且训练需要很长时间(我没有使用动量。只是一个反向传播神经网络)。但使用上述条件后,测试准确率在 95-99% 左右。
这正常吗?或者我的程序运行正常?
当然,这将取决于所使用的数据集,但即使对于高度非线性数据(我在销售数据中看到过这一点),如果误差低于 1%,我也不会感到惊讶。只要您将训练和测试数据集分开,预计误差会上升,但对于相同的数据集,如果有足够的隐藏单元,误差应该会降至零。 ANN 拟合非线性数据的能力是巨大的(当然,拟合得越多,一般性越差)。
所以,我会寻找一些程序错误。
你说3000k迭代,但我假设你的意思是3k或3000。另一个答案说你的代码可能有错误,但是90个样本的问题3000迭代肯定是正常的。
您不能指望神经网络仅通过 2 次迭代就能拟合训练集,尤其是在学习率较低的情况下。
TL;DR - 您无需担心。 3000 次迭代就可以了。