Python 精度增加,但损失也增加

Python 精度增加,但损失也增加,python,tensorflow,keras,Python,Tensorflow,Keras,我正在使用这个模型。当使用这个模型时,验证的准确度在增加,但同时验证的损失也在增加。这里发生了什么 from keras.layers import Dense from keras.models import Sequential from keras.optimizers import adam model_alpha1 = Sequential() model_alpha1.add(Dense(64, input_dim=96, activation='relu')) model_alp

我正在使用这个模型。当使用这个模型时,验证的准确度在增加,但同时验证的损失也在增加。这里发生了什么

from keras.layers import Dense
from keras.models import Sequential
from keras.optimizers import adam

model_alpha1 = Sequential()
model_alpha1.add(Dense(64, input_dim=96, activation='relu'))
model_alpha1.add(Dense(2, activation='softmax'))

opt_alpha1 = adam(lr=0.001)
model_alpha1.compile(loss='sparse_categorical_crossentropy', optimizer=opt_alpha1, metrics= 
['accuracy'])

history = model_alpha1.fit(x_train, y_train, validation_data=(x_test, y_test), epochs=200, verbose=1)


如果需要更多的细节,我将提供详细的评论。谢谢你

看来你的模型是太过合适了。换句话说,您的模型对训练数据的拟合度太高,这就是为什么它对验证数据的性能不再好的原因

防止过度拟合的典型方法是使用
正则化
技术。例如:

  • 辍学层
  • 早停
  • 噪音
尝试针对您的问题训练较低深度的NN,或者尝试退出层(或者两者都尝试,显然取决于这些层会如何影响)。从您的图中,我们可以看到过度装配在大约25个时代之后开始

过度拟合可能是由于对数据集使用了太复杂的模型,而数据集不够大。或者你只是训练模型太久了!(此处提前停止将解决问题)


这里有一些TF的正则化示例:

当训练分类模型时,不可能直接优化精度,因为它不是可微函数。因此,我们使用交叉熵作为损失函数,这与精度高度相关。在检查我们的指标时,重要的是要记住,这仍然是两个不同的指标


在CE损失方面,您的模型表现出教科书式的过度拟合。然而,就你真正感兴趣的准确性而言,它只是“完成了训练”。这就是为什么我们不仅要跟踪损失,还要跟踪我们感兴趣的底线的实际指标,以便我们根据这些指标做出决策。

请您做一些解释……在没有ce的情况下,我可以在这里使用什么样的损失函数。我认为ce是任务的正确损失函数。我想说的是,你需要记住,它不是你感兴趣的最终指标。你对准确性感兴趣,因此你应该使用准确性来决定何时停止训练以及使用哪个检查点。。。。。