Keras 使用自动编码器的内部表示法进行异常检测

Keras 使用自动编码器的内部表示法进行异常检测,keras,neural-network,artificial-intelligence,autoencoder,anomaly-detection,Keras,Neural Network,Artificial Intelligence,Autoencoder,Anomaly Detection,我训练了一个自动编码器来识别“正”时间序列(该网络是一个简单的完全连接的网络,没有重复出现的层)。问题是,根据我的顾问所说,我应该尝试使用一些关于潜在空间的统计数据(如良好数据和异常数据之间潜在空间直方图的差异)来检测异常,但当我预测具有异常值的时间序列时,我得到的内部表示与良好数据相同。我相信这是因为我的网络只能重现正常的数据。 你有什么提示吗? 谢谢我猜您正试图通过使用网络重建错误来检测异常,即在一些正常时间序列上进行训练,然后在包含异常值的时间序列上进行检测。如果我进一步猜对了,您的顾问建

我训练了一个自动编码器来识别“正”时间序列(该网络是一个简单的完全连接的网络,没有重复出现的层)。问题是,根据我的顾问所说,我应该尝试使用一些关于潜在空间的统计数据(如良好数据和异常数据之间潜在空间直方图的差异)来检测异常,但当我预测具有异常值的时间序列时,我得到的内部表示与良好数据相同。我相信这是因为我的网络只能重现正常的数据。 你有什么提示吗?
谢谢

我猜您正试图通过使用网络重建错误来检测异常,即在一些正常时间序列上进行训练,然后在包含异常值的时间序列上进行检测。如果我进一步猜对了,您的顾问建议内部表示将告诉您有关异常性质的更多信息,即输入数据的哪些特征最不正常

首先要注意的是,您的网络仅使用合法数据构建的中间特性在检测模式下不会改变,因此在该模式下处理新数据点时,内部表示(每个中间层神经元的权重)不会改变


如果您对中间特征所代表的原始特征有很好的了解,则只能对异常值的根本原因(哪个维度对重建错误的贡献最大)进行推理。如果你有一个完全连接的自动编码器和几个隐藏层,其中每个特征对每个神经元的贡献越来越多地与其他特征交织在一起,这可能会非常困难。一个技巧是为每一组特征构建一个自动编码器,并将其用作异常预测的集合。这样,已知集合中的每个自动编码器负责一组特征,并且更容易知道每组特征如何导致异常。请看一个例子。

我投票将这个问题作为离题题题结束,因为它不是一个编程问题。