前言:基于决策树的结构学习方法在最近的文献中比较普遍,今天来精读一下这篇文章。
主要参考文献:
Bombara, G., Vasile, C.-I., Penedo, F., Yasuoka, H., & Belta, C. (2016, April 11). A Decision Tree Approach to Data Classification using Signal Temporal Logic. Proceedings of the 19th International Conference on Hybrid Systems: Computation and Control. https://doi.org/10.1145/2883817.2883843
文章目录
概览
这篇文章针对公式学习提出了以下新方法:
- 二叉决策树
- 杂质度量法
在以下案例中进行了验证:
- 海事监控的异常检测
- 燃油控制系统的异常监控
流水账笔记
1 Introduction
本文提出了一个基于决策树的时序逻辑推理框架。为什么叫做框架呢?因为这个框架包含了一系列不同的算法,可以根据情况进行选择。
2 Related Work
文献整理
- 参数学习
[1] Parametric Identification of Temporal Properties
[2] Querying Parametric Temporal Logic Properties on Embedded Systems
[3] Mining Requirements From Closed-Loop Control Models
[4] System design of stochastic models using robustness of temporal properties
- DAG方法
[1] Anomaly detection in cyber-physical systems: A formal methods approach
[2] Temporal logic inference for classification and prediction from data
- 结构学习与参数学习分离的方法
[1] Data-Driven Statistical Learning of Temporal Logic Properties
[2] Temporal Logic Based Monitoring of Assisted Ventilation in Intensive Care Patients
- Spatial Logic Inference
[1] Learning and detecting emergent behavior in networks of cardiac myocytes
[2] A formal methods approach to pattern synthesis in reaction diffusion systems
3 Signal Temporal Logic
这里STL和PSTL的定义与这篇文献的定义一致,这里就不做介绍了。
4 Problem Formulation
本篇文章解决的问题,依然是给据信号 s s s,求时序公式 ϕ \phi ϕ,使最小化误分类率:
MCR ( ϕ ) : = ∣ { s i ∣ ( s i ⊨ ϕ ∧ l i = C n ) ∨ ( s i ⊭ ϕ ∧ l i = C p ) } ∣ N \operatorname{MCR}(\phi):=\frac{\left|\left\{s^{i} \mid\left(s^{i} \models \phi \wedge l^{i}=C_{n}\right) \vee\left(s^{i} \not \models \phi \wedge l^{i}=C_{p}\right)\right\}\right|}{N} MCR(ϕ):=N∣∣{
si∣(si⊨ϕ∧li=Cn)∨(si⊨ϕ∧li=Cp)}∣∣
上面 C n C_n Cn和 C p C_p Cp分别代表负例集合和正例集合。
5 Learning Decision Trees
- key:找到STL子式和决策树的对应
- 二叉决策树:每个非叶节点将数据分入两个子节点中,最后的叶节点代表数据的分类
In this paper, we focus on binary decision trees, where every non-terminal node splits the data into two children nodes and every leaf node predicts a label.
- 树生长算法的3个meta-parameter:
- 划分方式:即一系列 ϕ \phi ϕ
- 最佳划分选取:如果选取最佳的 ϕ ∗ \phi^* ϕ∗
- 终止条件
5.1 Parameterized Learning Algorithm
第一个算法buildTree讲的是如何构建决策树。
要看懂这段代码,首先要理解代码中几个函数的意义:
- b u i l d T r e e ( ϕ p a t h , S , h ) buildTree(\phi^{path},S,h) buildTree(ϕpath,S,h)接受三个参数, ϕ p a t h \phi^{path} ϕpath代表当前节点到根节点的路径所代表的公式, S S S是一系列带标签的信号, h h h是当前节点所在的深度,函数返回以当前节点为根节点的决策树。
- s t o p ( ϕ p a t h , h , S ) stop(\phi^{path},h,S) stop(ϕpath,h,S)也是接受三个参数,判断这三个参数满足递归的终止条件
- l e a f ( c ) leaf(c) leaf(c)创建一个带标签的叶节点
- n o n _ t e r m i n a l ( ϕ ) non\_terminal(\phi) non_terminal(ϕ)创建一个包含原子命题的非叶节点,原子命题从 P \mathcal{P} P中选取
- J ( S , S ⊤ , S ⊥ ) J(S,S_\top,S_\perp) J(S,S⊤,S⊥)输入分类后的信号,返回本节点最佳的子公式 ϕ ∗ \phi^* ϕ∗(即选择最佳划分方式)
- p a r t i t i o