【问题标题】:RNN encoder-decoder model keeps overfittingRNN 编码器-解码器模型不断过拟合
【发布时间】:2019-05-19 05:58:06
【问题描述】:

我已经用 RNN 训练了一个机器翻译模型(从英语到越南语),具有 25000 个示例对的 LSTM(用于训练集 -> 20000,测试集 -> 5000)我使用的模型如下所示,但 val_acc 总是达到~0,37 并且不会增加,尽管我使用了一些其他模型并且 epoch 大约是 100:

model = Sequential()
model.add(Embedding(src_vocab, n_units, input_length=src_timesteps, mask_zero=True))
model.add(Bidirectional(LSTM(n_units)))
model.add(Dropout(0.2))
model.add(RepeatVector(tar_timesteps))
model.add(Bidirectional(LSTM(n_units, return_sequences=True)))
model.add(Dropout(0.2))
model.add(TimeDistributed(Dense(512, activation='relu')))
model.add(Dropout(0.2))
model.add(TimeDistributed(Dense(tar_vocab, activation='softmax')))
return model

我希望模型能防止过拟合,希望大家帮我解决问题

【问题讨论】:

    标签: lstm recurrent-neural-network machine-translation encoder-decoder


    【解决方案1】:

    20k 训练实例是神经机器翻译的极小训练数据。如果你想在这些数据上训练任何东西,你应该使用尽可能少的参数和强正则化(dropout,L2,SwitchOut)。

    如果我正确理解了您的代码,那么您正在通过Sutkever at al 进行 vanilla 编码器-解码器架构。虽然它是一个简单的模型,但它的建模能力相对较弱。在这么小的数据集上,注意力模型可能更适合。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-11
      • 2017-09-14
      • 2019-07-21
      • 2021-03-25
      • 2019-05-20
      • 2019-06-14
      相关资源
      最近更新 更多