我正在测量卷积神经网络上的打印数字(0-9)。它在MNIST数据集上提供99%以上的准确度,但当我尝试使用安装在计算机上的字体(Ariel,Calibri,Cambria,Cambria math,Times New Roman)并训练字体生成的图像(每种字体104张图像(总计) 25种字体 - 每种字体4张图像(差别很小))训练误差率不低于80%,即准确率为20%。为什么?
这是“2”号图像样本 -
我将每张图片调整为28 x 28。
以下是更多细节: -
训练数据大小= 28 x 28张图像。 网络参数 - 作为LeNet5 网络架构 -
Input Layer -28x28
| Convolutional Layer - (Relu Activation);
| Pooling Layer - (Tanh Activation)
| Convolutional Layer - (Relu Activation)
| Local Layer(120 neurons) - (Relu)
| Fully Connected (Softmax Activation, 10 outputs)
这样可以在MNIST上获得99 +%的准确率。计算机生成的字体为何如此糟糕? CNN可以处理大量的数据差异。
答案 0 :(得分:2)
我看到两个可能的问题:
预处理:MNIST不仅是28px x 28px,而且还是:
NIST的原始黑白(双层)图像尺寸标准化,以适应20x20像素的盒子,同时保留其纵横比。由于归一化算法使用的抗锯齿技术,所得到的图像包含灰度级。通过计算像素的质心,并将图像平移到28x28场的中心位置,图像以28x28图像为中心。
<强>过拟合强>:
<强>说明强>
有趣的想法!您是否尝试过简单地在数据上应用经过培训的MNIST网络?结果是什么?
答案 1 :(得分:0)
这可能是一个过度拟合的问题。当您的网络过于复杂而无法解决问题时,可能会发生这种情况。 查看此文章:http://es.mathworks.com/help/nnet/ug/improve-neural-network-generalization-and-avoid-overfitting.html
答案 2 :(得分:0)
这绝对看起来像是过度拟合的问题。我看到你有两个卷积层,两个最大池层和两个完全连接。但总共有多少重量?每个类只有96个示例,这肯定小于您在CNN中的权重数。请记住,您希望训练集中的实例数至少比CNN中的权重多5倍。
您有两种解决方案可以改善您的CNN: