Feedforward Neural Network (NN) model with difference-of-convex-functions (DC) structure.
Learn dynamical systems from data using feedforward Neural Network (NN) models with a special
difference-of-convex-functions (DC) structure. The so-called DC-NN model approximates the
system dynamics f(x, u) in DC form as follows: f = f1 - f2 where f1, f2 are convex functions with respect to (x,u).
The NN model structure is such that the functions f1, f2 are approximated independently by two
input-convex NN with their own sets of weights. The DC-NN model is leveraged in this example to predict the dynamics of the
coupled tank system.
- Python 3
- Keras
You need to install the following:
- numpy
- matplotlib
- tensorflow / keras
Run the following command to install all modules at once
pip3 install numpy matplotlib tensorflow
-
Clone the repository
git clone https://github.com/martindoff/DC-Deep-Neural-Network.git
-
Go to directory
cd DC-Deep-Neural-Network
-
Run the program
python3 DC_NN_model.py
- To load an existing model, set the
load
variable inDC_NN_model.py
toTrue
load = True
Set the variable to False
if the model has to be (re)trained.
Such model have applications, e.g. in the framework of robust tube MPC for systems representable as a difference of convex functions (see paper on DC-TMPC) The DC-NN model allows one to learn the dynamics of any sufficiently regular system in DC form and then apply the DC-TMPC algorithm.
Martin Doff-Sotta - [email protected]
Linkedin: https://www.linkedin.com/in/mdoffsotta/