使用未标记数据集的自动编码器进行异常检测(如何构造输入数据)



我是深度学习领域的新手,我想询问使用自动编码器进行异常检测的未标记数据集。 我令人困惑的部分从以下几个问题开始:

1)一些帖子说从原始数据集中分离出异常和非异常(假设被标记),并使用唯一的非异常数据集训练AE(通常非异常的数量会更占主导地位)。所以,问题是,如果数据集未标记,我将如何分离数据集?

2) 如果我使用原始未标记数据集进行训练,如何检测异常数据?

数据标签不会进入自动编码器。

自动编码器由两部分组成 编码器和解码器

Encoder:它将输入数据编码,例如将具有 784 个特征的样本编码为 50 个特征

Decoder:从这 50 个特征中,它将其转换回原始特征,即 784 个特征。

现在要检测异常, 如果你传递了一个unknown sample,它应该被转换回它的original sample,没有太多loss。 但是,如果将其转换回来有lot of error。那么它可能是一个anomaly.

图片来源:towardsdatascience.com

我想你自己已经部分回答了这个问题:异常的定义是它应该被视为"罕见事件"。因此,即使您不知道标签,您的训练数据也只会包含很少的此类样本,并且主要了解数据通常的样子。因此,无论是在训练期间还是在预测时,对于异常情况,您的误差都会很大。但是由于这些示例应该很少出现,因此这不会对您的嵌入产生太大影响。

最后,如果您真的可以证明您正在检查的异常是罕见的,您可能不需要太多的预处理或标记。如果它更频繁地发生(很难给出阈值,但我会说它应该是<<1%),你的AE可能会接收到该信号,你真的必须获得标签才能拆分数据......但话又说回来:这不会再是一个异常了,对吧?然后,您可以继续使用此数据训练(平衡)分类器。

相关内容

  • 没有找到相关文章

最新更新