我尝试识别每张数字图片。我已经移除了图片中除数字之外的所有内容,因此除了数字在图片上的位置不同之外,几乎没有噪音。我使用Neuroph的图像识别GUI,并对训练有一些疑问。
似乎我使用的图片分辨率越大,训练效果就越差。这是为什么呢?我训练集里有100张图片,每个数字10张。是不是太少了?为什么无论我做什么,每次训练最终的网络总误差总是收敛到某个介于2到3之间的数字。
这是其中一次训练的图片
它学得不多
回答:
信息增加是指数级的!
当你提供更高分辨率的图像时,你实际上是在提供需要评估的额外信息。
如果你的分辨率是10×10像素,那么每张图像将有100个像素,你有每个数字10张图片,那就是每个数字1000个像素。
现在如果你将分辨率翻倍到20×20像素,那么每张图像将有400个像素,或者每个数字4000个像素。
换句话说:增加分辨率会导致你需要评估的每个数字的像素数量指数级增加。
增加更多(不必要的)像素会增加错误的几率:
通常,在机器学习中,图片会被简化到最低限度(无论是大小还是颜色),以尽可能减少错误的空间。当你有更多的像素时,算法可能会学习到一些与图像中实际形状完全无关的像素信息。