为解决问题,我开发了一些深度学习模型,例如MLP(6个密集层),CNN(1个Conv1D + 1个密集层),LSTM(1个LSTM + 2个密集层),并构造了它们的损失和准确性图表。
CNN模型
model = Sequential()
model.add(Embedding(len(vectorizer.get_feature_names()) + 1,
64, # Embedding size
input_length=MAX_SEQ_LENGHT))
model.add(Conv1D(64, 5, activation='relu'))
model.add(MaxPooling1D(5))
model.add(Flatten())
model.add(Dense(64))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(units=1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
print(model.summary())
我有以下问题:
1-哪一种适合每个人?
2-这些图表是否显示过拟合? (尤其是图表1。它有什么问题?如何使测试的准确性超过训练水平?!)
3-当训练损失高于测试损失(在图表1中)可以吗?我应该增加纪元吗?
图1:
图2:
图3:
答案 0 :(得分:1)
您的模型似乎在图表1中过拟合。如果您不能直接或通过数据扩充技术来增加数据集,那么图表3似乎是三个模型中最好的模型。