当测试和训练数据集来自不同的来源时,为什么测试精度保持不变并且不会增加二进制分类

时间:2017-01-29 16:51:59

标签: image-processing machine-learning classification deep-learning theano

我有来自两个不同来源的 训练 数据集和 测试 数据集。我的意思是他们来自两个不同的实验,但两者的结果都是相同的生物图像。我想使用 深度CNN 进行二进制分类,我对测试精度和训练精度有以下结果。蓝线显示列车精度,红线显示几乎 250 时期后的测试精度。为什么测试精度几乎是恒定的而不是提高?这是因为 测试 列车 数据集来自不同的发行版吗?enter image description here

编辑: 在我添加了dropout图层,reguralization术语和平均减法后,我仍然得到以下奇怪的结果,这些结果表明模型从一开始就过度拟合了!

enter image description here enter image description here

1 个答案:

答案 0 :(得分:3)

可能有两个原因。首先,你要适应训练数据。这可以通过使用验证分数作为测试数据的比较度量来验证。如果是这样,您可以使用标准技术来对抗过度拟合,例如重量衰减和辍学。

第二个是你的数据太不同了,不能像这样学习。这很难解决。您应首先查看两个图像的值传播。它们都是标准化的吗? Matplotlib自动标准化绘制图像。如果这仍然不起作用,您可能需要研究扩充,以使您的训练数据更接近测试数据。在这里,我不能告诉你使用什么,没有看到火车组和测试集。

编辑:

对于标准化,测试集和训练集应具有相似的值扩展。如果进行数据集规范化,则计算训练集的均值和标准。但是,您还需要在测试集上使用这些计算值,而不是从测试集中计算测试集值。这只有在训练和测试集的值传播相似时才有意义。如果不是这种情况,您可能希望首先进行每个样本规范化。

通常用于每个数据集的其他增强是过采样,随机通道移位,随机旋转,随机平移和随机缩放。这使你无法接受这些操作。