【发布时间】:2020-07-26 22:20:49
【问题描述】:
我正在使用 CNN 对无线信号进行分类。 同时我遇到了一些奇怪的问题 - 当 trainset 准确率为 80% 时,我得到了 79% 的 testset 准确率,但是当 trianset 准确率为 93% 时,testset 准确率下降到 71%。有人遇到过同样的问题吗?
我的网络基于keras + tensorflow。
网的细节是:
CNN(512,(2,2),tanh)
Batch_normaliztion
flatten()
DNN(512,elu)
DNN(256,elu)
DNN(128,softmax)
opt=adam
loss = mse
谢谢
【问题讨论】:
-
对于非常高的训练集精度,您的模型可能会过度拟合数据集(不确定,因为您没有提到您的数据集)。
-
谢谢,数据集是我自己收集的,由一些无线信号组成,如 WIFI、zigbee、LoRa、RFID 等。你的意思是即使训练集准确率只有 90% 也可能发生过拟合?
-
是的,这是因为你的测试准确率很低(尝试使用 dropout 层)。其他原因可能是在拆分过程中,您的测试数据集与训练数据集相比包含完全不同的值(例如,测试集包含来自训练集不包含的区域的 wifi 等信息,或任何类似问题)
-
这可能是高方差问题(过拟合)的情况。您确定训练数据和测试数据来自同一来源吗? (例如位置)如果不是,则根据它们的来源平均分割它们。您还可以尝试添加一些正则化技术,例如 DropOut。
-
谢谢,训练数据和测试数据来自同一来源。(在相同的位置和环境中)。我认为它过度拟合。我会增加 Dropout。
标签: tensorflow keras deep-learning