Machine Learning engineer on health data timeseries and ReservoirPy library extension

September 20, 2022
Offerd Salary:Negotiation
Working address:N/A
Contract Type:Other
Working Time:Negotigation
Working type:N/A
Job Ref.:N/A

2022-05343 - Machine Learning engineer on health data timeseries and ReservoirPy library extension

Contract type : Fixed-term contract

Level of qualifications required : Graduate degree or equivalent

Fonction : Temporary scientific engineer

Level of experience : Up to 3 years


Reservoir computing is an established method that was shown to outperform other methods on difficult tasks (such as chaotic time series prediction 3, 5) and has been used in a variety of domains since 4. However, despite its low computational cost and the need for less training data compared to LSTMs 2 it is currently underestimated due to current deep learning trend. However, a new python library called ReservoirPy 1 was recently developed, which enables to easily develop complex models 6 and already implement several advanced features from the literature.

This position takes place into a collaborative PHDS Bordeaux Network of teams working in statistical, machine learning and health data. The engineer is expected to work on a subset of the five research topics of the network: o Translate complex, noisy, incomplete and high dimensional observations into mechanistic models o Develop causal inference techniques for the complex dynamic settings encountered in epidemiological cohorts o Improve individual predictions of health outcomes using statistical modelling and learning o Unravel complex data structures using clustering methods o Develop machine learning techniques for complex health data

ReservoirPy is a simple user-friendly library based on Python scientific modules. It provides a flexible interface to implement efficient Reservoir Computing (RC) 4 architectures with a particular focus on Echo State Networks (ESN) 3. Advanced features of ReservoirPy allow to improve computation time efficiency on a simple laptop compared to basic Python implementation. Some of its features are: offline and online training, parallel implementation, sparse matrix computation, fast spectral initialization, advanced learning rules (e.g. Intrinsic Plasticity) etc. It also makes possible to easily create complex architectures with multiple reservoirs (e.g. deep reservoirs), readouts, and complex feedback loops. Moreover, graphical tools are included to easily explore hyperparameters with the help of the hyperopt library. It includes several tutorials exploring exotic architectures and examples of scientific papers reproduction.

Github: https: // Documentation: https: // Related projects: https: //

1 Trouvain N, Pedrelli L, Dinh TT, Hinaut X (2020). Reservoirpy: an efficient and user-friendly library to design echo state networks. International Conference on Artificial Neural Networks, 494-505. 2 Trouvain N, Hinaut X (2021). Canary song decoder: Transduction and implicit segmentation with ESNs and LSTMs. International Conference on Artificial Neural Networks 71-82. 3 Jaeger, H., & Haas, H. (2004). Harnessing nonlinearity: Predicting chaotic systems and saving energy in wireless communication. science, 304(5667), 78-80. 4 Lukoševičius, M., & Jaeger, H. (2009). Reservoir computing approaches to recurrent neural network training. Computer Science Review, 3(3), 127-149. 5 Vlachas, P. R., Pathak, J., Hunt, B. R., Sapsis, T. P., Girvan, M., Ott, E., & Koumoutsakos, P. (2020). Backpropagation algorithms and reservoir computing in recurrent neural networks for the forecasting of complex spatiotemporal dynamics. Neural Networks, 126, 191-217. 6 Trouvain, N., Rougier, N. P., & Hinaut, X. (2022). Create Efficient and Complex Reservoir Computing Architectures with ReservoirPy. In FROM ANIMALS TO ANIMATS 16: The 16th International Conference on the Simulation of Adaptive Behavior (SAB2022).


The engineer will be working on various health data projects of the PHDS network using the Reservoir Computing framework through the ReservoirPy library developed in the team. The first weeks will be dedicated to take charge of the ReservoirPy library and the tutorials of ReservoirPy. Then the recruited engineer will work on the various projects in parallel. She/he will also extend ReservoirPy library depending on the needs of the projects and maintain the library.

We have been extensively developing ReservoirPy during the past 2 years. The library is now mature to be used in complex scenarios with the high flexibility provided by the library. The recruited engineer will be required to maintain the library by answering Issues on the GitHub repository, continue to enhance the current documentation, tests, etc. She/he will also be developing new features of the library, such as the ones needed for the projects on health data.

This job is highly collaborative: it will happen within the PHDS Bordeaux Network, involving engineers and researchers of Bordeaux area. The hired engineer is expected to travel to French or foreign events to presents the results and present the ReservoirPy library.

Main activities

Prepare, clean, analyse, report on data of the various health data projects of the PHDS network. Reporting of advances and problems. Weekly synthetic reporting.

Continue the implementation of the development infrastructure (Travis, Coverage, ReadTheDocs) o Development + testing + documentation o Improvement of the hyper-parameter search tool for specific health applications - optimization of some calculations - identification of "iso-performance" parameter regions o Implementation of examples from the literature o Implementation of optimization methods from the literature o Writing of scientific articles in English (conferences and journal papers) o Management of external pull-requests + correction of possible bugs found by the community


Have an engineering degree and/or a PhD in digital sciences (computer science, automation, signal processing)

Have a first professional experience or internship (6 months to 3 years) in software development.

SOFTWARE ENGINEERING Have skills in software development: - Proficient in several of the following programming languages: Python and associated scientific libraries (Numpy, Scipy, Matplotlib) ; - Know how to implement the methods and tools underlying version management (Git,...), continuous integration and test-driven development in an agile context.

SCIENTIFIC Knowledge in : - artificial neural networks - artificial learning and their mathematical foundations (and in general, a good foundation in mathematics) - knowledge and experience in the field of "Reservoir computing" is a plus

GENERAL - Ability to work in a multidisciplinary team; - Ability to adapt to the project context; - Know how to establish a relationship of trust with his interlocutors; - Be autonomous in personal organization and reporting; - Good written and oral communication skills in French; - Mastery of technical and scientific English.

Benefits package
  • Subsidized meals
  • Partial reimbursement of public transport costs
  • Possibility of partial teleworking and flexible organization of working hours
  • Professional equipment available (videoconferencing, loan of computer equipment, etc.)
  • Social, cultural and sports events and activities
  • Access to vocational training
  • Social security coverage
  • General Information
  • Theme/Domain : Optimization, machine learning and statistical methods Software engineering (BAP E)

  • Town/city : Bordeaux

  • Inria Center : CRI Bordeaux - Sud-Ouest
  • Starting date : 2022-11-01
  • Duration of contract : 12 months
  • Deadline to apply : 2022-09-20
  • Contacts
  • Inria Team : MNEMOSYNE
  • Recruiter : Hinaut Xavier /
  • The keys to success

    To analyse data, develop methods and extend the ReservoirPy library, you need a good master of the Python scientific software stack (numpy & scipy essentially), experience with GitHub, experience with continuous integration (for unit testing) and a strong taste for documentation which should obviously explain what the different functions do but which will also have to be sourced by scientific references. There will be also examples of use-cases to be written by taking the most salient examples of this paradigm (with the possibility to publish them in ReScience).

    Desired profile: - Junior engineer mastering the Python language and knowing the scientific software stack of Python. Ideally, the candidate will have notions of machine learning. A good knowledge of linear algebra is required as well as a good knowledge of technical English. The candidate should also have experience with version management and be familiar with Git and the GitHub platform.

    About Inria

    Inria is the French national research institute dedicated to digital science and technology. It employs 2,600 people. Its 200 agile project teams, generally run jointly with academic partners, include more than 3,500 scientists and engineers working to meet the challenges of digital technology, often at the interface with other disciplines. The Institute also employs numerous talents in over forty different professions. 900 research support staff contribute to the preparation and development of scientific and entrepreneurial projects that have a worldwide impact.

    Instruction to apply

    Your application have to include the following documents :

  • CV
  • cover letter
  • possible letter of recommendation
  • Defence Security : This position is likely to be situated in a restricted area (ZRR), as defined in Decree No. 2011-1425 relating to the protection of national scientific and technical potential (PPST).Authorisation to enter an area is granted by the director of the unit, following a favourable Ministerial decision, as defined in the decree of 3 July 2012 relating to the PPST. An unfavourable Ministerial decision in respect of a position situated in a ZRR would result in the cancellation of the appointment.

    Recruitment Policy : As part of its diversity policy, all Inria positions are accessible to people with disabilities.

    Warning : you must enter your e-mail address in order to save your application to Inria. Applications must be submitted online on the Inria website. Processing of applications sent from other channels is not guaranteed.

    From this employer

    Recent blogs

    Recent news