我正在使用神经网络反向传播进行一些编程。 我有大约90个数据,并对数据训练的所有数据(90个数据)和数据测试的相同数据(90个数据)进行了一些培训。我使用迭代阈值大约2次迭代来测试它,它给了我很大的错误(大约60%的MAPE /平均绝对平方误差)。
我担心我的算法错误,因为训练误差低于阈值10%的唯一方法是使用大约3000k迭代的迭代阈值并且它的训练需要相当长的时间(我没有使用动量。只是一个反向传播神经网络)。但使用上述条件后,测试精度在95-99%左右。
这是正常的吗?或者我的计划是不可行的?
答案 0 :(得分:0)
当然,这取决于所使用的数据集,但即使对于高度非线性数据,如果误差低于1%,我也不会感到惊讶(我在销售数据中看到了这一点) )。只要您将训练和测试数据集分开,预计误差会增加,但如果有足够的隐藏单位,则应使用相同的设置,它应该降至零。人工神经网络拟合非线性数据的能力是巨大的(当然,越适合,越不普遍)。
所以,我会寻找一些程序错误。
答案 1 :(得分:0)
你说3000k迭代,但我假设你的意思是3k或3000.另一个答案说你的代码可能有一个错误,但对于90个样本的问题进行3000次迭代绝对是正常的。
您不能指望神经网络仅适合2次迭代的训练集,尤其是学习率较低。
TL; DR - 你无需担心。 3000次迭代很好。