我尝试识别每个数字的图片。我已经删除了数字以外的所有内容,因此除了数字在图片上的位置不同之外几乎没有噪音。我用的是Neuroph的图像识别gui,对训练有一些疑问。
似乎我对图片使用的分辨率越大,训练就越差。为什么是这样?我的训练集中有 100 张图片。每个数字 10 个。是不是太少了?为什么无论我做什么,每次训练都会收敛到某个数字,通常在总网络错误中介于 2-3 之间。
希望对你有所帮助。
编辑:
这是其中一个培训的照片
学的不多
最佳答案
信息呈指数增长!
当您提供更高分辨率的图像时,您最终会提供必须评估的额外信息。
如果您的分辨率是 10x10 像素,则每张图片有 100 个像素,而每位数字有 10 张图像,即 每位数字有 1000 像素。
现在,如果您将分辨率加倍至 20x20 像素,则每张图像将产生 400 像素或每位数字 4000 像素。
换句话说:增加分辨率会导致您必须评估每个数字的像素数量呈指数级增加。
添加更多(不必要的)像素会增加出错的可能性:
通常,在机器学习中,图片会被精简到最低限度(大小和颜色),以尽可能减少出错的空间。当您有更多像素时,算法可能会学到一些与图像中的实际形式完全无关的像素。
关于java - 神经网络训练,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3631325/