我试着识别每一个数字的图片。我已经删除了除数字之外的所有其他内容,因此除了数字在图片上的不同放置方式外,几乎没有其他噪声。我使用Neuroph的图像识别图形用户界面,并有一些关于训练的问题。
似乎我对图片使用的分辨率越高,训练效果就越差。为什么会这样呢?我的训练集中有100张图片。每个数字10。是不是太少了?为什么无论我做什么,每次训练都会收敛到某个数字,通常总网络误差在2-3之间。
希望你能帮忙。
编辑:
这是其中一次训练的照片

它没有学到太多东西
发布于 2010-09-03 06:29:19
信息量是指数增长的!
当你提供更高分辨率的图像时,你最终会给出额外的信息,这些信息必须进行评估。
如果你的分辨率是10x10px,这将导致每幅图像有100个像素,而你有10个图像,即每个数字1000个像素。
现在,如果将分辨率加倍到20x20px,则每个图像将达到400像素,或每个数字将达到4000像素。
换句话说:提高分辨率会导致每个数字必须计算的像素数的指数增加。
添加更多(不必要的)像素会增加出错的机会:
通常,在机器学习中,为了提供尽可能少的错误空间,图片被剥离到最小(尺寸和颜色)。当你有更多的像素时,算法可能会了解到一些与图像中的实际形状完全无关的像素。
发布于 2010-09-03 06:46:07
首先,我不得不赞同Lirik的评论,即增加分辨率在这里没有帮助。
除此之外,每个数字的10个样本很可能不足以让你的神经网络用来训练。如果你训练一个人识别一些他们不理解的陌生语言中的数字,那么一个数字的10个样本甚至可能不是足够的训练数据。通过将训练数据的大小增加到每个数字的250-300左右,看看是否能获得更好的结果。如果对你的特定网络一无所知,你很难准确地说出你需要多少。
我的猜测是,使用更多的训练数据和更低的分辨率图像,你会看到更好的结果。
https://stackoverflow.com/questions/3631325
复制相似问题