Skip to content

Commit 9611b9d

Browse files
committed
updated references and problem description in paper.md
1 parent e76bf3d commit 9611b9d

File tree

2 files changed

+45
-10
lines changed

2 files changed

+45
-10
lines changed

docs/JOSS/paper.bib

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,33 @@
1+
@article{ko1995exact,
2+
title={An exact algorithm for maximum entropy sampling},
3+
author={Ko, Chun-Wa and Lee, Jon and Queyranne, Maurice},
4+
journal={Operations Research},
5+
volume={43},
6+
number={4},
7+
pages={684--691},
8+
year={1995},
9+
publisher={INFORMS}
10+
}
11+
12+
@inproceedings{narayanan2020toolkit,
13+
title={A toolkit for spatial interpolation and sensor placement},
14+
author={Narayanan, S Deepak and Patel, Zeel B and Agnihotri, Apoorv and Batra, Nipun},
15+
booktitle={Proceedings of the 18th Conference on Embedded Networked Sensor Systems},
16+
pages={653--654},
17+
year={2020}
18+
}
19+
20+
@article{manohar2019optimized,
21+
title={Optimized sampling for multiscale dynamics},
22+
author={Manohar, Krithika and Kaiser, Eurika and Brunton, Steven L and Kutz, J Nathan},
23+
journal={Multiscale Modeling \& Simulation},
24+
volume={17},
25+
number={1},
26+
pages={117--136},
27+
year={2019},
28+
publisher={SIAM}
29+
}
30+
131
@article{clark2018greedy,
232
title={Greedy sensor placement with cost constraints},
333
author={Clark, Emily and Askham, Travis and Brunton, Steven L and Kutz, J Nathan},

docs/JOSS/paper.md

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ bibliography: paper.bib
3535
Successful predictive modeling and control of engineering and natural processes is often entirely determined by *in situ* measurements and feedback from sensors [@Brunton2019book].
3636
However, deploying sensors into complex environments, including in application areas such as manufacturing [@Manohar2018jms], geophysical environments [@Yildirim:2009], and biological processes [@colvert2017local;@Mohren2018pnas], is often expensive and challenging.
3737
Furthermore, modeling outcomes are extremely sensitive to the location and number of these sensors, motivating optimization strategies for the principled placement of sensors for different decision-making tasks.
38-
In general, choosing the globally optimal placement within the search space of a large-scale complex system is an intractable computation, in which the number of possible placements grows exponentially with the number of candidates.
38+
In general, choosing the globally optimal placement within the search space of a large-scale complex system is an intractable computation, in which the number of possible placements grows combinatorially with the number of candidates [@ko1995exact].
3939
While sensor placement has traditionally been guided by expert knowledge and first principles models, increases in system complexity, emerging sensor technologies, and innovations in data-driven modeling strategies motivates automated algorithms for optimizing sensor placements.
4040

4141
`PySensors` is a Python package for the scalable optimization of sensor placement from data. In particular, `PySensors` provides tools for sparse sensor placement optimization approaches that employ data-driven dimensionality reduction [@brunton2016sparse;@manohar2018data]. This approach results in near-optimal placements for various decision-making tasks and can be readily customized using different optimization algorithms and objective functions.
@@ -46,14 +46,19 @@ At the same time, modular classes leave flexibility for users to experiment with
4646
Users of `scikit-learn` will find `PySensors` objects familiar, intuitive, and compatible with existing `scikit-learn` routines such as cross-validation [@scikit-learn].
4747

4848
# Statement of need
49-
Maximizing the impact of sensor placement algorithms requires tools to make them accessible to scientists and engineers across various domains and at various levels of mathematical expertise and sophistication.
50-
The only other package in this domain of which we are aware is `Chama` [@klise2017sensor]. While both `Chama` and `PySensors` enable sparse sensor placement optimization, `Chama` is geared towards detection whereas `PySensors` is aimed at reconstruction and classification tasks.
51-
As such, there are marked differences in the objective functions optimized by the two packages.
49+
Maximizing the impact of sensor placement algorithms requires tools to make them accessible to scientists and engineers across various domains and at various levels of mathematical expertise and sophistication. `PySensors` unifies the algorithms developed in the papers [@manohar2018data;@clark2018greedy;@brunton2016sparse] and their accompanying codes `SSPOR_pub` and `SSPOC_pub` into one software package. The only other packages in this domain of which we are aware are `Chama` [@klise2017sensor] and `Polire` [@narayanan2020toolkit]. While these packages and `PySensors` all enable sparse sensor placement optimization, `Chama` and `Polire` are geared towards detection and Gaussian process models respectively, whereas `PySensors` is aimed at reconstruction and classification tasks.
50+
As such, there are marked differences in the objective functions optimized by `PySensors` and its precursors.
5251

5352
Reconstruction and classification tasks often arise in the modeling, prediction, and control of complex processes in geophysics, fluid dynamics, biology, and manufacturing.
54-
The goal of reconstruction is to estimate high-dimensional signals $\mathbf{x}$ (bold symbols denote vectors) from linear measurements stored in a vector $\mathbf{y} = \mathbf{Cx}$. Each measurement $y_i = \mathbf{c}_i^\top \mathbf{x}$ results from the action of available sensors $\mathbf{c}_i$, which are collected in the measurement operator $\mathbf{C}$.
55-
Sensor placement optimization seeks the subset of available sensors that minimizes reconstruction error in the objective function
56-
$J(\mathbf{C})= \|\mathbf{x} - \mathbf{P}(\mathbf{C}, \mathbf{\Phi}) \mathbf{y}\|^2$, where $\mathbf{P}(\mathbf{C},\mathbf{\Phi})$ is the reconstruction map and $\mathbf{\Phi}$ is a dimensionality reducing transformation. `PySensors` exploits dimensionality reduction techniques such as principal component analysis and random projections to build the reconstruction map, and reduces sensor placement optimization to a matrix pivoting algorithm. Sensor placement for classification uses a similar objective function based on reconstructing decision boundaries between classes in a lower-dimensional space.
53+
The goal of reconstruction is to recover a high-dimensional signal $\mathbf{x}\in\mathbb{R}^N$ from a limited number of $p$ measurements $\mathbf{y}_ i = \mathbf{c}_ i^T \mathbf{x}$, where each $\mathbf{c}_ i$ represents the action of a sensor. `PySensors` optimizes a set of $p$ sensors out of $N$ candidate $\mathbf{c}_ i^T$ (rows of a measurement matrix $\mathbf{C}:\mathbf{y} = \mathbf{Cx}$) that minimize reconstruction error in a data-dependent basis $\mathbf{\Phi}\in\mathbb{R}^{N\times r}$
54+
$$ \mathbf{C}_ \star= \underset{\mathbf{C}\in\mathbb{R}^{p\times N}}{\arg\min} \|\mathbf{x} - \mathbf{\Phi}(\mathbf{C\Phi})^{\dagger} \mathbf{y}\|_ 2^2, $$
55+
where $\dagger$ denotes the Moore-Penrose pseudoinverse. The key innovation is that the reconstruction map $\mathbf{\Phi}(\mathbf{C\Phi})^{\dagger}$ first recovers the low-dimensional representation $\mathbf{x}_ r: \mathbf{x} = \mathbf{\Phi x}_ r$, ultimately reducing sensor placement to a matrix pivoting operation [@manohar2018data]. The basis $\mathbf{\Phi}$ is explicitly computed from the data using powerful dimensionality reduction techniques: principal components analysis (PCA) and random projections. PCA extracts the dominant spatial correlations or _principal components_, which are the leading eigenvectors of the data covariance matrix. It is computed using the matrix singular value decomposition (SVD) and is closely related to proper orthogonal decompostion; POD modes and principal components are equivalent.
56+
Other basis choices are possible, such as dynamic mode decomposition for extracting temporally correlated features [@manohar2019optimized].
57+
Similarly, sensor placement for classification [@brunton2016sparse] optimizes the sparsest vector $\mathbf{s}_ \star$ that reconstructs interclass decision boundaries $\mathbf{w}: \mathbf{\Phi}^T\mathbf{s} = \mathbf{w}$ in the low-dimensional feature space.
58+
In this case, the optimal sensor locations are determined by the nonzero components of $\mathbf{s}_ \star$.
59+
60+
61+
5762

5863

5964
# Features
@@ -68,9 +73,9 @@ The algorithm is related to compressed sensing optimization [@Candes2006cpam;@Do
6873
This SSPOC implementation is fully general in the sense that it can be used in conjunction with any linear classifier.
6974
Additionally, `PySensors` provides methods to enable straightforward exploration of the impacts of primary hyperparameters like the number of sensors or basis modes.
7075

71-
It is well known [@manohar2018data] that the basis in which one represents measurement data can have a pronounced effect on the sensors that are selected and the quality of the reconstruction.
72-
Users can readily switch between different bases typically employed for sparse sensor selection, including principal component analysis (PCA) modes and random projections.
73-
Because `PySensors` was built with `scikit-learn` compatibility in mind, it is easy to use cross-validation to select among possible choices of bases, basis modes, and other hyper-parameters.
76+
It is well known [@manohar2018data] that the basis in which one represents measurement data can have a pronounced effect on the sensors that are selected and the quality of the reconstruction.
77+
Users can readily switch between different bases typically employed for sparse sensor selection, including POD modes and random projections.
78+
Because `PySensors` was built with `scikit-learn` compatibility in mind, it is easy to use cross-validation to select among possible choices of bases, basis modes, and other hyperparameters.
7479

7580
Finally, included with `PySensors` is a large suite of examples, implemented as Jupyter notebooks.
7681
Some of the examples are written in a tutorial format and introduce new users to the objects, methods, and syntax of the package.

0 commit comments

Comments
 (0)