From 27fe7e45236714af872f3624ccbf90782943f67c Mon Sep 17 00:00:00 2001 From: Anton Lydike Date: Sun, 28 Feb 2021 13:41:51 +0100 Subject: [PATCH] panik --- References.bib | 150 +++++++++++++++++++++++++++++++-- img/calibration_attributes.png | Bin 0 -> 91320 bytes kalman-filter | 45 ++++++++++ paper.tex | 109 +++++++++++++++--------- todo.md | 36 ++++---- 5 files changed, 275 insertions(+), 65 deletions(-) create mode 100644 img/calibration_attributes.png create mode 100644 kalman-filter diff --git a/References.bib b/References.bib index 3da5f3e..26e5b00 100644 --- a/References.bib +++ b/References.bib @@ -1,11 +1,13 @@ @article{chandola2009, - author = {Chandola V. and Banerjee A. and Kumar V.}, - title = {Anomaly Detection: A Survey}, - journal = {ACM Comput. Surv.}, - pages = {1-58}, - number = {41(3)}, - year = {2009}, - doi = {10.1145/1541880.1541882} + title={Anomaly detection: A survey}, + author={Chandola, Varun and Banerjee, Arindam and Kumar, Vipin}, + journal={ACM computing surveys (CSUR)}, + volume={41}, + number={3}, + pages={1--58}, + year={2009}, + doi = {10.1145/1541880.1541882}, + publisher={ACM New York, NY, USA} } @article{bosman2017, author = {Hedde HWJ Bosman and Giovanni Iacca and Arturo Tejada and Heinrich J Wörtche and Antonio Liotta}, @@ -133,4 +135,136 @@ number = {213}, year = {2020}, pages = {1-39} -} \ No newline at end of file +} +@inproceedings{rajasegarar2007, + title={Quarter sphere based distributed anomaly detection in wireless sensor networks}, + author={Rajasegarar, Sutharshan and Leckie, Christopher and Palaniswami, Marimuthu and Bezdek, James C}, + booktitle={2007 IEEE International Conference on Communications}, + pages={3864--3869}, + year={2007}, + organization={IEEE} +} +@inproceedings{moshtaghi2011, + title={Incremental elliptical boundary estimation for anomaly detection in wireless sensor networks}, + author={Moshtaghi, Masud and Leckie, Christopher and Karunasekera, Shanika and Bezdek, James C and Rajasegarar, Sutharshan and Palaniswami, Marimuthu}, + booktitle={2011 IEEE 11th international conference on data mining}, + pages={467--476}, + year={2011}, + organization={IEEE} +} + + +% drift +@article{ni2009, + title={Sensor network data fault types}, + author={Ni, Kevin and Ramanathan, Nithya and Chehade, Mohamed Nabil Hajj and Balzano, Laura and Nair, Sheela and Zahedi, Sadaf and Kohler, Eddie and Pottie, Greg and Hansen, Mark and Srivastava, Mani}, + journal={ACM Transactions on Sensor Networks (TOSN)}, + volume={5}, + number={3}, + pages={1--29}, + year={2009}, + publisher={ACM New York, NY, USA} +} +@article{wu2019, + title={Drift Calibration Using Constrained Extreme Learning Machine and Kalman Filter in Clustered Wireless Sensor Networks}, + author={Wu, Jiawen and Li, Guanghui}, + journal={IEEE Access}, + volume={8}, + pages={13078--13085}, + year={2019}, + publisher={IEEE} +} +@article{barcelo2019, + title={Self-calibration methods for uncontrolled environments in sensor networks: A reference survey}, + author={Barcelo-Ordinas, Jose M and Doudou, Messaoud and Garcia-Vidal, Jorge and Badache, Nadjib}, + journal={Ad Hoc Networks}, + volume={88}, + pages={142--159}, + year={2019}, + publisher={Elsevier} +} +@article{dehkordi2020, + title={A survey on data aggregation techniques in IoT sensor networks}, + author={Dehkordi, Soroush Abbasian and Farajzadeh, Kamran and Rezazadeh, Javad and Farahbakhsh, Reza and Sandrasegaran, Kumbesan and Dehkordi, Masih Abbasian}, + journal={Wireless Networks}, + volume={26}, + number={2}, + pages={1243--1263}, + year={2020}, + publisher={Springer} +} +@article{wang2016, + title={Blind drift calibration of sensor networks using sparse Bayesian learning}, + author={Wang, Yuzhi and Yang, Anqi and Li, Zhan and Chen, Xiaoming and Wang, Pengjun and Yang, Huazhong}, + journal={IEEE Sensors Journal}, + volume={16}, + number={16}, + pages={6249--6260}, + year={2016}, + publisher={IEEE} +} +@inproceedings{buonadonna2005, + title={TASK: Sensor network in a box}, + author={Buonadonna, Philip and Gay, David and Hellerstein, Joseph M and Hong, Wei and Madden, Samuel}, + booktitle={Proceeedings of the Second European Workshop on Wireless Sensor Networks, 2005.}, + pages={133--144}, + year={2005}, + organization={IEEE} +} +% noise +@inproceedings{elnahrawy2003, + title={Cleaning and querying noisy sensors}, + author={Elnahrawy, Eiman and Nath, Badri}, + booktitle={Proceedings of the 2nd ACM international conference on Wireless sensor networks and applications}, + pages={78--87}, + year={2003} +} +@article{stankovic2018, + title={On consensus-based distributed blind calibration of sensor networks}, + author={Stankovi{\'c}, Milo{\v{s}} S and Stankovi{\'c}, Srdjan S and Johansson, Karl Henrik and Beko, Marko and Camarinha-Matos, Luis M}, + journal={Sensors}, + volume={18}, + number={11}, + pages={4027}, + year={2018}, + publisher={Multidisciplinary Digital Publishing Institute} +} +@inproceedings{kumar2013, + title={Automatic sensor drift detection and correction using spatial kriging and kalman filtering}, + author={Kumar, Dheeraj and Rajasegarar, Sutharshan and Palaniswami, Marimuthu}, + booktitle={2013 IEEE International Conference on Distributed Computing in Sensor Systems}, + pages={183--190}, + year={2013}, + organization={IEEE} +} +@inproceedings{barcelo2018, + title={Calibrating low-cost air quality sensors using multiple arrays of sensors}, + author={Barcelo-Ordinas, Jose M and Garcia-Vidal, Jorge and Doudou, Messaoud and Rodrigo-Mu{\~n}oz, Santiago and Cerezo-Llavero, Albert}, + booktitle={2018 IEEE Wireless Communications and Networking Conference (WCNC)}, + pages={1--6}, + year={2018}, + organization={IEEE} +} +@article{ramanathan2006, + title={Rapid deployment with confidence: Calibration and fault detection in environmental sensor networks}, + author={Ramanathan, Nithya and Balzano, Laura and Burt, Marci and Estrin, Deborah and Harmon, Tom and Harvey, Charlie and Jay, Jenny and Kohler, Eddie and Rothenberg, Sarah and Srivastava, Mani}, + year={2006} +} +@inproceedings{hasenfratz2012, + title={On-the-fly calibration of low-cost gas sensors}, + author={Hasenfratz, David and Saukh, Olga and Thiele, Lothar}, + booktitle={European Conference on Wireless Sensor Networks}, + pages={228--244}, + year={2012}, + organization={Springer} +} +@article{maag2017, + title={SCAN: Multi-hop calibration for mobile sensor arrays}, + author={Maag, Balz and Zhou, Zimu and Saukh, Olga and Thiele, Lothar}, + journal={Proceedings of the ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies}, + volume={1}, + number={2}, + pages={1--21}, + year={2017}, + publisher={ACM New York, NY, USA} +} diff --git a/img/calibration_attributes.png b/img/calibration_attributes.png new file mode 100644 index 0000000000000000000000000000000000000000..2399a6a36d1b865dce0dd387b95bda925ddb57b9 GIT binary patch literal 91320 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 $qWo=St#jW*UVR&bt$5nE!mea#5|+ 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

M%#h3EZwgJHXn35sf|jJ0g{I)3Z$r=(fyx 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 C`2MW` literal 0 HcmV?d00001 diff --git a/kalman-filter b/kalman-filter new file mode 100644 index 0000000..89c93d1 --- /dev/null +++ b/kalman-filter @@ -0,0 +1,45 @@ +The root problem of drift detection and correction is predicting sensor measurements. This can usually be accomplished in two ways: + + +This usually requires one or more time series of data and an algorithm which consumes these time series and produces a prediction for the value a sensor should measure next. The most commonly used model for this by far is called \emph{Kalman filtering}, which consists of two phases: + + +Given the previous state of knowledge at step $k-1$ (estimated system state and uncertainty), we calculate a prediction for the next system state and uncertainty. This is the prediction phase. We then observe a new (possibly skewed) measurement and compute our prediction of the actual current state and uncertainty (update phase). This algorithm is recursive in nature and can be calculated with limited hardware in real-time. + +Kalman filters are based on a linear dynamical system on a discrete time domain. It represents the system state as vectors and matrices of real numbers. In order to use Kalman filters, the observed process must be modeled in a specific structure: + +\begin{itemize} + \item $F_k$, the state transition model for the $k$-th step + \item $H_k$, the observation model for the $k$-th step + \item $Q_k$, the covariance of the process noise + \item $R_k$, the covariance of the observation noise + \item Sometimes a control input model $B_k$ +\end{itemize} + +These models must predict the true state $x$ and an observation $z$ in the $k$-th step according to: + +\begin{align*} + x_k &= F_kx_{k-1} + B_ku_k + w_k \\ + z_k &= H_kx_k+v_k +\end{align*} + +Where $w_k$ and $v_k$ is noise conforming to a zero mean multivariate normal distribution $\mathcal{N}$ with covariance $Q_k$ and $R_k$ respectively ($w_k \sim \mathcal{N}(0,Q_k)$ and $z_k \sim \mathcal{N}(0,R_k) $). + +The Kalman filter state is represented by two variables $\hat{x}_{k|j}$ and $P_{k|j}$ which are the state estimate and covariance at step $k$ given observations up to and including $j$. + +When entering step $k$, we can now define the two phases. \textbf{Prediction phase:} +\begin{align*} + \hat{x}_{k|k-1} &= F_k \hat{x}_{k-1|k-1}+B_ku_k \\ + P_{k|k-1} &= F_kP_{k-1|k-1} F_k^\intercal+Q_k +\end{align*} +Where we predict the next state and calculate our confidence in that prediction. If we are now given our measurement $z_k$, we enter the next phase. \textbf{Update phase:} + +\begin{align*} + \tilde{y}_k &= z_k - H_k\hat{x}_{k|k-1} & \text{Innovation (forecast residual)} \\ + S_k &= H_kP_{k|k-1} H_k^\intercal+R_k & \text{Innovation variance} \\ + K_k &= P_{k|k-1}H_k^\intercal S_k^{-1} & \text{Optimal Kalman gain} \\ + \hat{x}_{k|k} &= \hat{x}_{k|k-1} + K_k\tilde{y}_k & \text{State estimate} \\ + P_{k|k} &= (I-K_kH_k)P_{k|k-1} & \text{Covariance estimate} +\end{align*} + +After the update phase, we obtain $\hat{x}_{k|k}$, which is our best approximation of our real state. diff --git a/paper.tex b/paper.tex index e2995b4..406cc77 100644 --- a/paper.tex +++ b/paper.tex @@ -30,45 +30,72 @@ The context of WSN introduces a lot of interesting new challenges, as nodes are often small devices running on battery power and cannot be do much computation on their own. Furthermore, in WSNs communication is often not perfect and messages can and will get lost during operation. Any protocols that incur additional communication must have a good justification, as communication is expensive. All these factors create a unique environment, in which not many existing solutions to the problem are applicable. In this paper, we will not discuss anomaly detection in hostile environments, or intrusion detection, but rather focus solely on anomaly detection in sensor data collected by the WSN. - - - % - no intrusion detection - % - grobe übersicht - % - begriffe klären - % - methoden aufzählen (ca 5 bereiche) - % - aufteilen nach methoden - % - weitere sources - % - ergebnisse kurz vorstellen \end{abstract} -\keywords{Wireless Sensor Networks, Anomaly detection, Outlier detection, Centralized anomaly detection, Distributed anomaly detection} +\keywords{Wireless Sensor Networks, Anomaly detection, Outlier detection, Sensor calibration, Drift detection} \maketitle \section{Overview} -There are many different approaches to anomaly detection, we will differentiate between centralized and decentralized approaches. An approach is considered centralized, when a large chunk of the computation is done at a single point, or at a later stage during analysis. A decentralized approach implies that a considerable amount of processing is done on the individual nodes, doing analysis on the fly. When analysis is done centralized, it is important to differentiate between online and offline detection. Online detection can run while the WSN is operating, while offline detection is done after the data is collected. Offline detection methods can often be modified to work online, but will require an existing dataset. +There are many different approaches to anomaly detection, we will differentiate between centralized and decentralized approaches. An approach is considered centralized, when a large chunk of the computation is done at a single point, or at a later stage during analysis. A decentralized approach implies that a considerable amount of processing is done on the individual nodes, doing analysis on the fly. When analysis is done centralized, it is important to differentiate between online and offline detection. Online detection can run while the WSN is operating, while offline detection is done after the data is collected. Online detection often reduces mission duration due to increased power consumption, but can have the opposite effect, if it can be used to eliminate a large amount of communication. \subsection{Anomaly types} -Furthermore we need to clarify the different kinds of anomalies that can occur in WSN datasets: +Furthermore we need to clarify the different kinds of anomalies that can occur in WSN data sets. Bosman et al. \cite{bosman2017} proposes four different kinds of anomalies that occur in WSN: \begin{itemize} - \item \emph{Spikes} are short changes with a large amplitude - \item \emph{Noise} is an increase of variance over time + \item \emph{Spikes or outliers} are short changes with a large amplitude + \item \emph{Noise} is (an increase of) variance over time \item \emph{Drift} is an offset which increases over time + \item \emph{Constant} is a constant offset +\end{itemize} + +No method can account for all four types of anomalies at once. Therefore we will look into sensor self-calibration, which removes drift and constant anomalies, followed by outlier detection to detect spikes. Working with noisy data is a problem in WSN, but we will not focus on methods of cleaning noisy data, as it is not in the scope of this survey. Elnahrawy et al. \cite{elnahrawy2003} and Barcelo et al. \cite{barcelo2019} are a great places to start, if you are interested in this topic. + +A fifth anomaly type, \emph{sensor failure}, is commonly added to anomaly detection \cite{rajasegarar2008,chandola2009}. Since sensor failure often manifests in these four different ways mentioned above, and we are not interested in sensor fault prediction, detection and management here, faulty sensors will not be discussed further. + +\section{Sensor drift and self-calibration} +Advancements in energy storage density, processing power and sensor availability have increased the possible mission time of many WSN. This increase in mission time, together with an increase in node count due to reduced part cost \cite{wang2016}, as well as the introduction of the Internet of Things (IoT) have brought forth new problems in sensor calibration and drift detection \cite{dehkordi2020}. Increasing the amount of collected data and the length of time over which it is collected introduces a need for better quality control of the sensors that data came from. Ni et al. \cite{ni2009} noticed drift as high as 200\% in soil CO$_2$ sensors, while Buonadonna et al. \cite{buonadonna2005} noticed that his light sensors (which were calibrated to the manufacturer's specification) were performing very poorly when measured against laboratory equipment. It is out of these circumstances, that the need arises for better and more frequent sensor calibration. + +\begin{figure*}[ht] + \includegraphics[width=\textwidth]{img/calibration_attributes.png} + \caption{Categories of calibration approaches, from Barcelo-Ordinas et al. \cite{barcelo2019}} + \label{fig:calcats} +\end{figure*} + + +The field of self-calibration in WSN quite broad, in order to get an overview over all approaches Barcelo-Ordinas et al. \cite{barcelo2019} categorized each approach by seven different attributes (Figure \ref{fig:calcats}): +\begin{itemize} + \item \emph{Area of interest} distinguishes between \emph{micro} (calibrating sensors to minimize error to a single data point), and \emph{macro} (calibrating nodes to minimize error over a given area of nodes). + \item \emph{Number of sensors} determines if data from other sensors is used, so called \emph{sensor fusion}, or if is done with just a \emph{single sensor}. + \item \emph{Ground truth} specifies, if the calibration is done in relation to a known good sensor \emph{non-blind}, or without one \emph{blind}. If both calibrated and uncalibrated sensors are used, the approach is considered \emph{semi-blind}. + \item \emph{Position from reference} is the distance between the calibration target and the point where the reference data is collected. If data from the close neighborhood is used, the approach is considered \emph{collocated}. If instead nodes are calibrated hop-by-hop in an iterative fashion, it is called \emph{multi-hop}. In \emph{model-based} calibration, fixed ground truth sensors are used in combination with a model to predict sensor error. + \item \emph{Calibration time} distinguishes between \emph{pre/post-\break deployment calibration}, \emph{periodic} (calibration at given intervals) and \emph{opportunistic} (when nodes in a mobile network come into range of a calibration source). + \item \emph{Operation mode} is either \emph{offline} (calibration when the node is not used) and \emph{online} (calibration during normal operation). + \item \emph{Processing mode} divides the approaches into \emph{centralized} processing, meaining calibration parameters are calculated by a central node and then distributed over the network, and \emph{decentralized}, where a single node, or collection of nodes collaborate to calculate their calibration parameters. \end{itemize} -Not all methods can detect all three types of anomalies equally, therefore we will note down if this was accounted for in each method and how good the detection was, for each given type. +This level of specialization requires it's own survey, which most recently was Barcelo-Ordinas et al. \cite{barcelo2019}. He categorizes 39 approaches into these attributes and discusses them in-depth. We will instead just look at some central problems and ideas to these approaches in detail: +\subsection{Problems in blind self-calibration approaches} +The central problem in self-calibration is predicting the error of a given sensor. Since this is such a broad problem, many different solutions exist. +Kumar et al. \cite{kumar2013} proposes a solution that uses no ground-truth sensors and can be used online in a distributed fashion. It uses spatial Kriging (gaussian interpolation) and Kalman filtering (a linear approximation model accounting for noise) on neighborhood data in order to reduce noise and remove drift. This solution suffers from accumulative error due to a missing ground truth, as the system has no point of reference or general model to rely on. The uncertainty of the model, and thereby the accumulative error can be reduced by increasing the number of sensors which are used. A common method for gaining more measurements is increasing network density \cite{wang2016}, or switching from a single-sensor approach to sensor fusion. barcelo-Ordinas et al. \cite{barcelo2018} explores the possibility of adding multiple copies of the same kind of sensor to each node. -\section{Centralized approaches} +\subsection{Non-blind self-calibration techniques} +Non-blind, also known as reference-based calibration approached rely on known-good reference information. They often rely on data from much more expensive sensors, which often come with restrictions on their use. One type of non-blind calibration is done in a laboratory setting (see\cite{ramanathan2006}), a known-good sensor is used with in a controllable environment. Other approaches can calibrate instantly with a calibrated sensor nearby \cite{hasenfratz2012}, enabling calibration of multiple nodes in quick succession. + +Maag et al. \cite{maag2017} proposes a hybrid solution, where calibrated sensor arrays can be used to calibrate other non-calibrated arrays in a local network of air pollution sensors over multiple hops with minimal accumulative errors. They show 16-60\% lower error rates than other approaches currently in use. + + + +\section{Outlier detection - Centralized model-based approaches} When we speak of a centralized WSN, we mean, that there exists a central entity, called the \emph{base station}, where all data is delivered to. In our analysis, it is often assumed, that the base station does not have limits on its processing power. The base station will summarize the received data until it has a complete set and can then use this set to determine global outliers and other anomalies such as clock drift over the course of the whole operation, as it has a complete history for each given node. A centralized approach is not optimal in hostile environments, but that is not our focus here. Since this environment is closely related to the general field of anomaly detection, we will not go into much detail on these solution, instead focusing on covering just the basics. \subsection{Statistical analysis} Classical Statistical analysis is done by creating a model of the expected data and then finding the probability for each recorded data point. Improbable data points are then deemed outliers. The problem for many statistical approaches is finding this model of the expected data, as it's not always feasible to create it in advance. It also bears the problem of bad models or slow changes in the environment \cite{mcdonald2013}. -Sheng et al. \cite{sheng2007} proposes a rather naive approach, where histograms of each node are polled, combined, and then analyzed for outliers by looking at the maximum distance a data point can be away from his nearest neighbors. This solution has several problems, as it incurs a considerable communication overhead and fails to account for non gaussian distribution. It also requires choosing new parameters every time the expected data changes suddenly. +Sheng et al. \cite{sheng2007} proposes a new approach, where histograms of each node are polled, combined, and then analyzed for outliers by looking at the maximum distance a data point can be away from his nearest neighbors. This solution has several problems, as it incurs a considerable communication overhead and fails to account for non gaussian distribution. Since the this approach uses fixed parameters, it also requires updating them every time the expected data changes. Böhm et al. \cite{böhm2008} proposes a solution not only to non gaussian distributions, but also to noisy data. He defines a general probability distribution function (PDF) with an exponential distribution function (EDF) as a basis, which is better suited to fitting around non gaussian data as seen in figure \ref{fig:probdistböhm}. He then outlines an algorithm where the data is split into clusters, for each cluster an EDF is fitted and outliers are discarded. @@ -78,7 +105,7 @@ Böhm et al. \cite{böhm2008} proposes a solution not only to non gaussian distr \label{fig:probdistböhm} \end{figure} -While there are many statistical methods for outlier detection, most follow a similar approach to at least one of the two methods shown here. Most of these are generally not as useful for online detection. +While there are many statistical methods for outlier detection, most follow a similar approach to at least one of the two methods shown here. Most of these are generally not as useful for online detection, as they require \subsection{Density based analysis} Outliers can be selected by looking at the density of points as well. Breuning et al. \cite{breuning2000} proposes a method of calculating a local outlier factor (LOF) of each point based on the local density of its $n$ nearest neighbors. The problem lies in selecting good values for $n$. If $n$ is too small, clusters of outliers might not be detected, while a large $n$ might mark points as outliers, even if they are in a large cluster of $