我对机器学习比较陌生。我正在构建一个监督学习 LSTM 模型。 Word2Vec 用于构建词嵌入。在 100 个 epoch 结束时准确度很差 0.03。
我尝试将 LSTM 神经元增加到 128 个,使用不同的激活函数(tanh、relu 和 softmax)。仍然没有运气。
请提出提高准确性的方法。
EMBEDDING_SIZE = 200
MAX_SEQUENCE_LENGTH = 200
model = Sequential()
model.add(Embedding(input_dim=num_word,
output_dim=EMBEDDING_SIZE,
input_length=MAX_SEQUENCE_LENGTH,
embeddings_initializer = Constant(embedding_matrix),
trainable=False))
model.add(LSTM(32, dropout=0.2, recurrent_dropout=0.2, kernel_regularizer=regularizers.l2(0.001)))
model.add(Dense(579, activation='tanh'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
print(model.summary())
num_epochs = 100
history = model.fit(X_train,
y_train,
epochs=num_epochs,
shuffle = True,
batch_size=32,
validation_data=(X_test, y_test_categorical),
verbose=2)
模型摘要:
总参数:145,097,931
可训练参数:48,931
不可训练的参数:145,049,000