前言:这是上一篇文章Temporal logic inference for classification and prediction from data的姊妹篇,出自于同一课题组的研究人员,文章比较短,重复的部分比较多,就顺便读掉了。
主要参考文献:
A. Jones, Z. Kong and C. Belta, “Anomaly detection in cyber-physical systems: A formal methods approach,” 53rd IEEE Conference on Decision and Control, 2014, pp. 848-853, doi: 10.1109/CDC.2014.7039487.
文章目录
概览
本文对前文进行了扩展,提出了不基于因果形式的iPSTL结构,不仅支持了非监督异常检测场景,并把时序逻辑公式拓展到了在线监督场景。
流水账笔记
1 Introduction
本文自称是首篇将形式化方法应用于异常检测领域的文献,提出了一种model-free的无监督学习算法,得出的公式同样可以用于在线监控场景。
2 Mathematical Preliminaries
- iSTL(iPSTL)
参考rSTL(rPSTL)但不要求一定要有因果形式,即" ⇒ \Rightarrow ⇒"。 - 其他
参考上一篇文献
3 Problem Formulation
这里将正常系统记作 S N \mathcal{S}_N SN,有安全隐患的系统记作 S T \mathcal{S}_T ST。俗话说的好,“幸福的人生是相似的,不幸的人生各有各的不幸”,所以可以理解 L ( S N ) ⊂ L ( S T ) L(\mathcal{S}_N) \subset L(\mathcal{S}_T) L(SN)⊂L(ST),有安全隐患的系统可以产生正常信号,也能在受到攻击时产生各种各样奇奇怪怪的异常信号。
那么怎么直到系统又没有收到攻击呢?最简单的把所有的正常行为描述出来,满足不了的就是异常行为。要描述正常的行为,在这里也就是得到时序逻辑公式,使其误分类率更低。
4 Solution
单类SVM (OCSVM)
单类支持向量机是异常检测领域的经典算法,处理的是没有立群样本的非监督的情景。单类SVM将单类分类问题是为一个特殊的二类分类问题,在特征空间中找一个超平面
w
T
ϕ
(
x
)
−
ρ
=
0
w^T\phi(x)-\rho=0
wTϕ(x)−ρ=0最大化样本点和原点之间的距离
ρ
∣
∣
w
∣
∣
\frac{\rho}{||w||}
∣∣w∣∣ρ。
为了提高鲁棒性(允许部分样本在划分范围外),引入松弛变量 ζ \zeta ζ,最大化问题就转化为了以下优化问题:
min
w
,
ρ
,
ζ
(
1
2
∣
∣
w
∣
∣
2
+
1
v
n
∑
i
=
1
n
ζ
i
−
ρ
)
s
.
t
.
(
w
⋅
ϕ
(
x
i
)
)
≥
ρ
−
ζ
i
a
n
d
ζ
i
≤
0
∀
i
\min\limits_{w,\rho,\zeta}(\frac{1}{2}||w||^2+\frac{1}{vn}\sum\limits_{i=1}^{n}\zeta_i-\rho)\\ s.t. (w\cdot\phi(x_i))\geq\rho-\zeta_i \ and\ \zeta_i\leq0 \ \forall i
w,ρ,ζmin(21∣∣w∣∣2+vn1i=1∑nζi−ρ)s.t.(w⋅ϕ(xi))≥ρ−ζi and ζi≤0 ∀i
那么上面这个优化函数是怎么来的呢?
想要 ρ ∣ ∣ w ∣ ∣ \frac{\rho}{||w||} ∣∣w∣∣ρ尽量大,那么 ∣ ∣ w ∣ ∣ ||w|| ∣∣w∣∣就要尽量小, ρ \rho ρ尽量大,为了方便后面的拉格朗日法的求导步骤,这里用 1 2 ∣ ∣ w ∣ ∣ 2 \frac{1}{2}||w||^2 21∣∣w∣∣2代替了 ∣ ∣ w ∣ ∣ ||w|| ∣∣w∣∣。其中, v ∈ ( 0 , 1 ] v\in(0,1] v∈(0,1]是预先知道的参数,表示边界支持向量率的上限,也就是异常样本点的数量上限。最终,单类SVM返回一个决策函数,决策函数大于0则为正常样本,否则为一场样本。
模改版OCSVM
回到我们的文章,这里想要求解的是最佳的参数组合,希望得到的决策函数就是完整的STL。
min
ϕ
θ
,
ϵ
d
(
ϕ
θ
)
+
1
v
N
∑
i
=
1
N
μ
i
−
ϵ
s
.
t
.
∀
i
μ
i
=
{
0
r
(
y
i
,
ϕ
θ
)
>
ϵ
2
ϵ
2
−
r
(
y
i
,
ϕ
θ
)
e
l
s
e
\min\limits_{\phi_\theta,\epsilon}d(\phi_\theta)+\frac{1}{vN}\sum\limits_{i=1}^{N} \mu_i-\epsilon \\ s.t. \ \forall i\ \ \mu_i=\left\{ \begin{aligned} 0 &\ & r(y_i,\phi_\theta)\gt \frac{\epsilon}{2}\\ \frac{\epsilon}{2}-r(y_i,\phi_\theta) &\ & else \end{aligned}\right.
ϕθ,ϵmind(ϕθ)+vN1i=1∑Nμi−ϵs.t. ∀i μi=⎩⎪⎨⎪⎧02ϵ−r(yi,ϕθ) r(yi,ϕθ)>2ϵelse
那么是要得到一条最inclusive的STL公式(包含的样本点尽量的多),因此tightness要尽量的小;但也不能过于inclusive,导致所有的点都包含到公式里去,所以添加一条要求:分类后的正负样本间距离(也就是SVM中的软间隔)要尽量的大。
- d ( ϕ θ ) d(\phi_\theta) d(ϕθ) 指的是tightness函数,指代公式的exclusiveness,最小化它的值表示找到的正样本要尽可能多
- μ \mu μ是非负的松弛变量,其正值在目标函数是要被惩罚的,最小化它的值表示找到的异常样本要尽量的少。
- ϵ \epsilon ϵ是软间隔,表示正负样本间的距离,最大话它的值表示正负样本要尽量分开。
求解方法
同上一篇文章差不多,结构学习还是靠分层遍历,使用优化方法来进行参数学习。参数学习用的是OCSVM的优化函数,所以两篇文章唯一的不同就在于ParameterEstimation的算法。OCSVM算法一般是用拉格朗日法求导求解,但是这里给的Tightness Function应该怎么求导呢?一看Case Study,原来和上一篇文章一样,用的还是模拟退火。
最后的决策函数是robustness degree,大于0则为正例,反之为负例。
5 Case Studies
A. Linear System
系统描述
这里用一个含有噪声的线性微分方程描述了一个系统。
效果评估
用100条信号进行训练,其中包含4条异常数据;100条信号进行测试,其中包含7条异常数据。模拟退火周期数为3,每周期处理15条数据。耗时130s。
文中给出了正常条件下和异常条件下的两种完全不一样的dynamic,相当于先给了标签,但是训练过程中并没有使用。最后评估算法效果的时候再用标签来计算误分类率(MCR),得到结果时训练集MCR=0,测试集MCR=0.0018,不是很高,效果还可以。对于误分类样本单独分析,这条信号相对于公式的Robustness Degree为0.0018,说明差一点点就可以分对了。
在线监督
所谓在线监督,就是把刚才得到的
ϕ
\phi
ϕ变成随时间变化的
ϕ
(
t
)
\phi(t)
ϕ(t),也就是把时间参数的最大值改成t:
ϕ
=
□
[
0
,
3.0
)
(
⋄
[
0.5
,
2.0
)
(
y
>
0.9634
)
)
⇓
ϕ
(
t
)
=
□
[
0
,
t
)
(
⋄
[
0.5
,
m
i
n
(
t
,
2.0
)
)
(
y
>
0.9634
)
)
\phi=\square_{[0,3.0)}(\diamond_{[0.5,2.0)}(y>0.9634)) \\ \Downarrow \\ \phi(t)=\square_{[0,t)}(\diamond_{[0.5,min(t,2.0))}(y>0.9634))
ϕ=□[0,3.0)(⋄[0.5,2.0)(y>0.9634))⇓ϕ(t)=□[0,t)(⋄[0.5,min(t,2.0))(y>0.9634))
上式可以看作目前收集到得信号有没有违背公式要求。
B. Braked Train
系统描述
描述了一个混合自动机系统(hybrid automation system),一辆火车有3个刹车子系统,每个子系统可以在5种状态间进行切换;还有1个速度控制系统,可以在3种状态间进行切换。
效果评估
用50条信号进行训练,其中包含7条异常数据;没有用测试集进行测试。误分类率为0。模拟退火周期数为15,每周期处理15条数据。耗时154s。
在线监督
在线监督的时候发现一个问题,即使是正常信号,在前期也出现了robustness为负的情况,随着时间推移robustness才逐渐增加,正常信号才被标记为正例。也就是说,在时间窗长度变化的情况下,STL的有效性不能得到保证。(如果用这个公式来做报警器,那保安室的员工可能要疯。)
6 Conclusion
本文得创新点在于:
- 选取了更适合异常监督领域的代价函数
- 拓展了在线监督应用
思考与记录
- 文中考虑的attack种类单一,异常状态分布过于集中,不符合异常检测的目标。
- 直接更改时间窗上限的在线监督算法不靠谱,太容易误触警报。
- 无监督算法的评价指标单一,且实际工程中可能根本拿不到标签,因此可以尝试其他不基于标签的评价方式。