我建立了一个机器学习模型,该模型试图预测天气数据,在这种情况下,我正在预测明天是否会下雨(是/否的二进制预测)。
在数据集中,大约有50个输入变量,我在数据集中有65,000个条目。
我目前正在运行一个具有单个隐藏层的RNN,该隐藏层中有35个节点。我将PyTorch的NLLLoss用作损失函数,并将Adaboost用作优化函数。我尝试了许多不同的学习率,而0.01似乎工作得很好。
运行150个纪元后,我发现我的测试数据的精度开始趋近于.80。但是,我希望这个数字更高。但是,似乎模型陷入了某种形式的鞍形或局部最小值波动。 (下面的图表)
摆脱模型似乎陷入的“谷底”的最有效方法是什么?
答案 0 :(得分:1)
不确定为什么只使用一个隐藏层以及历史数据的形状如何,但是您可以尝试以下操作:
答案 1 :(得分:1)
当您提到带有单个隐藏层的RNN时,您的问题有点模棱两可。同样,在不了解整个神经网络架构的情况下,很难说出如何进行改进。因此,我想补充一点。
您提到您正在使用“ Adaboost”作为优化功能,但PyTorch没有任何此类优化器。您是否尝试过使用非常有用的SGD或Adam优化器?
损失函数中是否有任何正则化项?您熟悉辍学吗?您检查了训练表现吗?您的模型适合吗?
您是否有基线模型/算法,以便您可以比较80%的准确性是否良好?
仅用于二进制分类任务的150个纪元看起来太多了。您为什么不从现成的分类器模型开始?您可以在此Intel's manual中找到回归,分类的几个示例。