我正在使用德国交通标志检测基准数据库进行交通标志识别工作。这有43个班级,每个班级至少有400个图像。图像最多可能有3个交通标志。
当我随机选择图像进行训练和验证时,我的网络测试准确度会有很大差异。我构建了两个数据集:一个具有75%的训练图像和25%的验证图像;另一方有70%的训练图像和30%的验证图像。
我正在使用具有相同超参数的GoogLeNet进行训练,包括30个时期。
训练结束后,我使用一组专为测试而设计的图像进行测试。使用第一个数据集,我的准确度比第二个数据集低近10%。有人可以解释一下吗?
可能是随机选择"更容易"培训的图像,这就是为什么我得到的结果较低?
P.S。对于这两个数据集我使用相同的图像,只是按百分比不同地划分。
答案 0 :(得分:2)
你有多少种标志?知道GoogLeNet在这个数据集上运行良好吗?请记住,GoogLeNet专为在ILSVRC 2012数据集上表现良好而设计:近130万个训练图像,1000个课程。它扩展到数百个并行内核,为该问题提供了很大的灵活性。
如果你有一个小得多的问题 - 比如少数几个类别的900张图片 - 那么GoogLeNet的数量可能很容易超出你的应用程序。例如,请注意,1000个参数的最终完全连接层不仅仅需要单独识别训练集中的每个图像。 128-200 +过滤器的中间层将发现各种虚假特征,例如六个速度区标志周围的绿化模式。
另外,请记住,GoogLeNet是为了识别输入图像中的单个数字而构建的:交通标志数据库可能在图像中最多有6个符号。这也会使您的训练混乱,具体取决于您如何对多重图像进行分类。
如果您认为此任务需要GoogLeNet复杂性,我建议您减少图层的宽度。例如,在ILSVRC历史表明您的模型学会识别面部特征,车辆部件和花瓣的情况下,道路标志在其视觉元素中受到更多限制。因此,尽管您可能希望第一层(边缘和区域检测)保持饱满,但在中间层中不需要这么多过滤器。
不,我不能给你一个可靠的起点:我没有完成将模型调整到问题所需的几个月的实验。如果你想看一个极端的例子,可以按照建议的迭代次数训练GoogLeNet,但是将它输入MNIST数据库。更好的是,给它文本处理器的井字位置屏幕截图,分类为“赢”,“平局”和“输”。