首页 > 解决方案 > 为什么高级 LSTM 模型的结果并不比简单模型的结果好?

问题描述

我已经实现了这篇文章中提出的模型,它是一个文本分类模型,它使用句子表示,而不仅仅是单词表示来对文本进行分类。

model=tf.keras.Sequential()
embeding_layer=layers.Embedding(self.vocab_size,self.word_vector_dim,weights=[word_embeding_matrix],trainable=False,mask_zero=False)
model.add(TimeDistributed(embeding_layer))
model.add(TimeDistributed(tf.keras.layers.LSTM(50)))
model.add(tf.keras.layers.Bidirectional(costumized_lstm.Costumized_LSTM(50)))
model.add(layers.Dense(6,activation='softmax'))
opt=tf.keras.optimizers.Adam(learning_rate=0.001)
model.compile(optimizer=opt,loss='categorical_crossentropy',metrics=['accuracy',self.f1_m,self.precision_m, self.recall_m])
self.model=model

我使用一个包含 40000 个文档和 6 个不同标签的数据集来训练它。(30000 用于训练,10000 用于测试)。我使用预训练的词嵌入,该模型的输入是(样本、句子、单词)。它达到了 84% 的准确率。问题是我可以用这个简单的模型很容易地达到这个精度:

        model=tf.keras.Sequential()
    embeding_layer=layers.Embedding(self.vocab_size,self.word_vector_dim,weights=[word_embeding_matrix],trainable=False,mask_zero=False)
    model.add(embeding_layer)
    model.add(tf.keras.layers.Bidirectional(layers.LSTM(50)))
    model.add(layers.Dense(6,activation='softmax'))
    opt=tf.keras.optimizers.RMSprop(learning_rate=0.001)
    model.compile(optimizer=opt,loss='categorical_crossentropy',metrics=['accuracy',self.f1_m,self.precision_m, self.recall_m])
    self.model=model

这个不是基于句子表示的,这个模型的输入是(样本,单词)。第一个模型有什么问题?我的实施错了吗?我应该怎么办?

两种模型的训练过程都过拟合了 84%。我也使用了所有技巧来克服过度拟合,但我没有得到任何结果。请问有什么建议吗?[![在此处输入图像描述][2]][2]

标签: deep-learningnlplstmrecurrent-neural-network

解决方案


推荐阅读