防止 LSTM 在小数据集上过拟合

机器算法验证 深度学习 正则化 过拟合 lstm
2022-01-25 12:39:28

我正在使用具有 128 个隐藏单元的单层 LSTM 对 15000 条推文进行情绪预测建模,并使用 80 维的类似 word2vec 的表示。在 1 个 epoch 后,我得到了下降准确度(38% 随机 = 20%)。随着训练准确度开始攀升,更多的训练使验证准确度开始下降——这是过度拟合的明显迹象。

因此,我正在考虑进行正则化的方法。我不想减少隐藏单元的数量(128 似乎已经有点低了)。我目前使用 dropout 的概率为 50%,但这可能会增加。优化器是 Adam,具有 Keras 的默认参数(http://keras.io/optimizers/#adam)。

有哪些有效方法可以减少此模型在我的数据集上的过度拟合?

1个回答

你可以试试:

  • 减少隐藏单元的数量,我知道你说它已经看起来很低了,但是考虑到输入层只有 80 个特征,实际上可能是 128 太多了。一个经验法则是让隐藏单元的数量介于输入单元(80)和输出类(5)的数量之间;
  • 或者,您可以将输入表示空间的维度增加到 80 以上(但是,如果表示对于任何给定的单词来说已经太窄,这也可能会过拟合)。

拟合网络的一个好方法也是从过拟合网络开始,然后减少容量(隐藏单元和嵌入空间),直到它不再过拟合。