You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# Transfer functions and deep learning with dynoNet : new applications in system
2
+
identification
3
+
4
+
5
+
This repository contains the Python code to reproduce the results of the paper "Transfer functions and deep learning with dynoNet : new applications in system
6
+
identification" by Marco Forgione and Dario Piga.
7
+
8
+
We describe the linear dynamical operator as a differentiable layer compatible with back-propagation-based training.
9
+
The operator is parametrized as a rational transfer function and thus can represent an infinite impulse response (IIR)
10
+
filtering operation, as opposed to the Convolutional layer of 1D-CNNs that is equivalent to finite impulse response (FIR) filtering.
11
+
12
+
In the dynoNet architecture (already introduced [here](https://github.com/forgi86/dynonet)), linear dynamical operators are combined with static (i.e., memoryless) non-linearities which can be either elementary
13
+
activation functions applied channel-wise; fully connected feed-forward neural networks; or other differentiable operators.
14
+
15
+
In this work, we show how to non-standard learning problems may be tackled using the differentiable
16
+
transfer function block, namely:
17
+
18
+
* Learning with quantized measurements
19
+
* Learning in the presence of colored noise
20
+
21
+
# Folders:
22
+
*[torchid](torchid_nb): PyTorch implementation of the linear dynamical operator (aka G-block in the paper) used in dynoNet
23
+
*[examples](examples): examples using dynoNet for system identification
24
+
*[util](util): definition of metrics R-square, RMSE, fit index
25
+
26
+
Two [examples](examples) discussed in the paper are:
27
+
28
+
*[Parallel Wiener-Hammerstein](examples/ParWH): A circuit with Wiener-Hammerstein behavior. Experimental dataset from http://www.nonlinearbenchmark.org
29
+
*[BW](examples/BW): Bouc-Wen. A nonlinear dynamical system describing hysteretic effects in mechanical engineering. Experimental dataset from http://www.nonlinearbenchmark.org
30
+
31
+
32
+
For the [WH2009](examples/WH2009) example, the main scripts are:
33
+
34
+
*``WH2009_train.py``: Training of the dynoNet model
35
+
*``WH2009_test.py``: Evaluation of the dynoNet model on the test dataset, computation of metrics.
36
+
37
+
Similar scripts are provided for the other examples.
38
+
39
+
NOTE: the original data sets are not included in this project. They have to be manually downloaded from
40
+
http://www.nonlinearbenchmark.org and copied in the data sub-folder of the example.
41
+
# Software requirements:
42
+
Simulations were performed on a Python 3.7 conda environment with
43
+
44
+
* numpy
45
+
* scipy
46
+
* matplotlib
47
+
* pandas
48
+
* pytorch (version 1.4)
49
+
50
+
These dependencies may be installed through the commands:
0 commit comments