卷积神经网络不对测试集keras进行分类

时间:2017-10-07 13:38:48

标签: tensorflow neural-network keras classification conv-neural-network

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

我的CNN有4个conv3D图层,3个最大池,激活:relu和batch_normalizations,3个密集层和dropout,softmax

我感谢任何帮助或想法。

1 个答案:

答案 0 :(得分:1)

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

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

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

如果掉落LR甚至不适合LR,那么你的NN结构就会出现问题。