算法介绍:
FSL-SCNN是一种基于Siamese网络的应用于少样本的工业信息物理系统(CPS)中的少样本异常检测。
下图是算法框架图,其中左侧是工厂的CPS系统,用于提供数据样本,右侧是基于Siamese的FSL-SCNN算法,用于异常预测。
FSL-SCNN算法不直接预测输入样本数据的类别,而是根据优化的特征计算输入样本之间的距离,它构建了一个基于 CNN 的 Siamese 网络来解决少样本学习问题,因此即使仅使用少量样本数据也可以识别新类别。下图是详细的FSL-SCNN的算法结构图:
包括特征变换,特征编码和距离比较三个阶段,每个阶段都有先对应的损失计算公式,因此最终算法的损失函数包含三部分,每部分的实现情况见原论文:
特征变换:根据相对特征表示方案将原始数据 x 转换为 xi,也就是将工业信号转换成模型可操作的序列。
特征编码:CNN编码器,将输入的特征编码为嵌入特征。
距离比较:将输入的样本,分别 与选定的Anchor类,正类,负类样本 的嵌入特征进行欧式距离的比较,通过距离预测对应的类别。
数据集:
使用了在工业检测问题中的两个通用数据集Dnor和Dano,其中Dnor是正常样本集,Dano是异常样本集。
本文是通过假设Nnor>>Nano来描述少样本学习的,即正常样本的数量远大于异常样本的数量。
支持集:从Nano数据集选择的样本
查询集:未观察到的新类样本[个人理解是需要预测的样本]
在训练的每一个epoch中,都随机选择K类恶意攻击的样本,每类都包括C个样本。
训练过程:
优化器:SGD lr=0.1 800次迭代
预测过程:
将需要预测的样本xi输入一个子网络,得到相应的特征f(xi)(文中称其为嵌入特征),然后将这个特征f(xi)与支持集中的一个样本xj的嵌入特征f(xj)进行比较, D操作表示计算两个嵌入特征的欧式距离,然后接一个全连接层,最后用Softmax层输出概率。
𝑃(𝑥𝑖 , 𝑥𝑗)代表待预测样本xi和支持集样本xj是同一个类别的概率。
将xi和支持集中的每一个样本都进行上述操作,得到多个概率,最大概率时xj所在的样本类别,就是xi的类别。
简单来说,就是xi应该和支持集中某个样本的欧式距离最小,xi和该样本属于同一类别。