神经网络训练标准:如何在不过度训练的情况下训练多个类别(即形状和颜色)

Neural Network Training Criteria: How to Train on Multiple Categories (i.e. shape and color) Without Over-Training

我一直在探索通过神经网络进行图像识别。经过一些研究,我开始使用 Encog 和他们的 "ImageNeuralNetwork.java" 示例。

在他们的示例中,他们使用每枚美国货币硬币(便士、10 美分等)的一张图像作为训练集,然后相应地识别给定的硬币图像。

现在我想以他们的例子为起点,用不同的图像进行练习。我正在尝试使用 shapes/colors 作为训练。例如,我想让程序识别红色圆圈和红色矩形之间的区别,但我也想识别红色圆圈和蓝色圆圈之间的区别。

我记得读过,你不应该过度训练并给出所有可能的训练图像组合(例如在这种情况下给出 4 个图像,2 个不同颜色的圆圈和 2 个不同颜色的矩形)。

我是否仍然可以使用 Encog 的硬币识别示例来训练多个类别(形状和颜色),或者这是另一个概念?在不提供所有可能的 color/shape 组合并因此过度训练的情况下,我可以提供特定的最小数量的训练图像吗?

谈到避免过度训练,没有可靠的经验法则。这完全取决于您的网络结构和数据特征。大多数构建神经网络的人通过反复试验来解决过度训练(或过度拟合)的问题。只要您的网络以高精度对训练数据进行分类,而以低精度对测试数据进行分类,您就会过度训练,您将需要减少训练迭代并重新构建网络并不断重复此过程。所以要回答你的第二个问题,没有特定的最小图像数量。

关于你的第一个问题,你绝对可以在多个类别上进行训练,并且有几种方法可以做到这一点......通过为每个类别设置多个输出神经元或通过编码输出......但最常见的是每个类别都有一个单独的网络效果更好。在大多数情况下,与神经网络相比,对于颜色或形状识别,主成分分析的效果更好。