【问题标题】:One class classification of images using Neural Network使用神经网络的一类图像分类
【发布时间】:2020-11-08 17:15:27
【问题描述】:

目标是对狗和非狗进行分类。训练数据集仅包含狗图像。神经网络将仅使用此训练数据集进行训练,然后使用包含狗和非狗图像的测试数据集进行测试。

我关注了encoder Datacamp tutorial,就我而言,自动编码器将所有测试图像分类为狗,这是错误的。

为一类分类构建 CNN 也是不可能的。知道怎么做吗?

【问题讨论】:

  • 然后你必须对狗和不狗进行分类。所以你必须上课。一类是上面有狗的图像,另一类是没有狗的图像。所以实际上是完全随机的图像。
  • @TheodorPeifer 是的,你是对的。训练过程只能使用仅包含狗图像的训练数据集。

标签: tensorflow keras neural-network classification


【解决方案1】:

您所问的正确术语是二元分类

您可以安全地使用 CNN 进行二元分类。问题是如何对输出层进行建模。您可以使用带有两个输出单元的 softmax 层(argmax(output) 是第 1 类:狗,第 2 类:不是狗)或使用更传统的方法,使用单个 sigmoid 单元作为输出(输出>0.5:狗,

当然,您必须调整数据标签以适应任何一种方法。

编辑:您需要狗的图像和不包含狗的图像。网络需要知道两者的分布。想想你的用例和你期望什么样的图像不是狗。然后收集不是狗的图像并相应地标记它们。

【讨论】:

  • CNN 将仅使用狗图像进行训练,这可能吗?有关如何执行此操作的任何示例?尤其是在单个 sigmoid 上。
  • @jwen 您需要狗和非狗图像,通常这应该是 50-50,但它可能会出现偏差,因为这实际上取决于数据集中的许多细节。首先,您可以收集用户可能遇到的不是狗的图像,并将它们标记为“非狗”。不幸的是,没有办法解决这个问题。获得平衡的数据集是一个很大的话题,我们无法在此讨论,我建议您阅读更多内容。
猜你喜欢
  • 2017-12-21
  • 2021-12-25
  • 2015-06-02
  • 2012-07-15
  • 2011-12-03
  • 1970-01-01
  • 2019-07-17
  • 2013-08-24
  • 2018-09-04
相关资源
最近更新 更多