我的验证准确率达到了100%,几乎持续了最近100个纪元。而训练的准确性从98%到99%不等。我正在使用具有2个隐藏层的神经网络。这是一个多类分类问题。
训练数据的大小为777385,验证率为其中的20%。
代码:
model_Lrelu_3L3N = Sequential()
model_Lrelu_3L3N.add(Dense(3, input_dim=49, activation='linear'))
model_Lrelu_3L3N.add(LeakyReLU(alpha=.01))
model_Lrelu_3L3N.add(Dense(3,input_dim = 5, activation ='linear'))
model_Lrelu_3L3N.add(LeakyReLU(alpha=.01))
model_Lrelu_3L3N.add(Dense(9, activation='softmax'))
model_Lrelu_3L3N.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
history = model_Lrelu_3L3N.fit(xcon_train,Ycon_train,validation_split = 0.20, batch_size = 100, epochs = 800)
答案 0 :(得分:1)
不确定您使用的平台是什么,但是一般而言,验证和培训数据是不同的。验证集在大多数情况下比培训要小。训练时,网络会根据训练集上计算出的梯度进行更新。但是,根据您选择的性能指标适用于验证集。其背后的原因是现场过度拟合。如果您的网络在训练中表现良好,但在验证集上却表现不佳,则表明这是过度拟合的迹象,因为网络无法在验证数据上表现良好。
关于准确性,据我所知,唯一的解释是您的网络运行良好,并且验证集包含适合您的网络的样本。另一方面,训练集可能更大,并且很少有被错误分类的样本。尝试使用验证集的大小。