神经网络训练
我尝试识别每个数字的图片。我已经删除了除数字之外的所有内容,因此除了数字在图片上的放置方式不同之外,几乎没有任何噪音。我使用 Neuroph 的图像识别 GUI,并对训练有一些疑问。
看来我使用的图片分辨率越大,训练效果就越差。这是为什么呢?我的训练集中有 100 张图片。每个数字 10。这可能是太少了吗?为什么每次训练,无论我做什么,都会收敛到总网络误差通常在 2-3 之间的某个数字。
这是其中一次培训的照片
学到的东西不多
I try to recognize pictures of every digit. I have removed everything else than the digit so that there is almost no noise other than the digit is placed differently on the pictures. I use Neuroph's image recognizing gui and have some questions about training.
It seems that the larger resolution I use for the pictures the worser the training becomes. Why is this? I have 100 pictures in my training set. 10 of each digit. Is that maybe too little? Why is every training no matter what i do just converging to some number usually between 2-3 in total network error.
Here is a picture of one of the trainings
It doesn't learn much
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
信息呈指数增长!
当您提供更高分辨率的图像时,您最终会提供必须评估的额外信息。
如果您的分辨率为 10x10px,则每个图像有 100 个像素,而每个数字有 10 个图像,即每个数字1000 像素。
现在,如果将分辨率加倍至 20x20px,则每个图像将有 400 像素,或每个数字 4000 像素。
换句话说:提高分辨率会导致您必须评估的每个数字的像素数量呈指数级增长。
添加更多(不必要的)像素会增加出错的可能性:
通常,在机器学习中,图片会被精简到最低限度(尺寸和颜色),以便提供尽可能小的出错空间可能的。当你有更多的像素时,算法可能会了解一些与图像中的实际形式完全无关的像素。
The information increase is exponential!
When you provide images with higher resolution, you end up giving extra information which has to be evaluated.
If your resolution is 10x10px, that would result in 100 pixels per image and you have 10 images per digit, that's 1000 pixels per digit.
Now if you double the resolution to 20x20px it would result in 400 pixels per image or 4000 pixels per digit.
In other words: increasing the resolution results in an exponential increase for the number of pixels you have to evaluate per each digit.
Adding more (unnecessary) pixels increases the chance of errors:
Usually, in machine learning the pictures are stripped down to the bare minimum (both in size and color) in order to provide as little room for error as possible. When you have more pixels, the algorithm may learn something about those pixels that is completely irrelevant to the actual form in the image.
首先,我必须赞同 Lirik 的评论,即增加分辨率在这里没有帮助。
除此之外,每个数字 10 个样本很可能不足以供神经网络训练。如果您正在训练一个人类来识别他们无法理解的某种奇怪语言中的数字,那么 10 个数字样本甚至可能还不够。看看将训练数据的大小增加到每个数字 250-300 左右是否会获得更好的结果。在不了解您的特定网络的情况下,很难说您到底需要多少。
我的猜测是,通过更多的训练数据和较低分辨率的图像,您会看到更好的结果。
For one, I have to second Lirik's comment that increasing the resolution is not helpful here.
Aside from that, 10 samples of each digit is most likely not enough data for your neural net to train with. 10 samples of a digit might not even be enough training data if you were training a human to recognize digits in some wierd language that they don't understand. See if you get better results by increasing the size of your training data to around 250-300 of each digit. Exactly how much you will need is hard to say without knowing anything about your particular net.
My guess is that you will see better results with more training data and lower resolution images.