精度越高,精度越高

时间:2018-11-10 19:58:13

标签: python machine-learning keras deep-learning classification

我是Keras和机器学习的新手。我正在尝试使用顺序模型构建二进制分类模型。经过一些试验,我发现在第二轮或第三轮本身中,在多次运行中(并非总是如此),我的验证数据的准确度甚至达到了97%,但这一比率急剧下降至多达12%。这背后的原因是什么?如何微调我的模型? 这是我的代码-

model = Sequential()
model.add(Flatten(input_shape=(6,size)))
model.add(Dense(6,activation='relu'))
model.add(Dropout(0.35))
model.add(Dense(3,activation='relu'))
model.add(Dropout(0.1))
model.add(Dense(1,activation='sigmoid'))
model.compile(loss='binary_crossentropy',optimizer='adam',metrics=['binary_accuracy'])
model.fit(x, y,epochs=60,batch_size=40,validation_split=0.2)

2 个答案:

答案 0 :(得分:2)

根据我的看法,您可以考虑以下因素。

  1. 将您的学习率降低到非常小的数字,例如0.001甚至0.0001。
  2. 提供更多数据
  3. 退出率设置为0.2。 使它们在网络上保持统一
  4. 尝试减小批次大小
  5. 使用适当的优化器:您可能需要对此进行一些试验。在同一网络上使用不同的优化器,然后选择一个损失最小的优化器

如果上述任何因素对您都有效,请在评论部分告知我。

答案 1 :(得分:0)

当我遇到这个问题时,我通过将优化器从 RMSprop 更改为 adam 来解决。我还降低了学习率,并在每个完全连接的层之后添加了 dropout。如果您的 FC 层具有少量神经元,那么添加 dropout 不会产生重大影响。