我们计划使用Google Tensorflow构建图像分类器。
我想知道使用卷积深度神经网络训练自定义图像分类器的最低和最佳要求是什么?
具体问题包括:
- 每个类别至少需要提供多少张图片?
- 我们是否需要为每个类别提供大致相同数量的训练图片,或者每个类别的数量可以不同?
- 训练数据中包含错误图片数据的影响如何?例如,500张网球鞋图片和50张其他鞋子的图片。
- 是否有可能训练一个分类器,其类别数量远超过最近发布的Inception-v3模型?比如说:30,000个类别。
回答:
“每个类别至少需要提供多少张图片?”
这取决于你的训练方式。
如果从头开始训练一个全新的模型,完全监督学习:关于图片数量的经验法则是,可以参考MNIST和CIFAR任务。这些任务在大约每个类别5,000张图片的情况下似乎运作良好。这是在从头开始训练的情况下。
你可以从预先在ImageNet上训练的模型开始来启动你的网络。这个模型已经具备了良好的特征,因此它应该能够在较少的标记示例下学习分类新的类别。我认为这方面的研究还不够深入,无法给你一个具体的数字。
如果使用无标签数据进行训练,可能每个类别只需要100张标记图片。这个话题最近有很多研究工作,尽管这些研究的规模没有达到ImageNet的水平。简单实现的方法:
http://arxiv.org/abs/1507.00677
复杂实现的方法:
http://arxiv.org/abs/1507.02672http://arxiv.org/abs/1511.06390http://arxiv.org/abs/1511.06440
“我们是否需要为每个类别提供大致相同数量的训练图片,或者每个类别的数量可以不同?”
使用不同数量的示例进行训练是可行的。
“训练数据中包含错误图片数据的影响如何?例如,500张网球鞋图片和50张其他鞋子的图片。”
你应该使用这篇论文中描述的标签平滑技术:
http://arxiv.org/abs/1512.00567
根据你对标签错误率的估计来平滑标签。
“是否有可能训练一个分类器,其类别数量远超过最近发布的Inception-v3模型?比如说:30,000个类别。”
是的