分布漂移下的实时异常检测技术

3 阅读6分钟

理论分析与实验证明:裁剪SGD实现稳健的在线统计估计

异常检测旨在识别偏离统计规范的行为。异常可能表明某种恶意活动,例如试图破解网站密码、未经授权的信用卡购买或对服务器的侧信道攻击。异常检测器通常是这样的模型:根据输入是异常的可能性对其进行评分,并使用某个阈值将分数转换为二元决策。通常,这些阈值是通过对历史数据进行静态分析来确定的。

在许多实际场景中,由于单个数据项庞大、到达速度快且来源多样,静态分析是不可行的。此外,数据的分布可能会随时间推移而变化——例如,在假日购物活动期间,或者当某项在线服务突然变得更受欢迎时。在这种情况下,异常阈值需要自动调整。因此,实际的异常检测通常需要在线统计估计,即对稳定数据流进行连续分布估计。

在今年的神经信息处理系统会议(NeurIPS)上,我们提出了一个分析框架,该框架使我们能够刻画一种在线估计器的特征,该估计器能够同时处理:

  1. 异常值
  2. 分布漂移
  3. 高维数据
  4. 重尾数据
  5. 对数据分布不做任何先验假设

利用我们的分析框架,我们证明了裁剪随机梯度下降(clipped SGD)——它限制了单个数据样本对最终统计模型的影响程度——可以用于训练这种实时估计器。我们还展示了如何在仅假设数据方差不为无穷大的前提下,计算每个样本的影响上限,即裁剪阈值。我们的算法不需要任何关于数据方差的先验界限或估计,而是能够自适应地调整方差。

最后,我们还展示了如何在这种情况下计算模型的最优学习率。这个最优学习率介于以下两者之间:已知在无噪声环境下对分布漂移最优的高学习率,以及已知在无分布漂移环境下最优的慢衰减学习率。

我们的论文首次证明存在一种能够同时处理异常值和分布漂移的估计算法;之前的分析只针对其中一种情况,从未同时处理两者。通过我们的方法训练的估计器已用于某威胁检测服务中进行异常检测。

理论框架

我们将异常值和分布漂移都建模为对抗性攻击的结果,但这是一个“不知情”的对抗者,它选择干预措施后便不再干预。想象一下,在我们的学习游戏开始之前,对抗者选择了一个概率分布序列和一个破坏函数序列,这些破坏函数会破坏从分布中选择的随机样本。分布的变化模拟了漂移,被破坏的样本模拟了异常。

当然,如果所有样本都被破坏,或者数据流波动剧烈,那么异常就无从谈起:因为没有足够的统计规律性来偏离。然而,现实世界的数据很少是对抗性的,破坏次数和分布漂移的幅度通常是适度的。

我们建立了一个理论界限,表明在这种适度条件下,裁剪SGD表现良好。该算法不需要关于破坏次数或漂移幅度的先验信息或界限;随着数据流复杂性的增加(通过破坏次数和分布漂移幅度来衡量),其性能会自动且平滑地下降。

裁剪SGD

我们论文的核心是证明在这种情况下裁剪SGD能够收敛到一个可靠的估计器。该证明是归纳性的。首先,我们证明了,给定特定输入的误差,后续输入误差的增加仅取决于该后续输入本身的可计算属性。基于这个结果,我们证明如果给定输入的误差低于某个特定阈值,那么如果下一个输入未被破坏,其误差将以高概率也低于该阈值。

接下来,我们证明如果下一个输入被破坏,对其梯度进行裁剪将确保其误差再次以高概率回落到阈值以下。

我们使用两种主要方法来证明这个结果。第一种方法是在误差函数中添加一个自由参数,并相应地计算误差阈值,以便将任何不等式转换为二次方程。证明不等式就简化为找到方程的正根。

另一种方法是使用鞅集中理论来证明,虽然新输入引入的额外误差项可能导致误差暂时超过阈值,但在随后的迭代中,它将以高概率回落到阈值以下。

这项工作延续了先前两篇论文的研究思路:2022年在国际机器学习大会(ICML)上发表的“FITNESS:(微调新样本和相似样本)以检测具有漂移和异常值的流中的异常”,以及今年早些时候在不确定性人工智能会议(UAI)上发表的“在线重尾变点检测”。

实验结果

除了理论分析,我们还在经典的MNIST手写数字数据集上测试了我们的方法。在我们的情境中,给定数字(我们从0开始)在不同旋转下的书写版本构成常规输入,而其他数字则构成异常。然而,随着时间的推移,基线输入从初始数字(例如0)切换到另一个数字(例如1),以代表分布漂移。

我们的模型是一个逻辑回归模型,这是一个相对简单的模型,可以在每次输入后更新。我们的实验表明,确实,使用裁剪SGD更新模型使其既能适应分布漂移,又能识别异常。

然而,我们理论分析的一个结果是,尽管裁剪SGD有很高可能性收敛于一个好的估计器,但其收敛速度是次优的。在正在进行的工作中,我们正在研究如何提高收敛速度,以确保使用更少的正常样本就能实现更准确的异常检测。FINISHED