【问题标题】:Deep Learning - classifying whether a given image is an anomaly/novelty/outlier?深度学习 - 对给定图像是否是异常/新奇/异常值进行分类?
【发布时间】:2019-08-30 08:35:32
【问题描述】:

我只有来自实验的“正”类图像数据,任务是使用深度学习网络训练它们。与上述类别稍有不同的任何事物都应归类为异常/异常值? [从同一个实验中提取负类数据是一项相当艰巨的任务]

P.S : 这两类数据之间不会有太大的区别。任务是使用深度学习,而无需从图像中定义或给出任何特征。此外,只有有限数量的图像(大约 300-400 张)可用于正类数据。

Positive class Image

A simple guess of what an anomalous image would look like

我相信这完全不是无监督学习,因为我知道其中一个类的标签。我尝试为此使用 OneClassSVM 而不定义任何功能(刚刚尝试过 - 关于 SVM 的知识不多)。 此外,尝试使用此“https://github.com/artem-hryb/cnn-anomaly-detection-keras”链接中的卷积自动编码器和“https://github.com/otenim/AnomalyDetectionUsingAutoencoder”中的深度自动编码器。基于对上述模型的训练设置了一些阈值,然后用于预测给定图像是否为异常。预测不正确。

如果有人能指出我正确的方向,那将有很大帮助。

【问题讨论】:

  • 既然你知道你是“正常”数据,只需将所有其他数据编码为“异常”,然后你就可以运行 2 类卷积神经网络
  • 嗨。如果我理解正确,我需要“其他”类数据将它们编码为异常,对吧!?如果我只有“一类”数据,我不知道该怎么做。你能详细说明一下吗。 (对不起,如果这听起来很傻)
  • 据我了解,您有两种图像。 “正常”图像,您知道在您的数据集中什么是正常图像,并且所有“正常”图像都属于同一类。 “异常”图像,它们可以属于不同的类别,您不知道它们的标签。
  • 由于您的目标是知道图像属于“正常”还是“异常”,您可以对所有不同于正常类别的图像进行编码分配标签“异常”。我不太清楚你的问题(在主帖中)所以我可能错了
  • 糟糕,很抱歉造成误会。我绝对只有一类数据!我根本没有任何“负面”类数据可以训练。上面我放的“负面”图片只是对它可能是什么样子的猜测。

标签: keras deep-learning conv-neural-network autoencoder anomaly-detection


【解决方案1】:

使用预训练的 CNN(例如在 ImageNet 上)为您的图像提取特征向量。然后在该特征表示上训练一个自动编码器。这应该比直接在像素上训练自动编码器更容易学习更高级别的差异。

【讨论】:

    猜你喜欢
    • 2017-09-12
    • 2016-10-13
    • 2015-07-08
    • 1970-01-01
    • 2019-09-13
    • 1970-01-01
    • 2017-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多