0

我有一个三维卷积神经网络[k​​eras,tensorflow]和先进的阿尔茨海默氏症患者,早期阿尔茨海默氏症和健康人(三类)的3D脑图像。我拥有324个图像的训练集和74个图像的测试集。当我训练我的CNN时,我有大约65-70%的准确性,但是对于测试集我只有30-40%。当我使用测试数据作为验证数据时,那么对于训练集,我的准确性也不会超过37%,并且整个时间损失保持在同一水平。不知道我改变了哪些参数,结果是一样的。我将.h5文件中的准备和规范化数据加载到Python中,并且输入具有形状(无,90,120,80,1)。我不知道什么可能是错误的,我多次查看代码,一切看起来都是正确的。卷积神经网络不分类测试集keras

我CNN有4 conv3D层,3 MAX-池,激活:RELU和batch_normalizations,3致密层和辍学,SOFTMAX

我明白任何帮助或想法。

+0

也许你有一个非常有偏见的测试集。您为测试集选择了太多特定情况。由于您的数据很小,这种情况并不罕见。检查您的测试数据和您的列车数据是否具有类似比例的健康/早期/晚期病例。 –

+0

的数据有类似的比例:/ – alexmaria

回答

1

如果您的训练数据中只有65/70%的准确性非常差,并且表明您的神经网络没有正确收敛。如果结构足够复杂,通过有效地学习对小输入样本的输出进行硬编码,您的网络应该至少能够过度训练数据。从它的声音来看,你的结构足够复杂。

首先要尝试的是将学习率降低10倍,并关闭验证/提早停止/正常化/正则化以及其他任何防止过度拟合的方法。然后冲洗,重复 - 多次迭代,每次迭代将LR减少10倍 - 直到您可以将训练数据过度训练到训练数据接近100%的位置。

然后,您可以着手进行适当的早期停止,退出,规范化,正规化等操作,以防止您知道有效的学习速率过度拟合。

如果丢弃LR甚至不会过度配合LR,那么您的NN结构就存在一些问题。

+0

谢谢!我会尝试。我的准确性很差,但我知道我的数据很复杂,我不知道我是否能够达到85%的准确率。我现在想要的只是我的CNN工作(这意味着至少60-70%的测试集)。 – alexmaria