这更像是一个深度学习概念问题,如果这不是正确的平台,我会把它带到其他地方。
我正在尝试使用Keras LSTM序列模型来学习文本序列并将它们映射到数值(回归问题)。
问题是,学习总是在高损失(训练和测试)上收敛得太快。我已经尝试了所有可能的超参数,我感觉这是一个局部最小问题导致模型的高偏差。
我的问题基本上是:
答案 0 :(得分:10)
更高的收敛率和非常高的损失可能意味着您正面临爆炸式的渐变问题。尝试使用低得多的学习率,如1e-5或1e-6。您还可以尝试渐变剪裁等技术,以便在高学习率的情况下限制渐变。
回答1
另一个原因可能是权重初始化,请尝试以下3种方法:
对于许多情况,第一种初始化方法效果最好。
回答2
您可以尝试不同的优化器,例如
优化器的选择应基于损失函数的选择。例如:对于MSE作为损失函数的逻辑回归问题,基于梯度的优化器不会收敛。
回答3
您的网络的深度或宽度再次完全取决于您使用的网络类型以及问题所在。
正如您所说,您正在使用LSTM的顺序模型,以学习文本序列。毫无疑问,你选择的模型对这个问题有好处,你也可以试试4-5 LSTM。
回答4
如果你的渐变为0或无限,它被称为消失渐变或它只是意味着早期收敛,尝试使用适当的学习率和第一个权重初始化技术进行渐变剪辑。
我相信这肯定能解决你的问题。
答案 1 :(得分:0)
请考虑减少您的batch_size。 使用batch_size大的情况,可能是您的梯度在某个时候找不到数据的随机性的更多变化,因此它会更早收敛。