首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于CNN的数字识别

基于CNN的数字识别
EN

Stack Overflow用户
提问于 2016-07-15 15:01:47
回答 3查看 1.7K关注 0票数 7

我正在卷积神经网络上测试打印的数字(0-9)。它在MNIST数据集上提供了99+ %的准确率,但当我尝试使用安装在计算机上的字体(Ariel,Calibri,Cambria,Cambria Mathematic,Times New Roman)并训练由字体生成的图像(每种字体104张图像(总共25种字体-每种字体4张图像(差别很小))时,训练错误率不低于80%,即20%的准确率。为什么?

这是"2“个图片样本-

我调整了每个图像的大小为28 x 28。

以下是更多细节:

训练数据大小= 28 x 28图像。网络参数-作为网络的LeNet5架构-

代码语言:javascript
复制
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可以处理数据中的大量差异。

EN

回答 3

Stack Overflow用户

发布于 2016-07-17 19:24:35

我认为有两个可能的问题:

Preprocessing:MNIST不仅是28px x 28px,而且:

来自NIST的原始黑白(双层)图像的大小进行了归一化,以适合20x20像素的方框,同时保留了它们的纵横比。作为归一化算法使用的反走样技术的结果,结果图像包含灰度等级。通过计算像素的质心并平移图像以将该点定位在28x28场的中心,将图像置于28x28图像的中心。

来源:MNIST website

过拟合

  • MNIST有60,000个训练示例和10,000个测试示例。你有多少数据集?你有没有尝试过dropout (参见paper)?
  • Did
  • ?)(例如,稍微移动图像,可能稍微改变一下宽高比,你也可以添加噪声-但是,我不认为这些会有帮助)
  • 你尝试过较小的网络吗?(你的过滤器有多大/你有多少过滤器?)

备注

有趣的想法!您是否尝试过简单地将经过训练的MNIST网络应用于您的数据?结果是什么?

票数 2
EN

Stack Overflow用户

发布于 2016-07-15 16:01:40

这可能是一个过度拟合的问题。当您的网络太复杂而无法解决问题时,可能会发生这种情况。查看这篇文章:http://es.mathworks.com/help/nnet/ug/improve-neural-network-generalization-and-avoid-overfitting.html

票数 0
EN

Stack Overflow用户

发布于 2016-07-17 17:13:27

这看起来肯定是一个过度拟合的问题。我看到你有两个卷积层,两个最大池层和两个完全连接的层。但是总共有多少个权重呢?你每个类只有96个例子,这肯定比你在CNN中的权重要少。请记住,您希望训练集中的实例数量至少是CNN中权重的5倍。

你有两个解决方案来提高你的CNN:

  • 动摇训练集中的每个实例。每个数字大约有1个像素。它已经将你的训练集乘以9。
  • 使用变换器层。它将在每个时期将弹性变形添加到每个数字。通过人为地增加你的训练集,它会加强很多学习。此外,它将使预测其他字体变得更加有效。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38389785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档