【问题标题】:Image recognition classification in convolution neural network卷积神经网络中的图像识别分类
【发布时间】:2017-02-12 04:11:03
【问题描述】:

我正在使用卷积神经网络来训练我的模型,其中包含两个类 Horse 和 Lion,如果我使用狗的图像,我希望模型评估返回“以上都不是”,知道我应该如何训练我的模型做到了吗?

【问题讨论】:

  • 用 3 个类而不是 2 个来训练它:“Horse”、“Lion”和“None of the above”。

标签: tensorflow torch cntk


【解决方案1】:

您可以通过两种方式来构建它:

  1. 创建第三个标签“Other”,并继续让您的卷积网络使用 softmax 归一化来输出概率,使得 p(Horse)、p(Lion) 和 p(Other) 相加为 1.0。然后只需添加任意数量的没有马或狮子的图片,并用其他标记它们

  2. 将您的系统重新构建为检测而不是分类 - 即它查看任何给定的图片并“检测”其中是否有马或狮子,可能两者都不存在,一个或两者都存在。在这个系统中,您不会使用 p(Horse) + p(Lion) = 1.0 的 softmax 约束,您只需独立训练每个类别检测。然后包含既不是 Horses 也不是 Lions 的训练数据,并确保它们被标记为 Horse=0 和 Lion=0。

希望有帮助!

【讨论】:

  • 试试你的建议,“添加任意数量的没有马或狮子的图片”,我上传一张没有马和狮子的图片进行测试,结果大约是马 40% 的 30%狮子和其他 30%,我猜这是由图片的背景引起的,例如如果一张马/狮子的照片是在某物的背景下拍摄的,只要测试图片(没有马/狮子)具有相似的背景,在 softmax 之后就会以高百分比结束,有什么想法吗?
  • 您要训练多少个马/狮子/其他样本?请记住,像 imageNet 这样的比赛有成千上万的图像,并且经常使用 10 层(如果不是数百层)的网络。获得准确的输出需要大量的工作和训练数据(不像 mnist,这是一个非常容易开始的例子)
  • 我目前每个类别有 15 个,有 3 x (convolution, ReLu, Maxpool) 层,每个类别有 5 个的测试数据显示 3% 的错误率,看起来我需要更多,你有什么建议?
  • 我想你已经明白了这一点,但对于可能浏览这个问题的其他人来说:60 张图片和没有图片一样好。如果你们遇到类似的问题,请尝试至少拥有数百张图像。例如,在 CIFAR-10 中,每个类别有 6000 张图片。 CNTK 的图像处理模块提供了裁剪和调整大小的工具,因此只需用谷歌搜索大量的狮子、马和其他东西就足够了。
猜你喜欢
  • 2016-10-23
  • 1970-01-01
  • 1970-01-01
  • 2016-10-03
  • 2019-12-10
  • 2019-01-30
  • 1970-01-01
  • 1970-01-01
  • 2017-01-01
相关资源
最近更新 更多