神经网络训练

时间:2010-09-02 21:13:20

标签: java neural-network image-recognition

我尝试识别每个数字的图片。我删除了除数字以外的所有内容,这样除了数字在图片上的放置方式几乎没有噪音。我使用Neuroph的图像识别gui并对训练有一些疑问。

似乎我用于图片的分辨率越大,训练就越差。为什么是这样?我的训练集中有100张照片。每个数字10个。这可能太少了吗?为什么每次训练无论我做什么只是收敛到一些数字,通常在2-3个总网络错误中。

希望你能提供帮助。

编辑:

以下是其中一项培训的图片 alt text

它学到的不多

2 个答案:

答案 0 :(得分:3)

信息增加是指数级的!

当您提供更高分辨率的图像时,您最终会提供必须评估的额外信息。

如果你的分辨率是10x10像素,那么每张图像会产生100个像素,而每个数字就会有10个图像,每个数字 1000像素

现在,如果将分辨率加倍至20x20px,则会导致每张图像400像素或每位数4000像素

换句话说:提高分辨率会导致每个数字必须评估的像素数增加指数

添加更多(不必要的)像素会增加出错的可能性:

通常,在机器学习中,图片被剥离到最小(尺寸和颜色),以便尽可能少地提供错误空间。当您有更多像素时,算法可能会了解与图像中实际形状完全无关的像素。

答案 1 :(得分:0)

首先,我必须提出第二个Lirik的评论,即增加分辨率对此没有帮助。

除此之外,每个数字的10个样本很可能不足以让您的神经网络训练。如果您正在训练以识别他们不理解的某种奇怪语言的数字,那么10个数字样本甚至可能不足以训练数据。通过将训练数据的大小增加到每个数字的250-300左右来查看是否可以获得更好的结果。如果不了解您的特定网络,很难说您需要多少。

我的猜测是,你会看到更多训练数据和低分辨率图像的更好结果。