我试图通过复制论文"使用基于变分自动编码器的特征提取的无监督异常检测"中的方法来实现VAE。https://ieeexplore.ieee.org/document/8819434或这里
我的问题是为了将编码层输出应用于无监督的异常检测,这是如何实现的?到目前为止,我所做的是在为编码器创建图层后保存h5模型。然而,当我加载模型时,有一个警告说模型不包括训练部分。
任何帮助都会很感激。谢谢你
因此编码器输出两个向量,用均值和(对数)方差向量参数化后验分布q(z|x)
。他们使用该分布的平均向量作为数据输入的低维压缩表示。该输入用于使用更传统的方法执行异常检测,这些方法通常难以处理高维输入。
这些传统方法都是通过pyod实现的。或者,你也可以使用scikit-learn。但是,我建议检查前一个包,因为它们的文档字符串包含您需要的所有解释,以了解如何使用特定方法进行异常检测。
所以,你需要做的是在系统的正常数据上训练一个VAE。然后使用编码器输出的平均向量作为其他方法的输入。
要使序列化正常工作,您可能需要覆盖get_config
和from_config
(见这里)。但是,如果没有具体的错误消息和实现的大致结构,就很难说问题出在哪里。