- 用于特征提取的深度学习
- 优点
- 利用现有模型便利性高:可以直接使用预训练的深度模型(如AlexNet、VGG和ResNet)提取低维特征,这些模型已经在大规模数据上进行了训练,能够快速获取数据的有效表示,节省了大量的训练时间和计算资源。
- 降维效果显著:无论是使用预训练模型还是专门训练深度特征提取模型(如自动编码器网络),都能够将高维和/或非线性可分数据转换为低维特征表示,这使得数据在新的低维空间中更易于处理,有助于后续的异常检测。
- 模型训练相对简单:训练方式通常比较直接,例如无监督的预训练或者以最小化重建误差等方式进行监督训练,易于理解和实现。
- 缺点
- 特征与异常检测脱节:特征提取和异常评分是完全独立的过程,提取的特征不一定针对异常检测进行优化,可能只是数据的一种通用表示。这就导致后续使用这些特征进行异常检测时,可能无法充分利用数据中的异常信息,得到的异常分数可能是次优的。
- 对预训练模型的依赖:如果依赖预训练模型,可能会受到预训练任务和数据的限制。这些模型可能无法很好地适应特定的异常检测任务,尤其是当数据分布和预训练数据差异较大时,其性能会受到影响。
- 学习正常性的特征表示
- 优点
- 紧密结合异常检测目标:不是简单地提取特征,而是在学习特征的过程中就考虑如何利用这些特征来区分正常和异常数据。例如通过自动编码器的重建误差、生成对抗网络的生成差异、预测性建模的预测误差、自监督分类的分类不一致性等来判断异常,使得特征学习和异常检测相互关联,更有针对性。
- 能够学习数据正常模式:通过各种方式(如自动编码器学习数据重建、生成对抗网络学习生成正常数据等)学习能够代表数据正常状态的特征表示,对于理解数据的正常模式很有帮助,进而可以更好地发现与正常模式不符的异常。
- 适用于多种数据类型和场景:包括通用正常性特征学习中的多种方法(自动编码器、生成对抗网络、预测性建模、自监督分类)和依赖异常度量的特征学习(基于距离、单类分类、基于聚类的度量),可以应用于不同类型的数据(如图像、序列等)和各种异常检测场景。
- 缺点
- 模型结构和训练复杂:模型结构可能更复杂,因为需要将特征学习和异常检测的目标融合在一起。例如生成对抗网络需要同时训练生成器和判别器,自监督分类需要构建自监督任务等,训练过程涉及到多个部分的协同优化,难度较大。
- 可能受限于正常数据假设:在学习正常性特征表示的过程中,很多方法都基于对正常数据的假设。例如假设正常数据能够很好地重建、正常数据在潜在空间中有特定的生成模式、正常数据符合某种时间或聚类规律等。如果这些假设在实际数据中不成立,或者数据中的正常模式非常复杂难以学习,那么模型的性能就会受到影响。
- 计算成本较高:尤其是一些复杂的方法,如生成对抗网络用于异常检测时,由于其训练过程涉及生成对抗的博弈过程,可能需要大量的计算资源和时间来训练,导致效率较低。
- 端到端异常分数学习
- 优点
- 直接优化异常分数:以端到端的方式直接学习标量异常分数,避免了中间过程(如先学习特征再计算异常分数)可能导致的信息丢失和次优问题,使得异常分数的学习更加高效和准确。
- 不受现有异常度量限制:不依赖于现有的异常度量来进行中间转换,通过设计新的损失函数等方式来直接学习异常分数,代表了一种更灵活、不受特定异常度量约束的模型设计方向,可以更好地适应不同的数据和异常情况。
- 融合多种信息进行学习:能够将顺序或判别信息等融入到异常评分网络之中,综合考虑多种因素来学习异常分数,例如排序模型可以根据数据的顺序关系、先验驱动模型可以利用先验分布信息等,从而提高异常检测的性能。
- 缺点
- 对标记数据需求或假设较多:一些方法至少需要某种形式的标记异常,如排序模型在有标记异常的情况下能更好地学习排序关系。对于完全无监督的情况,虽然也有一些方法尝试解决,但与半监督方法相比可能性能仍有差距,并且可能无法推广到与标记异常表现出不同异常特征的未知异常。
- 模型和训练复杂:需要设计合适的神经网络结构和损失函数来实现端到端的学习,这通常涉及到比较复杂的数学和模型构建知识。例如,softmax似然模型需要合理划分类别和状态,先验驱动模型涉及贝叶斯相关的理论和计算等,对于研究者的要求较高,并且训练过程可能也比较复杂,需要更多的调优工作。
- 计算成本和可解释性问题:在计算过程中,可能涉及大量的计算,如softmax似然模型计算似然函数时可能有较高的计算成本。并且由于模型结构复杂,其输出的异常分数可能较难解释,在一些需要明确解释异常原因的场景中可能受到限制。