Git Product home page Git Product logo

enas-pdm's Introduction

ENAS-PdM

check ENAS-PdM is a custom Evolutionary Algorithm specifically designed to optimize a Deep Network architecture used to predict the Remaining Useful Life (RUL) for predictive maintenance (PdM). Based on our previous work, Multi-Head CNN-LSTM with Prediction Error Analysis for Remaining Useful Life Prediction, the goal of this study is to find the best multi-head Convolutional Neural Network with Long Short Term Memory (CNN-LSTM) architecture for the RUL prediction. For that, we use evolutionary search to explore the combinatorial parameter space of a multi-head CNN-LSTM as shown below figure.

Prerequisites

You can download the benchmark dataset used in our experiments, C-MAPSS from here. The files should be placed in /tmp folder. The ENAS-PdM library has the following dependencies:

pip install -r py_pkg_requirements.txt
  • pandas
  • numpy
  • scikit-learn
  • tqdm
  • tensorflow-gpu
  • deap
  • matplotlib

Descriptions

  • launcher.py: launcher for the experiments.
    • evolutionary_algorithm.py: implementations of evolutionary algorithms to evolve neural networks in the context of predictive mainteinance.
    • task.py: implementation of a Task, used to load the data and compute the fitness of an individual.
    • utils.py: generating the multi-head CNN-LSTM network & training the network.
      • network_training.py: class for network generation and training.
      • ts_preprocessing.py: class for preprocessing and data preparation.
      • ts_window.py: class for time series window application.
  • experiments.py: Evaluation of the discovered network by ENAS-PdM on unobserved data during EA & Training.

Run

Please launch ENAS-PdM by

python3 launcher.py

After each generation, the information of the best individual is displayed

50      11      11.5005 0.153568        11.2976 11.9282
pickle dump
log saved
Best individual:
[2, 4, 1, 13, 12]
Best individual is saved
37873.60605573654

References

H. Mo, F. Lucca, J. Malacarne and G. Iacca, 
Multi-Head CNN-LSTM with Prediction Error Analysis for Remaining Useful Life Prediction,
2020 27th Conference of Open Innovations Association (FRUCT), 
Trento, Italy, 2020, pp. 164-171, doi: 10.23919/FRUCT49677.2020.9211058.
H. Mo, L. Custode and G. Iacca, 
Evolutionary neural architecture search for remaining useful life prediction,
Applied Soft Computing, 
Volume 108, 2021, 107474,ISSN 1568-4946,
https://doi.org/10.1016/j.asoc.2021.107474.

Bibtex entry ready to be cited

@inproceedings{mo2020multi,
  title={Multi-head CNN-LSTM with prediction error analysis for remaining useful life prediction},
  author={Mo, Hyunho and Lucca, Federico and Malacarne, Jonni and Iacca, Giovanni},
  booktitle={2020 27th conference of open innovations association (FRUCT)},
  pages={164--171},
  year={2020},
  organization={IEEE}
}
@article{mo2021evolutionary,
  title={Evolutionary neural architecture search for remaining useful life prediction},
  author={Mo, Hyunho and Custode, Leonardo Lucio and Iacca, Giovanni},
  journal={Applied Soft Computing},
  volume={108},
  pages={107474},
  year={2021},
  publisher={Elsevier}
}

enas-pdm's People

Contributors

mohyunho avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.