我尝试识别每个数字的图片。我删除了除数字以外的所有内容,这样除了数字在图片上的放置方式几乎没有噪音。我使用Neuroph的图像识别gui并对训练有一些疑问。
似乎我用于图片的分辨率越大,训练就越差。为什么是这样?我的训练集中有100张照片。每个数字10个。这可能太少了吗?为什么每次训练无论我做什么只是收敛到一些数字,通常在2-3个总网络错误中。
希望你能提供帮助。
编辑:
以下是其中一项培训的图片
它学到的不多
答案 0 :(得分:3)
信息增加是指数级的!
当您提供更高分辨率的图像时,您最终会提供必须评估的额外信息。
如果你的分辨率是10x10像素,那么每张图像会产生100个像素,而每个数字就会有10个图像,每个数字 1000像素。
现在,如果将分辨率加倍至20x20px,则会导致每张图像400像素或每位数4000像素。
换句话说:提高分辨率会导致每个数字必须评估的像素数增加指数。
添加更多(不必要的)像素会增加出错的可能性:
通常,在机器学习中,图片被剥离到最小(尺寸和颜色),以便尽可能少地提供错误空间。当您有更多像素时,算法可能会了解与图像中实际形状完全无关的像素。
答案 1 :(得分:0)
首先,我必须提出第二个Lirik的评论,即增加分辨率对此没有帮助。
除此之外,每个数字的10个样本很可能不足以让您的神经网络训练。如果您正在训练人以识别他们不理解的某种奇怪语言的数字,那么10个数字样本甚至可能不足以训练数据。通过将训练数据的大小增加到每个数字的250-300左右来查看是否可以获得更好的结果。如果不了解您的特定网络,很难说您需要多少。
我的猜测是,你会看到更多训练数据和低分辨率图像的更好结果。