我正在使用keras和RNN来分类关于文本是否值得反应的松弛文本数据(1 - 表情符号,0 - 没有表情符号)。我已从文本中删除了用户名和URL,并删除了具有不同目标变量的重复项。
我无法将模型推广到看不见的数据。列车/瓦组的损失看起来很好并且不断减少,但是val组的精度只会降低。
我正在使用预训练的GLOVE单词嵌入,因为我的训练大小只有25,000个句子。
我添加了额外的图层,更改了正则化值并增加了丢失但得到了类似的结果。我的模型不够复杂,无法推广数据吗?我添加额外层次的时间更小但更深,因为每个时期的训练时间约为2分钟。
任何见解都将受到赞赏。
embedding_layer = Embedding(len(word_index) + 1,
100,
weights=[embeddings_matrix],
input_length=max_message_length,
embeddings_regularizer=l2(0.001),
trainable=True)
# Creating the Model
model = Sequential()
model.add(embedding_layer)
model.add(Convolution1D(filters=32, kernel_size=3, padding='same', activation='relu'))
model.add(MaxPooling1D(pool_size=2))
model.add(Dropout(0.7))
model.add(layers.GRU(128))
model.add(Dropout(0.7))
model.add(Dense(1, activation='sigmoid'))
# Compiling the model with our given Optimizer
optimizer = Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=0.000025)
model.compile(loss='binary_crossentropy', optimizer=optimizer, metrics=['accuracy'])
print(model.summary())