为什么自动编码器可以很好地检测异常值?

数据挖掘 自动编码器
2022-03-04 19:04:45

除了它们是神经网络这一事实(这通常是优于其他算法的一个原因)之外,还有其他原因可以帮助自动编码器在异常值检测中表现良好吗?

我知道自动编码器通过将样本编码为低维表示,然后解码表示以重建样本来工作。由于异常值通常具有更高的重构,因此可以检测到它们。但是,这并不能说服我为什么自动编码器可以击败其他方法。是不是因为异常值的错误率很高,所以很容易被发现?如果是这样,那么是什么让重构误差如此之高?

欢迎直观和/或理论解释。

1个回答

它有助于首先理解为什么异常值检测通常是一个难题,以及为什么其他方法难以解决。

就其本质而言,异常值很少见,我们拥有的大多数数据都严重不平衡。很可能您根本没有足够的“阳性案例”/异常值来训练模型。

自动编码器解决了这个问题,因为它们本身并不试图识别异常值。正如您所描述的,他们基本上学会了以高分辨率性能对输入进行下采样和上采样。但是,当输入与通常的输入有很大不同时,上采样可能会导致比平时更多的错误,这有助于我们识别异常值。

重建错误更高,因为自动编码器主要/几乎完全是在非异常数据上训练的,所以当他们遇到异常值时,他们也无法处理它。

想象一下,一个自动编码器经过训练,可以对橙色图片进行下采样,然后对其进行上采样。如果我们将苹果的图片输入这个自动编码器,它不会产生非常准确的结果,这有助于我们识别输入实际上是一个异常值。