diff --git a/DSD/qrs/acronyms.tex b/DSD/qrs/acronyms.tex new file mode 100644 index 0000000..4777e8d --- /dev/null +++ b/DSD/qrs/acronyms.tex @@ -0,0 +1,14 @@ +\newabbreviation{tas}{TAS}{Temporal Action Segmentation} +\newabbreviation{dsd}{DSD}{Device State Detector} +\newabbreviation{cpd}{CPD}{Change Point Detection} +\newabbreviation{hids}{HIDS}{Host-Based Intrusion Detection Software} +\newabbreviation{nids}{NIDS}{Network-Based Intrusion Detection Software} +\newabbreviation{1nn}{1-NN}{1-Nearest Neighbor} +\newabbreviation{knn}{K-NN}{K-Nearest Neighbor} +\newabbreviation{rnn}{RNN}{Recurrent Neural Network} +\newabbreviation{cnn}{CNN}{Convolutional Neural Network} +\newabbreviation{svm}{SVM}{Support Vector Classifier} +\newabbreviation{mlp}{MLP}{Multi Layer Perceptron} +\newabbreviation{mad}{MAD}{Machine Activity Detector} +\newabbreviation{ids}{IDS}{Intrusion Detection Systems} +\newabbreviation{nilm}{NILM}{Nonintrusive Load Monitoring} \ No newline at end of file diff --git a/DSD/qrs/biblio.bib b/DSD/qrs/biblio.bib new file mode 100644 index 0000000..138d961 --- /dev/null +++ b/DSD/qrs/biblio.bib @@ -0,0 +1,611 @@ +@inproceedings{deldari2020espresso, + title={Entropy and ShaPe awaRe timE-Series SegmentatiOn for processing heterogeneous sensor data}, + author={Deldari, Shohreh and Smith, Daniel V. and Sadri, Amin and Salim, Flora D. }, + journal={Proceedings of the ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies (IMWUT)}, + volume={4}, + number={3}, + articleno={77}, + year={2020}, + url = {https://doi.org/10.1145/3411832}, + doi = {10.1145/3411832} +} + +@inproceedings{10.1145/3081333.3081340, +author = {Virmani, Aditya and Shahzad, Muhammad}, +title = {Position and Orientation Agnostic Gesture Recognition Using WiFi}, +year = {2017}, +isbn = {9781450349284}, +publisher = {Association for Computing Machinery}, +address = {New York, NY, USA}, +url = {https://doi.org/10.1145/3081333.3081340}, +doi = {10.1145/3081333.3081340}, +abstract = {WiFi based gesture recognition systems have recently proliferated due to the ubiquitous availability of WiFi in almost every modern building. The key limitation of existing WiFi based gesture recognition systems is that they require the user to be in the same configuration (i.e., at the same position and in same orientation) when performing gestures at runtime as when providing training samples, which significantly restricts their practical usability. In this paper, we propose a WiFi based gesture recognition system, namely WiAG, which recognizes the gestures of the user irrespective of his/her configuration. The key idea behind WiAG is that it first requests the user to provide training samples for all gestures in only one configuration and then automatically generates virtual samples for all gestures in all possible configurations by applying our novel translation function on the training samples. Next, for each configuration, it generates a classification model using virtual samples corresponding to that configuration. To recognize gestures of a user at runtime, as soon as the user performs a gesture, WiAG first automatically estimates the configuration of the user and then evaluates the gesture against the classification model corresponding to that estimated configuration. Our evaluation results show that when user's configuration is not the same at runtime as at the time of providing training samples, WiAG significantly improves the gesture recognition accuracy from just 51.4\% to 91.4\%.}, +booktitle = {Proceedings of the 15th Annual International Conference on Mobile Systems, Applications, and Services}, +pages = {252–264}, +numpages = {13}, +keywords = {agnostic, position, orientation, WiFi, gesture recognition}, +location = {Niagara Falls, New York, USA}, +series = {MobiSys '17} +} + +@article{aminikhanghahi2018real, + title={Real-time change point detection with application to smart home time series data}, + author={Aminikhanghahi, Samaneh and Wang, Tinghui and Cook, Diane J}, + journal={IEEE Transactions on Knowledge and Data Engineering}, + volume={31}, + number={5}, + pages={1010--1023}, + year={2018}, + publisher={IEEE} +} + +%Fancourt, C.L., Principe, J.C., 1996. A neighborhood map of competing one step predictors for piecewise segmentation and identification of time series. In: Proceedings of the International Conference on Neural Network, vol. 4, pp. 1906–1911. + +@article{xiao2022self, + title={Self-Supervised Few-Shot Time-series Segmentation for Activity Recognition}, + author={Xiao, Chunjing and Chen, Shiming and Zhou, Fan and Wu, Jie}, + journal={IEEE Transactions on Mobile Computing}, + year={2022}, + publisher={IEEE} +} + +@misc{2207.09925, + doi = {10.48550/ARXIV.2207.09925}, + + url = {https://arxiv.org/abs/2207.09925}, + + author = {Xu, Leiyang and Wang, Qiang and Lin, Xiaotian and Yuan, Lin}, + + keywords = {Computer Vision and Pattern Recognition (cs.CV), FOS: Computer and information sciences, FOS: Computer and information sciences}, + + title = {An Efficient Framework for Few-shot Skeleton-based Temporal Action Segmentation}, + + publisher = {arXiv}, + + year = {2022}, + + copyright = {arXiv.org perpetual, non-exclusive license} +} + +@article{sarker2018individualized, + title={Individualized time-series segmentation for mining mobile phone user behavior}, + author={Sarker, Iqbal H and Colman, Alan and Kabir, Muhammad Ashad and Han, Jun}, + journal={The Computer Journal}, + volume={61}, + number={3}, + pages={349--368}, + year={2018}, + publisher={Oxford University Press} +} + +@article{4445667, author={Liu, Xiaoyan and Lin, Zhenjiang and Wang, Huaiqing}, journal={IEEE Transactions on Knowledge and Data Engineering}, title={Novel Online Methods for Time Series Segmentation}, year={2008}, volume={20}, number={12}, pages={1616-1626}, doi={10.1109/TKDE.2008.29}} + +@article{4160958, author={Yujian, Li and Bo, Liu}, journal={IEEE Transactions on Pattern Analysis and Machine Intelligence}, title={A Normalized Levenshtein Distance Metric}, year={2007}, volume={29}, number={6}, pages={1091-1095}, doi={10.1109/TPAMI.2007.1078}} + +@article{aminikhanghahi2017survey, + title={A survey of methods for time series change point detection}, + author={Aminikhanghahi, Samaneh and Cook, Diane J}, + journal={Knowledge and information systems}, + volume={51}, + number={2}, + pages={339--367}, + year={2017}, + publisher={Springer} +} + +@misc{palitronica, + title = {Palitronica - Palisade}, + howpublished = {\url{https://www.palitronica.com/products/palisade}}, + note = {Accessed: 2010-03-26} +} + +@inbook{278e1df91d22494f9be2adfca2559f92, +title = "A data management platform for personalised real-time energy feedback", +keywords = "smart homes, real-time energy, smart energy meter, energy consumption, Electrical engineering. Electronics Nuclear engineering, Electrical and Electronic Engineering", +author = "David Murray and Jing Liao and Lina Stankovic and Vladimir Stankovic and Richard Hauxwell-Baldwin and Charlie Wilson and Michael Coleman and Tom Kane and Steven Firth", +year = "2015", +booktitle = "Proceedings of the 8th International Conference on Energy Efficiency in Domestic Appliances and Lighting", +} + +@Article{Hunter:2007, + Author = {Hunter, J. D.}, + Title = {Matplotlib: A 2D graphics environment}, + Journal = {Computing in Science \& Engineering}, + Volume = {9}, + Number = {3}, + Pages = {90--95}, + abstract = {Matplotlib is a 2D graphics package used for Python for + application development, interactive scripting, and publication-quality + image generation across user interfaces and operating systems.}, + publisher = {IEEE COMPUTER SOC}, + doi = {10.1109/MCSE.2007.55}, + year = 2007 +} + +@inproceedings{kocher1996timing, + title={Timing attacks on implementations of Diffie-Hellman, RSA, DSS, and other systems}, + author={Kocher, Paul C}, + booktitle={Advances in Cryptology—CRYPTO’96: 16th Annual International Cryptology Conference Santa Barbara, California, USA August 18--22, 1996 Proceedings 16}, + pages={104--113}, + year={1996}, + organization={Springer} +} + +@article{villalobos2021flexible, + title={A flexible alarm prediction system for smart manufacturing scenarios following a forecaster--analyzer approach}, + author={Villalobos, Kevin and Suykens, Johan and Illarramendi, Arantza}, + journal={Journal of Intelligent Manufacturing}, + volume={32}, + pages={1323--1344}, + year={2021}, + publisher={Springer} +} + +@article{belikovetsky2018digital, + title={Digital audio signature for 3D printing integrity}, + author={Belikovetsky, Sofia and Solewicz, Yosef A and Yampolskiy, Mark and Toh, Jinghui and Elovici, Yuval}, + journal={IEEE Transactions on Information Forensics and Security}, + volume={14}, + number={5}, + pages={1127--1141}, + year={2018}, + publisher={IEEE} +} + +@article{al2016forensics, + title={Forensics of thermal side-channel in additive manufacturing systems}, + author={Al Faruque, Mohammad Abdullah and Chhetri, Sujit Rokka and Canedo, A and Wan, J}, + journal={University of California, Irvine}, + volume={12}, + number={13}, + pages={176}, + year={2016} +} + +@article{10.1145/3571288, +author = {Thakur, Shailja and Moreno, Carlos and Fischmeister, Sebastian}, +title = {CANOA: CAN Origin Authentication Through Power Side-Channel Monitoring}, +year = {2022}, +publisher = {Association for Computing Machinery}, +address = {New York, NY, USA}, +issn = {2378-962X}, +url = {https://doi.org/10.1145/3571288}, +doi = {10.1145/3571288}, +abstract = {The lack of any sender authentication mechanism in place makes Controller Area Network (CAN) vulnerable to security threats. For instance, an attacker can impersonate an Electronic Control Unit (ECU) on the bus and send spoofed messages unobtrusively with the identifier of the impersonated ECU. To address this problem, we propose a novel source authentication technique that uses power consumption measurements of the ECU to authenticate the source of a message. A transmission of an ECU affects the power consumption and a characteristic pattern will appear. Our technique exploits the power consumption of each ECU during the transmission of a message to determine whether the message actually originated from the purported sender. We evaluate our approach in both a lab setup and a real vehicle. We also evaluate our approach against factors that can impact the power consumption measurement of the ECU. The results of the evaluation show that the proposed technique is applicable in a broad range of operating conditions with reasonable computational power requirements and attaining good accuracy.}, +note = {Just Accepted}, +journal = {ACM Trans. Cyber-Phys. Syst.}, +month = {nov}, +keywords = {CAN, transmissions, authentication, automotive security} +} + +@article{gatlin2019detecting, + title={Detecting sabotage attacks in additive manufacturing using actuator power signatures}, + author={Gatlin, Jacob and Belikovetsky, Sofia and Moore, Samuel B and Solewicz, Yosef and Elovici, Yuval and Yampolskiy, Mark}, + journal={IEEE Access}, + volume={7}, + pages={133421--133432}, + year={2019}, + publisher={IEEE} +} + +@article{CHOU2014400, +title = {Real-time detection of anomalous power consumption}, +journal = {Renewable and Sustainable Energy Reviews}, +volume = {33}, +pages = {400-411}, +year = {2014}, +issn = {1364-0321}, +doi = {https://doi.org/10.1016/j.rser.2014.01.088}, +url = {https://www.sciencedirect.com/science/article/pii/S1364032114001142}, +author = {Jui-Sheng Chou and Abdi Suryadinata Telaga}, +keywords = {Power consumption, Big data analytics, Anomaly detection, Pattern recognition, Real time detection, Time series prediction}, +abstract = {Effective feedback can reduce building power consumption and carbon emissions. Therefore, providing information to building managers and tenants is the first step in identifying ways to reduce power consumption. Since reducing anomalous consumption can have a large impact, this study proposes a novel approach to using large sets of data for a building space to identify anomalous power consumption. This method identifies anomalies in two stages: consumption prediction and anomaly detection. Daily real-time consumption is predicted by using a hybrid neural net ARIMA (auto-regressive integrated moving average) model of daily consumption. Anomalies are then identified by differences between real and predicted consumption by applying the two-sigma rule. The experimental results for a 17-week study of electricity consumption in a building office space confirm that the method can detect anomalous values in real time. Another contribution of the study is the development of a formalized methodology for detecting anomalous patterns in large data sets for real-time of building office space energy consumption. Moreover, the prediction component can be used to plan electricity usage while the anomaly detection component can be used to understand the energy consumption behaviors of tenants.} +} + +@INPROCEEDINGS{9934955, + + author={Grisel-Davy, Arthur and Bhogayata, Amrita Milan and Pabbi, Srijan and Narayan, Apurva and Fischmeister, Sebastian}, + + booktitle={2022 International Conference on Embedded Software (EMSOFT)}, + + title={Work-in-Progress: Boot Sequence Integrity Verification with Power Analysis}, + + year={2022}, + + volume={}, + + number={}, + + pages={3-4}, + + doi={10.1109/EMSOFT55006.2022.00009}} + +@INPROCEEDINGS{9061783, + + author={Li, Yanjie and He, Ruiwen and Ji, Xiaoyu and Xu, Wenyuan}, + + booktitle={2019 IEEE 3rd Conference on Energy Internet and Energy System Integration (EI2)}, + + title={Using power side-channel to implement anomaly-based intrusion detection on smart grid terminals}, + + year={2019}, + + volume={}, + + number={}, + + pages={2669-2674}, + + doi={10.1109/EI247390.2019.9061783}} + +@article{ilgun1995state, + title={State transition analysis: A rule-based intrusion detection approach}, + author={Ilgun, Koral and Kemmerer, Richard A and Porras, Phillip A}, + journal={IEEE transactions on software engineering}, + volume={21}, + number={3}, + pages={181--199}, + year={1995}, + publisher={IEEE} +} + +@INPROCEEDINGS{5563714, + + author={Lei Li and De-Zhang Yang and Fang-Cheng Shen}, + + booktitle={2010 3rd International Conference on Computer Science and Information Technology}, + + title={A novel rule-based Intrusion Detection System using data mining}, + + year={2010}, + + volume={6}, + + number={}, + + pages={169-172}, + + doi={10.1109/ICCSIT.2010.5563714}} + +@article{kumar2020integrated, + title={An integrated rule based intrusion detection system: analysis on UNSW-NB15 data set and the real time online dataset}, + author={Kumar, Vikash and Sinha, Ditipriya and Das, Ayan Kumar and Pandey, Subhash Chandra and Goswami, Radha Tamal}, + journal={Cluster Computing}, + volume={23}, + pages={1397--1418}, + year={2020}, + publisher={Springer} +} + +@article{uddin2018activity, + title={Activity recognition for cognitive assistance using body sensors data and deep convolutional neural network}, + author={Uddin, Md Zia and Hassan, Mohammad Mehedi}, + journal={IEEE Sensors Journal}, + volume={19}, + number={19}, + pages={8413--8419}, + year={2018}, + publisher={IEEE} +} + +@article{wannenburg2016physical, + title={Physical activity recognition from smartphone accelerometer data for user context awareness sensing}, + author={Wannenburg, Johan and Malekian, Reza}, + journal={IEEE Transactions on Systems, Man, and Cybernetics: Systems}, + volume={47}, + number={12}, + pages={3142--3149}, + year={2016}, + publisher={IEEE} +} + +@inproceedings{bodor2003vision, + title={Vision-based human tracking and activity recognition}, + author={Bodor, Robert and Jackson, Bennett and Papanikolopoulos, Nikolaos}, + booktitle={Proc. of the 11th Mediterranean Conf. on Control and Automation}, + volume={1}, + pages={1--6}, + year={2003}, + organization={Citeseer} +} + +@article{zhang2019numerical, + title={Numerical delineation of 3D unsteady flow fields in side channel pumps for engineering processes}, + author={Zhang, Fan and Chen, Ke and Appiah, Desmond and Hu, Bo and Yuan, Shouqi and Asomani, Stephen Ntiri}, + journal={Energies}, + volume={12}, + number={7}, + pages={1287}, + year={2019}, + publisher={MDPI} +} + +@INPROCEEDINGS{4393062, + + author={Zhou, Wei and Habetler, Thomas G. and Harley, Ronald G.}, + + booktitle={2007 IEEE International Symposium on Diagnostics for Electric Machines, Power Electronics and Drives}, + + title={Bearing Condition Monitoring Methods for Electric Machines: A General Review}, + + year={2007}, + + volume={}, + + number={}, + + pages={3-6}, + + doi={10.1109/DEMPED.2007.4393062}} + +@article{yang2016power, + title={Power consumption based android malware detection}, + author={Yang, Hongyu and Tang, Ruiwen}, + journal={Journal of Electrical and Computer Engineering}, + volume={2016}, + year={2016}, + publisher={Hindawi} +} + +@article{chawla2021machine, + title={Machine learning in wavelet domain for electromagnetic emission based malware analysis}, + author={Chawla, Nikhil and Kumar, Harshit and Mukhopadhyay, Saibal}, + journal={IEEE Transactions on Information Forensics and Security}, + volume={16}, + pages={3426--3441}, + year={2021}, + publisher={IEEE} +} +@article{wang2015measurement, + title={Measurement system of gear parameters based on machine vision}, + author={Wang, Wencheng and Guan, Fengnian and Ma, Shiyong and Li, Jian}, + journal={Measurement and Control}, + volume={48}, + number={8}, + pages={242--248}, + year={2015}, + publisher={SAGE Publications Sage UK: London, England} +} + +@ARTICLE{1702202, + + author={Denning, D.E.}, + + journal={IEEE Transactions on Software Engineering}, + + title={An Intrusion-Detection Model}, + + year={1987}, + + volume={SE-13}, + + number={2}, + + pages={222-232}, + + doi={10.1109/TSE.1987.232894}} + +@INPROCEEDINGS{9491765, + + author={Alsmadi, Tibra and Alqudah, Nour}, + + booktitle={2021 International Conference on Information Technology (ICIT)}, + + title={A Survey on malware detection techniques}, + + year={2021}, + + volume={}, + + number={}, + + pages={371-376}, + + doi={10.1109/ICIT52682.2021.9491765}} + +@inproceedings{10.1145/2940343.2940348, +author = {Malik, Jyoti and Kaushal, Rishabh}, +title = {CREDROID: Android Malware Detection by Network Traffic Analysis}, +year = {2016}, +isbn = {9781450343466}, +publisher = {Association for Computing Machinery}, +address = {New York, NY, USA}, +url = {https://doi.org/10.1145/2940343.2940348}, +doi = {10.1145/2940343.2940348}, +abstract = {Android, one of the most popular open source mobile operating system, is facing a lot of security issues. Being used by users with varying degrees of awareness complicates the problem further. Most of the security problems are due to maliciousness of android applications. The malwares get installed in mobile phones through various popular applications particularly gaming applications or some utility applications from various third party app-stores which are untrustworthy. A common feature of the malware is to access the sensitive information from the mobile device and transfer it to remote servers. For our work, we have confined ourselves to defining maliciousness as leakage of privacy information by Android application. In this paper we have proposed a method named as CREDROID which identifies malicious applications on the basis of their Domain Name Server(DNS) queries as well as the data it transmits to remote server by performing the in-depth analysis of network traffic logs in offline mode. Instead of performing signature based detection which is unable to detect polymorphic malwares, we propose a pattern based detection. Pattern in our work refers to the leakage of sensitive information being sent to the remote server. CREDROID is a semi-automated approach which works on various factors like the remote server where the application is connecting, data being sent and the protocol being used for communication for identifying the trustworthiness (credibility) of the application. In our work, we have observed that 63% of the applications from a standard dataset of malwares are generating network traffic which has been the focus of our work.}, +booktitle = {Proceedings of the 1st ACM Workshop on Privacy-Aware Mobile Computing}, +pages = {28–36}, +numpages = {9}, +keywords = {Android, malware detection, network traffic analysis}, +location = {Paderborn, Germany}, +series = {PAMCO '16} +} +} + +@article{jelali2013statistical, + title={Statistical process control}, + author={Jelali, Mohieddine and Jelali, Mohieddine}, + journal={Control Performance Management in Industrial Automation: Assessment, Diagnosis and Improvement of Control Loop Performance}, + pages={209--217}, + year={2013}, + publisher={Springer} +} + +@inproceedings{tongaonkar2007inferring, + title={Inferring Higher Level Policies from Firewall Rules.}, + author={Tongaonkar, Alok and Inamdar, Niranjan and Sekar, R}, + booktitle={LISA}, + volume={7}, + pages={1--10}, + year={2007} +} + +@article{aly2005survey, + title={Survey on multiclass classification methods}, + author={Aly, Mohamed}, + journal={Neural Netw}, + volume={19}, + number={1-9}, + pages={2}, + year={2005}, + publisher={Citeseer} +} + +@misc{grandini2020metrics, + title={Metrics for Multi-Class Classification: an Overview}, + author={Margherita Grandini and Enrico Bagli and Giorgio Visani}, + year={2020}, + eprint={2008.05756}, + archivePrefix={arXiv}, + primaryClass={stat.ML} +} + +@misc{zenodo, +title={Evaluation Dataset for the Machine State Detector, \url{https://zenodo.org/record/7782702#.ZCR33byZNhE}}, +year={2023}, +} + +@article{gupta2021novel, + title={A novel failure mode effect and criticality analysis (FMECA) using fuzzy rule-based method: A case study of industrial centrifugal pump}, + author={Gupta, Gajanand and Ghasemian, Hamed and Janvekar, Ayub Ahmed}, + journal={Engineering Failure Analysis}, + volume={123}, + pages={105305}, + year={2021}, + publisher={Elsevier} +} + +@inproceedings{10.1145/2976749.2978353, +author = {Genkin, Daniel and Pachmanov, Lev and Pipman, Itamar and Tromer, Eran and Yarom, Yuval}, +title = {ECDSA Key Extraction from Mobile Devices via Nonintrusive Physical Side Channels}, +year = {2016}, +isbn = {9781450341394}, +publisher = {Association for Computing Machinery}, +address = {New York, NY, USA}, +url = {https://doi.org/10.1145/2976749.2978353}, +doi = {10.1145/2976749.2978353}, +abstract = {We show that elliptic-curve cryptography implementations on mobile devices are vulnerable to electromagnetic and power side-channel attacks. We demonstrate full extraction of ECDSA secret signing keys from OpenSSL and CoreBitcoin running on iOS devices, and partial key leakage from OpenSSL running on Android and from iOS's CommonCrypto. These non-intrusive attacks use a simple magnetic probe placed in proximity to the device, or a power probe on the phone's USB cable. They use a bandwidth of merely a few hundred kHz, and can be performed cheaply using an audio card and an improvised magnetic probe.}, +booktitle = {Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security}, +pages = {1626–1638}, +numpages = {13}, +keywords = {elliptic curve, side channel attack, electromagnetic analysis, power analysis}, +location = {Vienna, Austria}, +series = {CCS '16} +} + +@article{randolph2020power, + title={Power side-channel attack analysis: A review of 20 years of study for the layman}, + author={Randolph, Mark and Diehl, William}, + journal={Cryptography}, + volume={4}, + number={2}, + pages={15}, + year={2020}, + publisher={MDPI} +} + +@article{micucci2017unimib, + title={Unimib shar: A dataset for human activity recognition using acceleration data from smartphones}, + author={Micucci, Daniela and Mobilio, Marco and Napoletano, Paolo}, + journal={Applied Sciences}, + volume={7}, + number={10}, + pages={1101}, + year={2017}, + publisher={Multidisciplinary Digital Publishing Institute} +} + +@article{truong2020selective, + title={Selective review of offline change point detection methods}, + author={Truong, Charles and Oudre, Laurent and Vayatis, Nicolas}, + journal={Signal Processing}, + volume={167}, + pages={107299}, + year={2020}, + publisher={Elsevier} +} + +@inproceedings{10.1145/3371158.3371162, +author = {Narwariya, Jyoti and Malhotra, Pankaj and Vig, Lovekesh and Shroff, Gautam and Vishnu, T. V.}, +title = {Meta-Learning for Few-Shot Time Series Classification}, +year = {2020}, +isbn = {9781450377386}, +publisher = {Association for Computing Machinery}, +address = {New York, NY, USA}, +url = {https://doi.org/10.1145/3371158.3371162}, +doi = {10.1145/3371158.3371162}, +abstract = {Deep neural networks (DNNs) have achieved state-of-the-art results on time series classification (TSC) tasks. In this work, we focus on leveraging DNNs in the often-encountered practical scenario where access to labeled training data is difficult, and where DNNs would be prone to overfitting. We leverage recent advancements in gradient-based meta-learning, and propose an approach to train a residual neural network with convolutional layers as a meta-learning agent for few-shot TSC. The network is trained on a diverse set of few-shot tasks sampled from various domains (e.g. healthcare, activity recognition, etc.) such that it can solve a target task from another domain using only a small number of training samples from the target task. Most existing meta-learning approaches are limited in practice as they assume a fixed number of target classes across tasks. We overcome this limitation in order to train a common agent across domains with each domain having different number of target classes, we utilize a triplet-loss based learning procedure that does not require any constraints to be enforced on the number of classes for the few-shot TSC tasks. To the best of our knowledge, we are the first to use meta-learning based pre-training for TSC. Our approach sets a new benchmark for few-shot TSC, outperforming several strong baselines on few-shot tasks sampled from 41 datasets in UCR TSC Archive. We observe that pre-training under the meta-learning paradigm allows the network to quickly adapt to new unseen tasks with small number of labeled instances.}, +booktitle = {Proceedings of the 7th ACM IKDD CoDS and 25th COMAD}, +pages = {28–36}, +numpages = {9}, +keywords = {Time Series Classification, Meta-Learning, Few-Shot Learning, Convolutional Neural Networks}, +location = {Hyderabad, India}, +series = {CoDS COMAD 2020} +} + +@article{tang2019few, + title={Few-shot time-series classification with dual interpretability}, + author={Tang, Wensi and Liu, Lu and Long, Guodong}, + journal={Space}, + volume={2}, + number={T1}, + pages={T1}, + year={2019} +} + +@INPROCEEDINGS{9647357, + + author={Gupta, Priyanka and Bhaskarpandit, Sathvik and Gupta, Manik}, + + booktitle={2021 Digital Image Computing: Techniques and Applications (DICTA)}, + + title={Similarity Learning based Few Shot Learning for ECG Time Series Classification}, + + year={2021}, + + volume={}, + + number={}, + + pages={1-8}, + + doi={10.1109/DICTA52665.2021.9647357}} + +@article{duin1997experiments, + title={Experiments with a featureless approach to pattern recognition}, + author={Duin, Robert PW and de Ridder, Dick and Tax, David MJ}, + journal={Pattern Recognition Letters}, + volume={18}, + number={11-13}, + pages={1159--1166}, + year={1997}, + publisher={Elsevier} +} + +@INPROCEEDINGS{8598355, + + author={Dash, Prajna and Naik, Kshirasagar}, + + booktitle={2018 IEEE Electrical Power and Energy Conference (EPEC)}, + + title={A Very Deep One Dimensional Convolutional Neural Network (VDOCNN) for Appliance Power Signature Classification}, + + year={2018}, + + volume={}, + + number={}, + + pages={1-6}, + + doi={10.1109/EPEC.2018.8598355}} + +@article{angelis2022nilm, + title={NILM applications: Literature review of learning approaches, recent developments and challenges}, + author={Angelis, Georgios-Fotios and Timplalexis, Christos and Krinidis, Stelios and Ioannidis, Dimosthenis and Tzovaras, Dimitrios}, + journal={Energy and Buildings}, + pages={111951}, + year={2022}, + publisher={Elsevier} +} + diff --git a/DSD/qrs/images/detection_real_DELL-1_1NNmin.png b/DSD/qrs/images/detection_real_DELL-1_1NNmin.png new file mode 100644 index 0000000..b42b859 Binary files /dev/null and b/DSD/qrs/images/detection_real_DELL-1_1NNmin.png differ diff --git a/DSD/qrs/images/detection_real_DELL-1_1_1NNmin.png b/DSD/qrs/images/detection_real_DELL-1_1_1NNmin.png new file mode 100644 index 0000000..d6b1f40 Binary files /dev/null and b/DSD/qrs/images/detection_real_DELL-1_1_1NNmin.png differ diff --git a/DSD/qrs/images/detection_real_DELL-1_2_1NNmin.png b/DSD/qrs/images/detection_real_DELL-1_2_1NNmin.png new file mode 100644 index 0000000..a73fa27 Binary files /dev/null and b/DSD/qrs/images/detection_real_DELL-1_2_1NNmin.png differ diff --git a/DSD/qrs/images/detection_real___empty_0.5_1NNmin.png b/DSD/qrs/images/detection_real___empty_0.5_1NNmin.png new file mode 100644 index 0000000..c5fd938 Binary files /dev/null and b/DSD/qrs/images/detection_real___empty_0.5_1NNmin.png differ diff --git a/DSD/qrs/images/detection_real___empty_0.75_1NNmin.png b/DSD/qrs/images/detection_real___empty_0.75_1NNmin.png new file mode 100644 index 0000000..4857b7f Binary files /dev/null and b/DSD/qrs/images/detection_real___empty_0.75_1NNmin.png differ diff --git a/DSD/qrs/images/detection_real___empty_1_1NNmin.png b/DSD/qrs/images/detection_real___empty_1_1NNmin.png new file mode 100644 index 0000000..e69a416 Binary files /dev/null and b/DSD/qrs/images/detection_real___empty_1_1NNmin.png differ diff --git a/DSD/qrs/images/detection_real_asus_1_1NNmin.png b/DSD/qrs/images/detection_real_asus_1_1NNmin.png new file mode 100644 index 0000000..3ce773c Binary files /dev/null and b/DSD/qrs/images/detection_real_asus_1_1NNmin.png differ diff --git a/DSD/qrs/llncs.cls b/DSD/qrs/llncs.cls new file mode 100644 index 0000000..886bf72 --- /dev/null +++ b/DSD/qrs/llncs.cls @@ -0,0 +1,1218 @@ +% LLNCS DOCUMENT CLASS -- version 2.20 (10-Mar-2018) +% Springer Verlag LaTeX2e support for Lecture Notes in Computer Science +% +%% +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesClass{llncs}[2018/03/10 v2.20 +^^J LaTeX document class for Lecture Notes in Computer Science] +% Options +\let\if@envcntreset\iffalse +\DeclareOption{envcountreset}{\let\if@envcntreset\iftrue} +\DeclareOption{citeauthoryear}{\let\citeauthoryear=Y} +\DeclareOption{oribibl}{\let\oribibl=Y} +\let\if@custvec\iftrue +\DeclareOption{orivec}{\let\if@custvec\iffalse} +\let\if@envcntsame\iffalse +\DeclareOption{envcountsame}{\let\if@envcntsame\iftrue} +\let\if@envcntsect\iffalse +\DeclareOption{envcountsect}{\let\if@envcntsect\iftrue} +\let\if@runhead\iffalse +\DeclareOption{runningheads}{\let\if@runhead\iftrue} + +\let\if@openright\iftrue +\let\if@openbib\iffalse +\DeclareOption{openbib}{\let\if@openbib\iftrue} + +% languages +\let\switcht@@therlang\relax +\def\ds@deutsch{\def\switcht@@therlang{\switcht@deutsch}} +\def\ds@francais{\def\switcht@@therlang{\switcht@francais}} + +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} + +\ProcessOptions + +\LoadClass[twoside]{article} +\RequirePackage{multicol} % needed for the list of participants, index +\RequirePackage{aliascnt} + +\setlength{\textwidth}{12.2cm} +\setlength{\textheight}{19.3cm} +\renewcommand\@pnumwidth{2em} +\renewcommand\@tocrmarg{3.5em} +% +\def\@dottedtocline#1#2#3#4#5{% + \ifnum #1>\c@tocdepth \else + \vskip \z@ \@plus.2\p@ + {\leftskip #2\relax \rightskip \@tocrmarg \advance\rightskip by 0pt plus 2cm + \parfillskip -\rightskip \pretolerance=10000 + \parindent #2\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima #3\relax + \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip + {#4}\nobreak + \leaders\hbox{$\m@th + \mkern \@dotsep mu\hbox{.}\mkern \@dotsep + mu$}\hfill + \nobreak + \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5}% + \par}% + \fi} +% +\def\switcht@albion{% +\def\abstractname{Abstract.} +\def\ackname{Acknowledgement.} +\def\andname{and} +\def\lastandname{\unskip, and} +\def\appendixname{Appendix} +\def\chaptername{Chapter} +\def\claimname{Claim} +\def\conjecturename{Conjecture} +\def\contentsname{Table of Contents} +\def\corollaryname{Corollary} +\def\definitionname{Definition} +\def\examplename{Example} +\def\exercisename{Exercise} +\def\figurename{Fig.} +\def\keywordname{{\bf Keywords:}} +\def\indexname{Index} +\def\lemmaname{Lemma} +\def\contriblistname{List of Contributors} +\def\listfigurename{List of Figures} +\def\listtablename{List of Tables} +\def\mailname{{\it Correspondence to\/}:} +\def\noteaddname{Note added in proof} +\def\notename{Note} +\def\partname{Part} +\def\problemname{Problem} +\def\proofname{Proof} +\def\propertyname{Property} +\def\propositionname{Proposition} +\def\questionname{Question} +\def\remarkname{Remark} +\def\seename{see} +\def\solutionname{Solution} +\def\subclassname{{\it Subject Classifications\/}:} +\def\tablename{Table} +\def\theoremname{Theorem}} +\switcht@albion +% Names of theorem like environments are already defined +% but must be translated if another language is chosen +% +% French section +\def\switcht@francais{%\typeout{On parle francais.}% + \def\abstractname{R\'esum\'e.}% + \def\ackname{Remerciements.}% + \def\andname{et}% + \def\lastandname{ et}% + \def\appendixname{Appendice} + \def\chaptername{Chapitre}% + \def\claimname{Pr\'etention}% + \def\conjecturename{Hypoth\`ese}% + \def\contentsname{Table des mati\`eres}% + \def\corollaryname{Corollaire}% + \def\definitionname{D\'efinition}% + \def\examplename{Exemple}% + \def\exercisename{Exercice}% + \def\figurename{Fig.}% + \def\keywordname{{\bf Mots-cl\'e:}} + \def\indexname{Index} + \def\lemmaname{Lemme}% + \def\contriblistname{Liste des contributeurs} + \def\listfigurename{Liste des figures}% + \def\listtablename{Liste des tables}% + \def\mailname{{\it Correspondence to\/}:} + \def\noteaddname{Note ajout\'ee \`a l'\'epreuve}% + \def\notename{Remarque}% + \def\partname{Partie}% + \def\problemname{Probl\`eme}% + \def\proofname{Preuve}% + \def\propertyname{Caract\'eristique}% +%\def\propositionname{Proposition}% + \def\questionname{Question}% + \def\remarkname{Remarque}% + \def\seename{voir} + \def\solutionname{Solution}% + \def\subclassname{{\it Subject Classifications\/}:} + \def\tablename{Tableau}% + \def\theoremname{Th\'eor\`eme}% +} +% +% German section +\def\switcht@deutsch{%\typeout{Man spricht deutsch.}% + \def\abstractname{Zusammenfassung.}% + \def\ackname{Danksagung.}% + \def\andname{und}% + \def\lastandname{ und}% + \def\appendixname{Anhang}% + \def\chaptername{Kapitel}% + \def\claimname{Behauptung}% + \def\conjecturename{Hypothese}% + \def\contentsname{Inhaltsverzeichnis}% + \def\corollaryname{Korollar}% +%\def\definitionname{Definition}% + \def\examplename{Beispiel}% + \def\exercisename{\"Ubung}% + \def\figurename{Abb.}% + \def\keywordname{{\bf Schl\"usselw\"orter:}} + \def\indexname{Index} +%\def\lemmaname{Lemma}% + \def\contriblistname{Mitarbeiter} + \def\listfigurename{Abbildungsverzeichnis}% + \def\listtablename{Tabellenverzeichnis}% + \def\mailname{{\it Correspondence to\/}:} + \def\noteaddname{Nachtrag}% + \def\notename{Anmerkung}% + \def\partname{Teil}% +%\def\problemname{Problem}% + \def\proofname{Beweis}% + \def\propertyname{Eigenschaft}% +%\def\propositionname{Proposition}% + \def\questionname{Frage}% + \def\remarkname{Anmerkung}% + \def\seename{siehe} + \def\solutionname{L\"osung}% + \def\subclassname{{\it Subject Classifications\/}:} + \def\tablename{Tabelle}% +%\def\theoremname{Theorem}% +} + +% Ragged bottom for the actual page +\def\thisbottomragged{\def\@textbottom{\vskip\z@ plus.0001fil +\global\let\@textbottom\relax}} + +\renewcommand\small{% + \@setfontsize\small\@ixpt{11}% + \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus2\p@ + \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \parsep 0\p@ \@plus1\p@ \@minus\p@ + \topsep 8\p@ \@plus2\p@ \@minus4\p@ + \itemsep0\p@}% + \belowdisplayskip \abovedisplayskip +} + +\frenchspacing +\widowpenalty=10000 +\clubpenalty=10000 + +\setlength\oddsidemargin {63\p@} +\setlength\evensidemargin {63\p@} +\setlength\marginparwidth {90\p@} + +\setlength\headsep {16\p@} + +\setlength\footnotesep{7.7\p@} +\setlength\textfloatsep{8mm\@plus 2\p@ \@minus 4\p@} +\setlength\intextsep {8mm\@plus 2\p@ \@minus 2\p@} + +\setcounter{secnumdepth}{2} + +\newcounter {chapter} +\renewcommand\thechapter {\@arabic\c@chapter} + +\newif\if@mainmatter \@mainmattertrue +\newcommand\frontmatter{\cleardoublepage + \@mainmatterfalse\pagenumbering{Roman}} +\newcommand\mainmatter{\cleardoublepage + \@mainmattertrue\pagenumbering{arabic}} +\newcommand\backmatter{\if@openright\cleardoublepage\else\clearpage\fi + \@mainmatterfalse} + +\renewcommand\part{\cleardoublepage + \thispagestyle{empty}% + \if@twocolumn + \onecolumn + \@tempswatrue + \else + \@tempswafalse + \fi + \null\vfil + \secdef\@part\@spart} + +\def\@part[#1]#2{% + \ifnum \c@secnumdepth >-2\relax + \refstepcounter{part}% + \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}% + \else + \addcontentsline{toc}{part}{#1}% + \fi + \markboth{}{}% + {\centering + \interlinepenalty \@M + \normalfont + \ifnum \c@secnumdepth >-2\relax + \huge\bfseries \partname~\thepart + \par + \vskip 20\p@ + \fi + \Huge \bfseries #2\par}% + \@endpart} +\def\@spart#1{% + {\centering + \interlinepenalty \@M + \normalfont + \Huge \bfseries #1\par}% + \@endpart} +\def\@endpart{\vfil\newpage + \if@twoside + \null + \thispagestyle{empty}% + \newpage + \fi + \if@tempswa + \twocolumn + \fi} + +\newcommand\chapter{\clearpage + \thispagestyle{empty}% + \global\@topnum\z@ + \@afterindentfalse + \secdef\@chapter\@schapter} +\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \refstepcounter{chapter}% + \typeout{\@chapapp\space\thechapter.}% + \addcontentsline{toc}{chapter}% + {\protect\numberline{\thechapter}#1}% + \else + \addcontentsline{toc}{chapter}{#1}% + \fi + \else + \addcontentsline{toc}{chapter}{#1}% + \fi + \chaptermark{#1}% + \addtocontents{lof}{\protect\addvspace{10\p@}}% + \addtocontents{lot}{\protect\addvspace{10\p@}}% + \if@twocolumn + \@topnewpage[\@makechapterhead{#2}]% + \else + \@makechapterhead{#2}% + \@afterheading + \fi} +\def\@makechapterhead#1{% +% \vspace*{50\p@}% + {\centering + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \large\bfseries \@chapapp{} \thechapter + \par\nobreak + \vskip 20\p@ + \fi + \fi + \interlinepenalty\@M + \Large \bfseries #1\par\nobreak + \vskip 40\p@ + }} +\def\@schapter#1{\if@twocolumn + \@topnewpage[\@makeschapterhead{#1}]% + \else + \@makeschapterhead{#1}% + \@afterheading + \fi} +\def\@makeschapterhead#1{% +% \vspace*{50\p@}% + {\centering + \normalfont + \interlinepenalty\@M + \Large \bfseries #1\par\nobreak + \vskip 40\p@ + }} + +\renewcommand\section{\@startsection{section}{1}{\z@}% + {-18\p@ \@plus -4\p@ \@minus -4\p@}% + {12\p@ \@plus 4\p@ \@minus 4\p@}% + {\normalfont\large\bfseries\boldmath + \rightskip=\z@ \@plus 8em\pretolerance=10000 }} +\renewcommand\subsection{\@startsection{subsection}{2}{\z@}% + {-18\p@ \@plus -4\p@ \@minus -4\p@}% + {8\p@ \@plus 4\p@ \@minus 4\p@}% + {\normalfont\normalsize\bfseries\boldmath + \rightskip=\z@ \@plus 8em\pretolerance=10000 }} +\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% + {-18\p@ \@plus -4\p@ \@minus -4\p@}% + {-0.5em \@plus -0.22em \@minus -0.1em}% + {\normalfont\normalsize\bfseries\boldmath}} +\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}% + {-12\p@ \@plus -4\p@ \@minus -4\p@}% + {-0.5em \@plus -0.22em \@minus -0.1em}% + {\normalfont\normalsize\itshape}} +\renewcommand\subparagraph[1]{\typeout{LLNCS warning: You should not use + \string\subparagraph\space with this class}\vskip0.5cm +You should not use \verb|\subparagraph| with this class.\vskip0.5cm} + +\DeclareMathSymbol{\Gamma}{\mathalpha}{letters}{"00} +\DeclareMathSymbol{\Delta}{\mathalpha}{letters}{"01} +\DeclareMathSymbol{\Theta}{\mathalpha}{letters}{"02} +\DeclareMathSymbol{\Lambda}{\mathalpha}{letters}{"03} +\DeclareMathSymbol{\Xi}{\mathalpha}{letters}{"04} +\DeclareMathSymbol{\Pi}{\mathalpha}{letters}{"05} +\DeclareMathSymbol{\Sigma}{\mathalpha}{letters}{"06} +\DeclareMathSymbol{\Upsilon}{\mathalpha}{letters}{"07} +\DeclareMathSymbol{\Phi}{\mathalpha}{letters}{"08} +\DeclareMathSymbol{\Psi}{\mathalpha}{letters}{"09} +\DeclareMathSymbol{\Omega}{\mathalpha}{letters}{"0A} + +\let\footnotesize\small + +\if@custvec +\def\vec#1{\mathchoice{\mbox{\boldmath$\displaystyle#1$}} +{\mbox{\boldmath$\textstyle#1$}} +{\mbox{\boldmath$\scriptstyle#1$}} +{\mbox{\boldmath$\scriptscriptstyle#1$}}} +\fi + +\def\squareforqed{\hbox{\rlap{$\sqcap$}$\sqcup$}} +\def\qed{\ifmmode\squareforqed\else{\unskip\nobreak\hfil +\penalty50\hskip1em\null\nobreak\hfil\squareforqed +\parfillskip=0pt\finalhyphendemerits=0\endgraf}\fi} + +\def\getsto{\mathrel{\mathchoice {\vcenter{\offinterlineskip +\halign{\hfil +$\displaystyle##$\hfil\cr\gets\cr\to\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr\gets +\cr\to\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr\gets +\cr\to\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr +\gets\cr\to\cr}}}}} +\def\lid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil +$\displaystyle##$\hfil\cr<\cr\noalign{\vskip1.2pt}=\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr<\cr +\noalign{\vskip1.2pt}=\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr<\cr +\noalign{\vskip1pt}=\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr +<\cr +\noalign{\vskip0.9pt}=\cr}}}}} +\def\gid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil +$\displaystyle##$\hfil\cr>\cr\noalign{\vskip1.2pt}=\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr>\cr +\noalign{\vskip1.2pt}=\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr>\cr +\noalign{\vskip1pt}=\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr +>\cr +\noalign{\vskip0.9pt}=\cr}}}}} +\def\grole{\mathrel{\mathchoice {\vcenter{\offinterlineskip +\halign{\hfil +$\displaystyle##$\hfil\cr>\cr\noalign{\vskip-1pt}<\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr +>\cr\noalign{\vskip-1pt}<\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr +>\cr\noalign{\vskip-0.8pt}<\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr +>\cr\noalign{\vskip-0.3pt}<\cr}}}}} +\def\bbbr{{\rm I\!R}} %reelle Zahlen +\def\bbbm{{\rm I\!M}} +\def\bbbn{{\rm I\!N}} %natuerliche Zahlen +\def\bbbf{{\rm I\!F}} +\def\bbbh{{\rm I\!H}} +\def\bbbk{{\rm I\!K}} +\def\bbbp{{\rm I\!P}} +\def\bbbone{{\mathchoice {\rm 1\mskip-4mu l} {\rm 1\mskip-4mu l} +{\rm 1\mskip-4.5mu l} {\rm 1\mskip-5mu l}}} +\def\bbbc{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm C$}\hbox{\hbox +to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}} +{\setbox0=\hbox{$\textstyle\rm C$}\hbox{\hbox +to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptstyle\rm C$}\hbox{\hbox +to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptscriptstyle\rm C$}\hbox{\hbox +to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}}} +\def\bbbq{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm +Q$}\hbox{\raise +0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}} +{\setbox0=\hbox{$\textstyle\rm Q$}\hbox{\raise +0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptstyle\rm Q$}\hbox{\raise +0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptscriptstyle\rm Q$}\hbox{\raise +0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}}}} +\def\bbbt{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm +T$}\hbox{\hbox to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}} +{\setbox0=\hbox{$\textstyle\rm T$}\hbox{\hbox +to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptstyle\rm T$}\hbox{\hbox +to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptscriptstyle\rm T$}\hbox{\hbox +to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}}} +\def\bbbs{{\mathchoice +{\setbox0=\hbox{$\displaystyle \rm S$}\hbox{\raise0.5\ht0\hbox +to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox +to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}} +{\setbox0=\hbox{$\textstyle \rm S$}\hbox{\raise0.5\ht0\hbox +to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox +to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptstyle \rm S$}\hbox{\raise0.5\ht0\hbox +to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0\hbox +to0pt{\kern0.5\wd0\vrule height0.45\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptscriptstyle\rm S$}\hbox{\raise0.5\ht0\hbox +to0pt{\kern0.4\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0\hbox +to0pt{\kern0.55\wd0\vrule height0.45\ht0\hss}\box0}}}} +\def\bbbz{{\mathchoice {\hbox{$\mathsf\textstyle Z\kern-0.4em Z$}} +{\hbox{$\mathsf\textstyle Z\kern-0.4em Z$}} +{\hbox{$\mathsf\scriptstyle Z\kern-0.3em Z$}} +{\hbox{$\mathsf\scriptscriptstyle Z\kern-0.2em Z$}}}} + +\let\ts\, + +\setlength\leftmargini {17\p@} +\setlength\leftmargin {\leftmargini} +\setlength\leftmarginii {\leftmargini} +\setlength\leftmarginiii {\leftmargini} +\setlength\leftmarginiv {\leftmargini} +\setlength \labelsep {.5em} +\setlength \labelwidth{\leftmargini} +\addtolength\labelwidth{-\labelsep} + +\def\@listI{\leftmargin\leftmargini + \parsep 0\p@ \@plus1\p@ \@minus\p@ + \topsep 8\p@ \@plus2\p@ \@minus4\p@ + \itemsep0\p@} +\let\@listi\@listI +\@listi +\def\@listii {\leftmargin\leftmarginii + \labelwidth\leftmarginii + \advance\labelwidth-\labelsep + \topsep 0\p@ \@plus2\p@ \@minus\p@} +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii + \advance\labelwidth-\labelsep + \topsep 0\p@ \@plus\p@\@minus\p@ + \parsep \z@ + \partopsep \p@ \@plus\z@ \@minus\p@} + +\renewcommand\labelitemi{\normalfont\bfseries --} +\renewcommand\labelitemii{$\m@th\bullet$} + +\setlength\arraycolsep{1.4\p@} +\setlength\tabcolsep{1.4\p@} + +\def\tableofcontents{\chapter*{\contentsname\@mkboth{{\contentsname}}% + {{\contentsname}}} + \def\authcount##1{\setcounter{auco}{##1}\setcounter{@auth}{1}} + \def\lastand{\ifnum\value{auco}=2\relax + \unskip{} \andname\ + \else + \unskip \lastandname\ + \fi}% + \def\and{\stepcounter{@auth}\relax + \ifnum\value{@auth}=\value{auco}% + \lastand + \else + \unskip, + \fi}% + \@starttoc{toc}\if@restonecol\twocolumn\fi} + +\def\l@part#1#2{\addpenalty{\@secpenalty}% + \addvspace{2em plus\p@}% % space above part line + \begingroup + \parindent \z@ + \rightskip \z@ plus 5em + \hrule\vskip5pt + \large % same size as for a contribution heading + \bfseries\boldmath % set line in boldface + \leavevmode % TeX command to enter horizontal mode. + #1\par + \vskip5pt + \hrule + \vskip1pt + \nobreak % Never break after part entry + \endgroup} + +\def\@dotsep{2} + +\let\phantomsection=\relax + +\def\hyperhrefextend{\ifx\hyper@anchor\@undefined\else +{}\fi} + +\def\addnumcontentsmark#1#2#3{% +\addtocontents{#1}{\protect\contentsline{#2}{\protect\numberline + {\thechapter}#3}{\thepage}\hyperhrefextend}}% +\def\addcontentsmark#1#2#3{% +\addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}\hyperhrefextend}}% +\def\addcontentsmarkwop#1#2#3{% +\addtocontents{#1}{\protect\contentsline{#2}{#3}{0}\hyperhrefextend}}% + +\def\@adcmk[#1]{\ifcase #1 \or +\def\@gtempa{\addnumcontentsmark}% + \or \def\@gtempa{\addcontentsmark}% + \or \def\@gtempa{\addcontentsmarkwop}% + \fi\@gtempa{toc}{chapter}% +} +\def\addtocmark{% +\phantomsection +\@ifnextchar[{\@adcmk}{\@adcmk[3]}% +} + +\def\l@chapter#1#2{\addpenalty{-\@highpenalty} + \vskip 1.0em plus 1pt \@tempdima 1.5em \begingroup + \parindent \z@ \rightskip \@tocrmarg + \advance\rightskip by 0pt plus 2cm + \parfillskip -\rightskip \pretolerance=10000 + \leavevmode \advance\leftskip\@tempdima \hskip -\leftskip + {\large\bfseries\boldmath#1}\ifx0#2\hfil\null + \else + \nobreak + \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern + \@dotsep mu$}\hfill + \nobreak\hbox to\@pnumwidth{\hss #2}% + \fi\par + \penalty\@highpenalty \endgroup} + +\def\l@title#1#2{\addpenalty{-\@highpenalty} + \addvspace{8pt plus 1pt} + \@tempdima \z@ + \begingroup + \parindent \z@ \rightskip \@tocrmarg + \advance\rightskip by 0pt plus 2cm + \parfillskip -\rightskip \pretolerance=10000 + \leavevmode \advance\leftskip\@tempdima \hskip -\leftskip + #1\nobreak + \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern + \@dotsep mu$}\hfill + \nobreak\hbox to\@pnumwidth{\hss #2}\par + \penalty\@highpenalty \endgroup} + +\def\l@author#1#2{\addpenalty{\@highpenalty} + \@tempdima=15\p@ %\z@ + \begingroup + \parindent \z@ \rightskip \@tocrmarg + \advance\rightskip by 0pt plus 2cm + \pretolerance=10000 + \leavevmode \advance\leftskip\@tempdima %\hskip -\leftskip + \textit{#1}\par + \penalty\@highpenalty \endgroup} + +\setcounter{tocdepth}{0} +\newdimen\tocchpnum +\newdimen\tocsecnum +\newdimen\tocsectotal +\newdimen\tocsubsecnum +\newdimen\tocsubsectotal +\newdimen\tocsubsubsecnum +\newdimen\tocsubsubsectotal +\newdimen\tocparanum +\newdimen\tocparatotal +\newdimen\tocsubparanum +\tocchpnum=\z@ % no chapter numbers +\tocsecnum=15\p@ % section 88. plus 2.222pt +\tocsubsecnum=23\p@ % subsection 88.8 plus 2.222pt +\tocsubsubsecnum=27\p@ % subsubsection 88.8.8 plus 1.444pt +\tocparanum=35\p@ % paragraph 88.8.8.8 plus 1.666pt +\tocsubparanum=43\p@ % subparagraph 88.8.8.8.8 plus 1.888pt +\def\calctocindent{% +\tocsectotal=\tocchpnum +\advance\tocsectotal by\tocsecnum +\tocsubsectotal=\tocsectotal +\advance\tocsubsectotal by\tocsubsecnum +\tocsubsubsectotal=\tocsubsectotal +\advance\tocsubsubsectotal by\tocsubsubsecnum +\tocparatotal=\tocsubsubsectotal +\advance\tocparatotal by\tocparanum} +\calctocindent + +\def\l@section{\@dottedtocline{1}{\tocchpnum}{\tocsecnum}} +\def\l@subsection{\@dottedtocline{2}{\tocsectotal}{\tocsubsecnum}} +\def\l@subsubsection{\@dottedtocline{3}{\tocsubsectotal}{\tocsubsubsecnum}} +\def\l@paragraph{\@dottedtocline{4}{\tocsubsubsectotal}{\tocparanum}} +\def\l@subparagraph{\@dottedtocline{5}{\tocparatotal}{\tocsubparanum}} + +\def\listoffigures{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn + \fi\section*{\listfigurename\@mkboth{{\listfigurename}}{{\listfigurename}}} + \@starttoc{lof}\if@restonecol\twocolumn\fi} +\def\l@figure{\@dottedtocline{1}{0em}{1.5em}} + +\def\listoftables{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn + \fi\section*{\listtablename\@mkboth{{\listtablename}}{{\listtablename}}} + \@starttoc{lot}\if@restonecol\twocolumn\fi} +\let\l@table\l@figure + +\renewcommand\listoffigures{% + \section*{\listfigurename + \@mkboth{\listfigurename}{\listfigurename}}% + \@starttoc{lof}% + } + +\renewcommand\listoftables{% + \section*{\listtablename + \@mkboth{\listtablename}{\listtablename}}% + \@starttoc{lot}% + } + +\ifx\oribibl\undefined +\ifx\citeauthoryear\undefined +\renewenvironment{thebibliography}[1] + {\section*{\refname} + \def\@biblabel##1{##1.} + \small + \list{\@biblabel{\@arabic\c@enumiv}}% + {\settowidth\labelwidth{\@biblabel{#1}}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \if@openbib + \advance\leftmargin\bibindent + \itemindent -\bibindent + \listparindent \itemindent + \parsep \z@ + \fi + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{\@arabic\c@enumiv}}% + \if@openbib + \renewcommand\newblock{\par}% + \else + \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}% + \fi + \sloppy\clubpenalty4000\widowpenalty4000% + \sfcode`\.=\@m} + {\def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% + \endlist} +\def\@lbibitem[#1]#2{\item[{[#1]}\hfill]\if@filesw + {\let\protect\noexpand\immediate + \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces} +\newcount\@tempcntc +\def\@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi + \@tempcnta\z@\@tempcntb\m@ne\def\@citea{}\@cite{\@for\@citeb:=#2\do + {\@ifundefined + {b@\@citeb}{\@citeo\@tempcntb\m@ne\@citea\def\@citea{,}{\bfseries + ?}\@warning + {Citation `\@citeb' on page \thepage \space undefined}}% + {\setbox\z@\hbox{\global\@tempcntc0\csname b@\@citeb\endcsname\relax}% + \ifnum\@tempcntc=\z@ \@citeo\@tempcntb\m@ne + \@citea\def\@citea{,}\hbox{\csname b@\@citeb\endcsname}% + \else + \advance\@tempcntb\@ne + \ifnum\@tempcntb=\@tempcntc + \else\advance\@tempcntb\m@ne\@citeo + \@tempcnta\@tempcntc\@tempcntb\@tempcntc\fi\fi}}\@citeo}{#1}} +\def\@citeo{\ifnum\@tempcnta>\@tempcntb\else + \@citea\def\@citea{,\,\hskip\z@skip}% + \ifnum\@tempcnta=\@tempcntb\the\@tempcnta\else + {\advance\@tempcnta\@ne\ifnum\@tempcnta=\@tempcntb \else + \def\@citea{--}\fi + \advance\@tempcnta\m@ne\the\@tempcnta\@citea\the\@tempcntb}\fi\fi} +\else +\renewenvironment{thebibliography}[1] + {\section*{\refname} + \small + \list{}% + {\settowidth\labelwidth{}% + \leftmargin\parindent + \itemindent=-\parindent + \labelsep=\z@ + \if@openbib + \advance\leftmargin\bibindent + \itemindent -\bibindent + \listparindent \itemindent + \parsep \z@ + \fi + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{}}% + \if@openbib + \renewcommand\newblock{\par}% + \else + \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}% + \fi + \sloppy\clubpenalty4000\widowpenalty4000% + \sfcode`\.=\@m} + {\def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% + \endlist} + \def\@cite#1{#1}% + \def\@lbibitem[#1]#2{\item[]\if@filesw + {\def\protect##1{\string ##1\space}\immediate + \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces} + \fi +\else +\@cons\@openbib@code{\noexpand\small} +\fi + +\def\idxquad{\hskip 10\p@}% space that divides entry from number + +\def\@idxitem{\par\hangindent 10\p@} + +\def\subitem{\par\setbox0=\hbox{--\enspace}% second order + \noindent\hangindent\wd0\box0}% index entry + +\def\subsubitem{\par\setbox0=\hbox{--\,--\enspace}% third + \noindent\hangindent\wd0\box0}% order index entry + +\def\indexspace{\par \vskip 10\p@ plus5\p@ minus3\p@\relax} + +\renewenvironment{theindex} + {\@mkboth{\indexname}{\indexname}% + \thispagestyle{empty}\parindent\z@ + \parskip\z@ \@plus .3\p@\relax + \let\item\par + \def\,{\relax\ifmmode\mskip\thinmuskip + \else\hskip0.2em\ignorespaces\fi}% + \normalfont\small + \begin{multicols}{2}[\@makeschapterhead{\indexname}]% + } + {\end{multicols}} + +\renewcommand\footnoterule{% + \kern-3\p@ + \hrule\@width 2truecm + \kern2.6\p@} + \newdimen\fnindent + \fnindent1em +\long\def\@makefntext#1{% + \parindent \fnindent% + \leftskip \fnindent% + \noindent + \llap{\hb@xt@1em{\hss\@makefnmark\ }}\ignorespaces#1} + +\long\def\@makecaption#1#2{% + \small + \vskip\abovecaptionskip + \sbox\@tempboxa{{\bfseries #1.} #2}% + \ifdim \wd\@tempboxa >\hsize + {\bfseries #1.} #2\par + \else + \global \@minipagefalse + \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% + \fi + \vskip\belowcaptionskip} + +\def\fps@figure{htbp} +\def\fnum@figure{\figurename\thinspace\thefigure} +\def \@floatboxreset {% + \reset@font + \small + \@setnobreak + \@setminipage +} +\def\fps@table{htbp} +\def\fnum@table{\tablename~\thetable} +\renewenvironment{table} + {\setlength\abovecaptionskip{0\p@}% + \setlength\belowcaptionskip{10\p@}% + \@float{table}} + {\end@float} +\renewenvironment{table*} + {\setlength\abovecaptionskip{0\p@}% + \setlength\belowcaptionskip{10\p@}% + \@dblfloat{table}} + {\end@dblfloat} + +\long\def\@caption#1[#2]#3{\par\addcontentsline{\csname + ext@#1\endcsname}{#1}{\protect\numberline{\csname + the#1\endcsname}{\ignorespaces #2}}\begingroup + \@parboxrestore + \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par + \endgroup} + +% LaTeX does not provide a command to enter the authors institute +% addresses. The \institute command is defined here. + +\newcounter{@inst} +\newcounter{@auth} +\newcounter{auco} +\newdimen\instindent +\newbox\authrun +\newtoks\authorrunning +\newtoks\tocauthor +\newbox\titrun +\newtoks\titlerunning +\newtoks\toctitle + +\def\clearheadinfo{\gdef\@author{No Author Given}% + \gdef\@title{No Title Given}% + \gdef\@subtitle{}% + \gdef\@institute{No Institute Given}% + \gdef\@thanks{}% + \global\titlerunning={}\global\authorrunning={}% + \global\toctitle={}\global\tocauthor={}} + +\def\institute#1{\gdef\@institute{#1}} + +\def\institutename{\par + \begingroup + \parskip=\z@ + \parindent=\z@ + \setcounter{@inst}{1}% + \def\and{\par\stepcounter{@inst}% + \noindent$^{\the@inst}$\enspace\ignorespaces}% + \setbox0=\vbox{\def\thanks##1{}\@institute}% + \ifnum\c@@inst=1\relax + \gdef\fnnstart{0}% + \else + \xdef\fnnstart{\c@@inst}% + \setcounter{@inst}{1}% + \noindent$^{\the@inst}$\enspace + \fi + \ignorespaces + \@institute\par + \endgroup} + +\def\@fnsymbol#1{\ensuremath{\ifcase#1\or\star\or{\star\star}\or + {\star\star\star}\or \dagger\or \ddagger\or + \mathchar "278\or \mathchar "27B\or \|\or **\or \dagger\dagger + \or \ddagger\ddagger \else\@ctrerr\fi}} + +\def\inst#1{\unskip$^{#1}$} +\def\orcidID#1{\unskip$^{[#1]}$} % added MR 2018-03-10 +\def\fnmsep{\unskip$^,$} +\def\email#1{{\tt#1}} + +\AtBeginDocument{\@ifundefined{url}{\def\url#1{#1}}{}% +\@ifpackageloaded{babel}{% +\@ifundefined{extrasenglish}{}{\addto\extrasenglish{\switcht@albion}}% +\@ifundefined{extrasfrenchb}{}{\addto\extrasfrenchb{\switcht@francais}}% +\@ifundefined{extrasgerman}{}{\addto\extrasgerman{\switcht@deutsch}}% +\@ifundefined{extrasngerman}{}{\addto\extrasngerman{\switcht@deutsch}}% +}{\switcht@@therlang}% +\providecommand{\keywords}[1]{\def\and{{\textperiodcentered} }% +\par\addvspace\baselineskip +\noindent\keywordname\enspace\ignorespaces#1}% +\@ifpackageloaded{hyperref}{% +\def\doi#1{\href{https://doi.org/#1}{https://doi.org/#1}}}{ +\def\doi#1{https://doi.org/#1}} +} +\def\homedir{\~{ }} + +\def\subtitle#1{\gdef\@subtitle{#1}} +\clearheadinfo +% +%%% to avoid hyperref warnings +\providecommand*{\toclevel@author}{999} +%%% to make title-entry parent of section-entries +\providecommand*{\toclevel@title}{0} +% +\renewcommand\maketitle{\newpage +\phantomsection + \refstepcounter{chapter}% + \stepcounter{section}% + \setcounter{section}{0}% + \setcounter{subsection}{0}% + \setcounter{figure}{0} + \setcounter{table}{0} + \setcounter{equation}{0} + \setcounter{footnote}{0}% + \begingroup + \parindent=\z@ + \renewcommand\thefootnote{\@fnsymbol\c@footnote}% + \if@twocolumn + \ifnum \col@number=\@ne + \@maketitle + \else + \twocolumn[\@maketitle]% + \fi + \else + \newpage + \global\@topnum\z@ % Prevents figures from going at top of page. + \@maketitle + \fi + \thispagestyle{empty}\@thanks +% + \def\\{\unskip\ \ignorespaces}\def\inst##1{\unskip{}}% + \def\thanks##1{\unskip{}}\def\fnmsep{\unskip}% + \instindent=\hsize + \advance\instindent by-\headlineindent + \if!\the\toctitle!\addcontentsline{toc}{title}{\@title}\else + \addcontentsline{toc}{title}{\the\toctitle}\fi + \if@runhead + \if!\the\titlerunning!\else + \edef\@title{\the\titlerunning}% + \fi + \global\setbox\titrun=\hbox{\small\rm\unboldmath\ignorespaces\@title}% + \ifdim\wd\titrun>\instindent + \typeout{Title too long for running head. Please supply}% + \typeout{a shorter form with \string\titlerunning\space prior to + \string\maketitle}% + \global\setbox\titrun=\hbox{\small\rm + Title Suppressed Due to Excessive Length}% + \fi + \xdef\@title{\copy\titrun}% + \fi +% + \if!\the\tocauthor!\relax + {\def\and{\noexpand\protect\noexpand\and}% + \def\inst##1{}% added MR 2017-09-20 to remove inst numbers from the TOC + \def\orcidID##1{}% added MR 2017-09-20 to remove ORCID ids from the TOC + \protected@xdef\toc@uthor{\@author}}% + \else + \def\\{\noexpand\protect\noexpand\newline}% + \protected@xdef\scratch{\the\tocauthor}% + \protected@xdef\toc@uthor{\scratch}% + \fi + \addtocontents{toc}{\noexpand\protect\noexpand\authcount{\the\c@auco}}% + \addcontentsline{toc}{author}{\toc@uthor}% + \if@runhead + \if!\the\authorrunning! + \value{@inst}=\value{@auth}% + \setcounter{@auth}{1}% + \else + \edef\@author{\the\authorrunning}% + \fi + \global\setbox\authrun=\hbox{\def\inst##1{}% added MR 2017-09-20 to remove inst numbers from the runninghead + \def\orcidID##1{}% added MR 2017-09-20 to remove ORCID ids from the runninghead + \small\unboldmath\@author\unskip}% + \ifdim\wd\authrun>\instindent + \typeout{Names of authors too long for running head. Please supply}% + \typeout{a shorter form with \string\authorrunning\space prior to + \string\maketitle}% + \global\setbox\authrun=\hbox{\small\rm + Authors Suppressed Due to Excessive Length}% + \fi + \xdef\@author{\copy\authrun}% + \markboth{\@author}{\@title}% + \fi + \endgroup + \setcounter{footnote}{\fnnstart}% + \clearheadinfo} +% +\def\@maketitle{\newpage + \markboth{}{}% + \def\lastand{\ifnum\value{@inst}=2\relax + \unskip{} \andname\ + \else + \unskip \lastandname\ + \fi}% + \def\and{\stepcounter{@auth}\relax + \ifnum\value{@auth}=\value{@inst}% + \lastand + \else + \unskip, + \fi}% + \begin{center}% + \let\newline\\ + {\Large \bfseries\boldmath + \pretolerance=10000 + \@title \par}\vskip .8cm +\if!\@subtitle!\else {\large \bfseries\boldmath + \vskip -.65cm + \pretolerance=10000 + \@subtitle \par}\vskip .8cm\fi + \setbox0=\vbox{\setcounter{@auth}{1}\def\and{\stepcounter{@auth}}% + \def\thanks##1{}\@author}% + \global\value{@inst}=\value{@auth}% + \global\value{auco}=\value{@auth}% + \setcounter{@auth}{1}% +{\lineskip .5em +\noindent\ignorespaces +\@author\vskip.35cm} + {\small\institutename} + \end{center}% + } + +% definition of the "\spnewtheorem" command. +% +% Usage: +% +% \spnewtheorem{env_nam}{caption}[within]{cap_font}{body_font} +% or \spnewtheorem{env_nam}[numbered_like]{caption}{cap_font}{body_font} +% or \spnewtheorem*{env_nam}{caption}{cap_font}{body_font} +% +% New is "cap_font" and "body_font". It stands for +% fontdefinition of the caption and the text itself. +% +% "\spnewtheorem*" gives a theorem without number. +% +% A defined spnewthoerem environment is used as described +% by Lamport. +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\@thmcountersep{} +\def\@thmcounterend{.} + +\def\spnewtheorem{\@ifstar{\@sthm}{\@Sthm}} + +% definition of \spnewtheorem with number + +\def\@spnthm#1#2{% + \@ifnextchar[{\@spxnthm{#1}{#2}}{\@spynthm{#1}{#2}}} +\def\@Sthm#1{\@ifnextchar[{\@spothm{#1}}{\@spnthm{#1}}} + +\def\@spxnthm#1#2[#3]#4#5{\expandafter\@ifdefinable\csname #1\endcsname + {\@definecounter{#1}\@addtoreset{#1}{#3}% + \expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand + \csname the#3\endcsname \noexpand\@thmcountersep \@thmcounter{#1}}% + \expandafter\xdef\csname #1name\endcsname{#2}% + \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#4}{#5}}% + \global\@namedef{end#1}{\@endtheorem}}} + +\def\@spynthm#1#2#3#4{\expandafter\@ifdefinable\csname #1\endcsname + {\@definecounter{#1}% + \expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}% + \expandafter\xdef\csname #1name\endcsname{#2}% + \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#3}{#4}}% + \global\@namedef{end#1}{\@endtheorem}}} + +\def\@spothm#1[#2]#3#4#5{% + \@ifundefined{c@#2}{\@latexerr{No theorem environment `#2' defined}\@eha}% + {\expandafter\@ifdefinable\csname #1\endcsname + {\newaliascnt{#1}{#2}% + \expandafter\xdef\csname #1name\endcsname{#3}% + \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#4}{#5}}% + \global\@namedef{end#1}{\@endtheorem}}}} + +\def\@spthm#1#2#3#4{\topsep 7\p@ \@plus2\p@ \@minus4\p@ +\refstepcounter{#1}% +\@ifnextchar[{\@spythm{#1}{#2}{#3}{#4}}{\@spxthm{#1}{#2}{#3}{#4}}} + +\def\@spxthm#1#2#3#4{\@spbegintheorem{#2}{\csname the#1\endcsname}{#3}{#4}% + \ignorespaces} + +\def\@spythm#1#2#3#4[#5]{\@spopargbegintheorem{#2}{\csname + the#1\endcsname}{#5}{#3}{#4}\ignorespaces} + +\def\@spbegintheorem#1#2#3#4{\trivlist + \item[\hskip\labelsep{#3#1\ #2\@thmcounterend}]#4} + +\def\@spopargbegintheorem#1#2#3#4#5{\trivlist + \item[\hskip\labelsep{#4#1\ #2}]{#4(#3)\@thmcounterend\ }#5} + +% definition of \spnewtheorem* without number + +\def\@sthm#1#2{\@Ynthm{#1}{#2}} + +\def\@Ynthm#1#2#3#4{\expandafter\@ifdefinable\csname #1\endcsname + {\global\@namedef{#1}{\@Thm{\csname #1name\endcsname}{#3}{#4}}% + \expandafter\xdef\csname #1name\endcsname{#2}% + \global\@namedef{end#1}{\@endtheorem}}} + +\def\@Thm#1#2#3{\topsep 7\p@ \@plus2\p@ \@minus4\p@ +\@ifnextchar[{\@Ythm{#1}{#2}{#3}}{\@Xthm{#1}{#2}{#3}}} + +\def\@Xthm#1#2#3{\@Begintheorem{#1}{#2}{#3}\ignorespaces} + +\def\@Ythm#1#2#3[#4]{\@Opargbegintheorem{#1} + {#4}{#2}{#3}\ignorespaces} + +\def\@Begintheorem#1#2#3{#3\trivlist + \item[\hskip\labelsep{#2#1\@thmcounterend}]} + +\def\@Opargbegintheorem#1#2#3#4{#4\trivlist + \item[\hskip\labelsep{#3#1}]{#3(#2)\@thmcounterend\ }} + +\if@envcntsect + \def\@thmcountersep{.} + \spnewtheorem{theorem}{Theorem}[section]{\bfseries}{\itshape} +\else + \spnewtheorem{theorem}{Theorem}{\bfseries}{\itshape} + \if@envcntreset + \@addtoreset{theorem}{section} + \else + \@addtoreset{theorem}{chapter} + \fi +\fi + +%definition of divers theorem environments +\spnewtheorem*{claim}{Claim}{\itshape}{\rmfamily} +\spnewtheorem*{proof}{Proof}{\itshape}{\rmfamily} +\if@envcntsame % alle Umgebungen wie Theorem. + \def\spn@wtheorem#1#2#3#4{\@spothm{#1}[theorem]{#2}{#3}{#4}} +\else % alle Umgebungen mit eigenem Zaehler + \if@envcntsect % mit section numeriert + \def\spn@wtheorem#1#2#3#4{\@spxnthm{#1}{#2}[section]{#3}{#4}} + \else % nicht mit section numeriert + \if@envcntreset + \def\spn@wtheorem#1#2#3#4{\@spynthm{#1}{#2}{#3}{#4} + \@addtoreset{#1}{section}} + \else + \def\spn@wtheorem#1#2#3#4{\@spynthm{#1}{#2}{#3}{#4} + \@addtoreset{#1}{chapter}}% + \fi + \fi +\fi +\spn@wtheorem{case}{Case}{\itshape}{\rmfamily} +\spn@wtheorem{conjecture}{Conjecture}{\itshape}{\rmfamily} +\spn@wtheorem{corollary}{Corollary}{\bfseries}{\itshape} +\spn@wtheorem{definition}{Definition}{\bfseries}{\itshape} +\spn@wtheorem{example}{Example}{\itshape}{\rmfamily} +\spn@wtheorem{exercise}{Exercise}{\itshape}{\rmfamily} +\spn@wtheorem{lemma}{Lemma}{\bfseries}{\itshape} +\spn@wtheorem{note}{Note}{\itshape}{\rmfamily} +\spn@wtheorem{problem}{Problem}{\itshape}{\rmfamily} +\spn@wtheorem{property}{Property}{\itshape}{\rmfamily} +\spn@wtheorem{proposition}{Proposition}{\bfseries}{\itshape} +\spn@wtheorem{question}{Question}{\itshape}{\rmfamily} +\spn@wtheorem{solution}{Solution}{\itshape}{\rmfamily} +\spn@wtheorem{remark}{Remark}{\itshape}{\rmfamily} + +\def\@takefromreset#1#2{% + \def\@tempa{#1}% + \let\@tempd\@elt + \def\@elt##1{% + \def\@tempb{##1}% + \ifx\@tempa\@tempb\else + \@addtoreset{##1}{#2}% + \fi}% + \expandafter\expandafter\let\expandafter\@tempc\csname cl@#2\endcsname + \expandafter\def\csname cl@#2\endcsname{}% + \@tempc + \let\@elt\@tempd} + +\def\theopargself{\def\@spopargbegintheorem##1##2##3##4##5{\trivlist + \item[\hskip\labelsep{##4##1\ ##2}]{##4##3\@thmcounterend\ }##5} + \def\@Opargbegintheorem##1##2##3##4{##4\trivlist + \item[\hskip\labelsep{##3##1}]{##3##2\@thmcounterend\ }} + } + +\renewenvironment{abstract}{% + \list{}{\advance\topsep by0.35cm\relax\small + \leftmargin=1cm + \labelwidth=\z@ + \listparindent=\z@ + \itemindent\listparindent + \rightmargin\leftmargin}\item[\hskip\labelsep + \bfseries\abstractname]} + {\endlist} + +\newdimen\headlineindent % dimension for space between +\headlineindent=1.166cm % number and text of headings. + +\def\ps@headings{\let\@mkboth\@gobbletwo + \let\@oddfoot\@empty\let\@evenfoot\@empty + \def\@evenhead{\normalfont\small\rlap{\thepage}\hspace{\headlineindent}% + \leftmark\hfil} + \def\@oddhead{\normalfont\small\hfil\rightmark\hspace{\headlineindent}% + \llap{\thepage}} + \def\chaptermark##1{}% + \def\sectionmark##1{}% + \def\subsectionmark##1{}} + +\def\ps@titlepage{\let\@mkboth\@gobbletwo + \let\@oddfoot\@empty\let\@evenfoot\@empty + \def\@evenhead{\normalfont\small\rlap{\thepage}\hspace{\headlineindent}% + \hfil} + \def\@oddhead{\normalfont\small\hfil\hspace{\headlineindent}% + \llap{\thepage}} + \def\chaptermark##1{}% + \def\sectionmark##1{}% + \def\subsectionmark##1{}} + +\if@runhead\ps@headings\else +\ps@empty\fi + +\setlength\arraycolsep{1.4\p@} +\setlength\tabcolsep{1.4\p@} + +\endinput +%end of file llncs.cls diff --git a/DSD/qrs/main.tex b/DSD/qrs/main.tex new file mode 100644 index 0000000..dd7a44b --- /dev/null +++ b/DSD/qrs/main.tex @@ -0,0 +1,652 @@ +% This is samplepaper.tex, a sample chapter demonstrating the +% LLNCS macro package for Springer Computer Science proceedings; +% Version 2.20 of 2017/10/04 +% + +% Updates from conference version +% - Proof of monotonicity of the number of unknown samples as a function of alpha (Sec: Influence of alpha) +% - Added a figure to illustrate the areas of capture as a function of alpha (Fig fig:areas) + + + +\documentclass[sigconf, review, anonymous]{acmart} + +\usepackage{graphicx} +\usepackage{xcolor} +\usepackage[toc,acronym,abbreviations,nonumberlist,nogroupskip]{glossaries-extra} +\usepackage{booktabs} +\usepackage{multirow} +\usepackage{tabularx} +\usepackage{algpseudocodex} +\usepackage{algorithm} + +\hyphenation{dif-fe-rent} +\hyphenation{mo-di-fi-ca-tion} +\hyphenation{ope-ra-tions} +\hyphenation{acqui-ring} +\hyphenation{in-vo-lun-tary} +\hyphenation{re-le-vant} +\hyphenation{re-pre-sents} +\hyphenation{na-tu-ral-ly} +\hyphenation{col-lec-ting} +\hyphenation{sta-bi-li-ty} +\hyphenation{li-ne-ar} +\hyphenation{Figure} + +\newtheorem{problem-statement}{Problem Statement} + +% Used for displaying a sample figure. If possible, figure files should +% be included in EPS format. +% +% If you use the hyperref package, please uncomment the following line +% to display URLs in blue roman font according to Springer's eBook style: +% \renewcommand\UrlFont{\color{blue}\rmfamily} + +\newcommand\agd[1]{{\color{red}$\bigstar$}\footnote{agd: #1}} +\newcommand\SF[1]{{\color{blue}$\bigstar$}\footnote{sf: #1}} +\newcommand{\cn}{{\color{purple}[citation needed]}} +\newcommand{\pv}{{\color{orange}[passive voice]}} +\newcommand{\wv}{{\color{orange}[weak verb]}} +\citestyle{acmauthoryear} + +%\renewcommand{\baselinestretch}{1.05} + +\begin{document} +\input{acronyms} +% +\title{MAD: One-Shot Machine Activity Detector\\ for Physics-Based Cyber Security} + + +\author{Arthur Grisel-Davy} +\orcid{0000-0001-9293-035X} +\affiliation{% + \institution{University of Waterloo} + \city{Waterloo} + \state{Ontario} + \country{Canada} +} +\email{agriseld@uwaterloo.ca} + + +\author{Sebastian Fischmeister} +\affiliation{% + \institution{University of Waterloo} + \city{Waterloo} + \state{Ontario} + \country{Canada} +} +\email{sfishme@uwaterloo.ca} + +\begin{abstract} +Side channel analysis offers several advantages over traditional machine monitoring methods. +The low intrusiveness, independence with the host, data reliability and difficulty to bypass are compelling arguments for using involuntary emissions as input for security policies. +However, side-channel information often comes in the form of unlabeled time series representing a proxy variable of the activity. +Enabling the definition and enforcement of high-level security policies requires extracting the state or activity of the system. +We present in this paper a novel time series, one-shot classifier called \gls{mad} specifically designed and evaluated for side-channel analysis. +\gls{mad} outperforms other traditional state detection solutions in terms of accuracy and, as importantly, Levenshtein distance of the state sequence. + +\keywords{side-channel analysis, security rules, state detection} +\end{abstract} + + +\maketitle + + +\section{Introduction} + +\gls{ids}s leverage different types of data to detect intrusions. +On one side, most solutions use labeled and actionable data, often provided by the system to protect. +In the software world, this data can be the resource usage \cite{1702202}, program source code \cite{9491765} or network traffic \cite{10.1145/2940343.2940348} leveraged by an \gls{hids} or \gls{nids}. +In the machine monitoring world the input data can be the shape of a gear \cite{wang2015measurement} or the throughput of a pump \cite{gupta2021novel}. +On the other side, some methods consider only information that the system did not intentionally provide. +The system emits these activities by-product through physical mediums called side channels. +Common side-channel information for an embedded system include power consumption \cite{yang2016power} or electromagnetic fields \cite{chawla2021machine}. +For a production machine, common side-channel information include vibrations \cite{zhang2019numerical} or chemical composition of fluids \cite{4393062}. + +Side-channel information offer compelling advantages over agent-collected information. +First, the information is difficult to forge. +Because the monitored system is not involved in the data retrieval process, there is no risk that an attacker that compromised the system could easily send forged information. +For example, if an attacker performs any computation on the system --- which is the case of most attacks --- it will unavoidably affect a variety of different side channels. +Second, the side-channel information retrieval process is often non-intrusive and non-disruptive for the monitored system. +Measuring the power consumption of a computer or the vibrations of a machine does not involve the cooperation or modification of the system \cite{10.1145/2976749.2978353}. +This host-independence property is crucial for safety-critical or high-availability applications as the failure of one of the two --- monitored or monitoring --- systems does not affect the other. +These two properties --- reliable data and host-independence --- set physics-based monitoring solution apart with distinct advantages and use-cases. + +However, using side-channel data introduces new challenges. +One obstacle to overcome when designing a physics-based solution is the interpretation of the data. +Because the data collection consists of measuring a physical phenomenon, the input data is often a discrete time series. +The values in these time series are not directly actionable. +In some cases, a threshold value is enough to assess the integrity of the system. +In such a case, comparing each value of the time series to the threshold is possible \cite{jelali2013statistical}. +However, whenever a simple threshold is not a reliable factor for the decision, a more advanced analysis of the time series is required to make it actionable. +The state of a machine is often represented by a specific pattern. +This pattern could be, for example, a succession of specific amplitudes or a frequency/average pair for periodic processes. +These patterns are impossible to reliably detect with a simple threshold method. +Identifying the occurrence and position of these patterns makes the data actionable and enables higher-level --- i.e., that work at a higher level of abstraction \cite{tongaonkar2007inferring} --- security and monitoring policies. +For example, a computer starting mid-night or rebooting multiple times in a row should raise an alert for a possible intrusion or malfunction. + +Rule-based \gls{ids}s using side channel information require an accurate and practical pattern detection solution. +Many data-mining algorithms assume that training data is cheap, meaning that acquiring large --- labeled --- datasets is achievable without major expense. +Unfortunately, collecting labeled data requires following a procedure and induce downtime for the machine which can be expensive. +Collecting many training samples during normal operations of the machine is more time-consuming as the machine's activity cannot be controlled. +A single sample of each pattern to be detected in the time series is a more convenient data requirement. +Collecting a sample is immediately possible after the installation of the measurement equipment during normal operations of the machine. + +In this paper, we present \gls{mad}, a distance-based, one-shot pattern detection method for time series. +\gls{mad} focuses on providing pre-defined state detection from only one training sample per class. +This approach enables the analysis of side-channel information in contexts where the collection of large datasets is impractical. +A context selection algorithm lies at the core of \gls{mad} and yield stable classification of individual sample, important for the robustness of high-level security rules. +In experiments, \gls{mad} outperforms other approaches in accuracy and the Levenshtein distance on various simulated, lab-captured, and public times-series datasets. + +We will present the current related work on physics-based security and time series pattern detection in Section~\ref{sec:related}. +Then we will introduce the formal and practical definitions of our solution in Section~\ref{sec:statement} and~\ref{sec:solution}. +Finally, we will present the datasets considered in Section~\ref{sec:dataset} and the results in Section~\ref{sec:results} to finish with a discussion of the solution in Section~\ref{sec:discussion}. + +\section{Related Work}\label{sec:related} +Side-channel analysis focuses on extracting information from involuntary emissions of a system. +This topic traces back to the seminal work of Paul C. Kocher. +He introduced power side-channel analysis to extract secrets from several cryptographic protocols \cite{kocher1996timing}. +This led to the new field of side-channel analysis \cite{randolph2020power}. +However, the potential of leveraging side-channel information for defense and security purposes remains mostly untapped. +The information leakage through involuntary emissions through different channels provides insights into the activities of a machine. +Acoustic emissions \cite{belikovetsky2018digital}, heat pattern signature \cite{al2016forensics} or power consumption \cite{10.1145/3571288, gatlin2019detecting, CHOU2014400}, can --- among other side-channels --- reveal information about a machine's activity. +Side-channel information collection generally results in time series objects to analyze. + +There exists a variety of methods for analyzing time series. +For signature-based solutions, a specific extract of the data is compared to known-good references to assess the integrity of the host \cite{9934955, 9061783}. +This signature comparison enables the verification of expected and specific sections and requires that the sections of interest can be extracted and synchronized. +Another solution for detecting intrusions is the definition of security policies. +Security policies are sets of rules that describe wanted or unwanted behavior. +These rules are built on input data accessible to the \gls{ids} such as user activity \cite{ilgun1995state} or network traffic \cite{5563714, kumar2020integrated}. +However, the input data requirements must have to apply a rule. +This illustrates the gap between the side-channel analysis methods and the rule-based intrusion detection methods. +To apply security policies to side-channel information, it is necessary to first label the data. + +The problem of identifying pre-defined patterns in unlabeled time series is referenced under various names in the literature. +The terms \textit{activity segmentation} or \textit{activity detection} are the most relevant for the problem we are interested in. +The state of the art methods in this domain focus on human activities and leverage various sensors such as smartphones \cite{wannenburg2016physical}, cameras \cite{bodor2003vision} or wearable sensors \cite{uddin2018activity}. +These methods rely on large labeled datasets to train classification models and detect activities \cite{micucci2017unimib}. +For real-life applications, access to large labeled datasets may not be possible. +Another approach, more general than activity detection, uses \gls{cpd}. +\gls{cpd} is a sub-topic of time series analysis that focuses on detecting abrupt changes in a time series \cite{truong2020selective}. +It is assumed in many cases that these change points are representative of state transitions from the observed system. +However, \gls{cpd} is only the first step in state detection as classification of the detected segments remains necessary \cite{aminikhanghahi2017survey}. +Moreover, not all state transitions trigger abrupt changes in time series statistics, and some states include abrupt changes. +Overall, \gls{cpd} only fits a specific type of problem with stable states and abrupt transitions. +Neural networks raised in popularity for time series analysis with \gls{rnn}. +Large \gls{cnn} can perform pattern extraction in long time series, for example in the context of \gls{nilm} \cite{8598355}. +\gls{nilm} focuses on the problem of signal disaggregation. +In this problem, the signal comprises an aggregate of multiple signals, each with their own patterns \cite{angelis2022nilm}. +This problem shares many terms and core techniques as this paper but the nature of the input data makes \gls{nilm} a distinct area of research. + +The specific problem of classification with only one example of each class is called one-shot --- or few-shot --- classification. +This topic focuses on pre-extracted time series classification with few training samples, often using multi-level neural networks \cite{10.1145/3371158.3371162, 9647357}. +However, in the context of side-channel analysis, a time series contains many patterns that are not extracted. +Moreover, neural-based approaches lack interpretability, which can cause issues in the case of unforeseen time series patterns. +Simpler approaches with novelty detection capabilities are required when the output serves as input for rule-based processing. + +Finally, Duin et. al. investigate the problem of distance-based few-shot classification \cite{duin1997experiments}. +They present an approach based on the similarity between new objects and a dissimilarity matrix between items of the training set. +The similarities are evaluated with Nearest-Neighbor rules or \gls{svm}. +Their approach bears some interesting similarities with the one presented in this paper. +However, they evaluate their work on the recognition of handwritten numerals, which is far from the use case we are interested in. + + +\section{Problem Statement}\label{sec:statement} +%\gls{mad} focuses on detecting the state of a time series at any point in time. +We consider the problem from the point of view of multi-class, mono-label classification problem \cite{aly2005survey} for every sample in a time series. +The problem is multi-class because multiple states can occur in one-time series, and therefore any sample is assigned one of multiple states. +The problem is mono-label because only one state is assigned to each sample. +The classification is a mapping from the samples space to the states space. + +\begin{problem-statement}[\gls{mad}] +Given a discretized time series $t$ and a set of patterns $P=\{P_1,\dots, P_n\}$, identify a mapping $m:\mathbb{N}\longrightarrow P\cup \lambda$ such that every sample $t[i]$ +maps to a pattern in $P\cup \lambda$ with the condition that the sample matches an occurrence of the pattern in $t$. +\end{problem-statement} + +The time series $t: \mathbb{N} \longrightarrow \mathbb{R}$ is a finite, discretized, mono-variate, real-valued time series. +The patterns (also called training samples) $P_j \in P$ are of the same type as $t$. +Each pattern $P_j$ can take any length denoted $N_j$. +A sample $t[i]$ \textit{matches} a pattern $P_j \in P$ if there exists a substring of $t$, the length of $P_j$, that includes the sample, such that a similarity measure between this substring and $P_j$ is below a pre-defined threshold. +The pattern $\lambda$ is the \textit{unknown} pattern assigned to the samples in $t$ that do not match any of the patterns in $P$. + +\begin{figure} +\centering +\includegraphics[width=0.45\textwidth]{images/overview.pdf} +\caption{Illustration of the sample distance from one sample to each training example in a 2D space.} +\label{fig:overview} +\end{figure} + +\section{Proposed Solution: MAD}\label{sec:solution} +\gls{mad}'s core idea separates it from other traditional sliding window algorithm. +In \gls{mad}, the sample window around the sample to classify dynamically adapts for optimal context selection. +This principle influences the design of the detector and requires the definition of new distance metrics. +Because the patterns lengths may differ, our approach requires distance metrics that are robust to length variations. +%For the following explanation, the pattern set $P$ refers to the provided patterns only $\{P\setminus \lambda\}$ --- unless specified otherwise. +We first define the fundamental distance metric as the normalized Euclidean distance between two-time series $a$ and $b$ of the same length $N_a=N_b$ +\begin{equation} + nd(a,b) = \dfrac{EuclideanDist(a,b)}{N_a} +\end{equation} + +Using this normalized distance $nd$, we define the distance from a sample $t[i]$ to a pattern $P_j \in P$. +This is the sample distance $sd$ defined as +\begin{equation}\label{eq:sd} + sd(i,P_j) = \min_{k\in [i-N_j,i+N_j])}(nd(t[i-k:i+k],P_j)) +\end{equation} + +%with $P_j$ the training sample corresponding to the state $j$, and $t$ the complete time series. +Computing the distance $sd(i,P_j)$ requires to: (1) select every substring of $t$ of length $N_j$ that contains the sample $t[i]$, (2) evaluate their normalized distance to the pattern $P_j$, and (3) consider $sd(i,P_j)$ as the smallest of these distances. +For simplicity, Equation~\ref{eq:sd} omits the border conditions for the range of $k$. +When the sample position $i$ is less than $N_j$ or greater than $N_t-N_j$, the range adapts to only consider valid substrings. + +Our approach uses a threshold-based method to decide what label to assign to a sample. +For each sample in $t$, the algorithm compares the distance $sd(i,P_j)$ to the threshold $T_j$. +The sample receives the label $j$ associated with the pattern $P_j$ that results in the smallest distance $sd(i,P_j)$ with $sd(i,P_j)N_j$. +If $N_l