EMLlib
A Python library to embed ML models in declarative optimization models

Main Characteristic
The EMLlib allows one to embed a pre-trained Machine Learning model, by encoding its structure using variables and constraints. This is useful in a number of use cases, e.g.:
- Dealing with optimization problems over complex real world systems (e.g. in prescriptive analytics), decision subject to uncertainty, dynamic systems, or simulation
- ML model verification
- Generating counterexamples
The library is designed to read ML models from multiple format and to support different optimization back-ends, though at the moment the supported tools are limited.
Additional information can be found in the github repository linked in the top-right of this page.
Research areas
Integrative AI
Last updated
04.12.2021 - 12:54
Detailed Description
The library currently supports:
- Feed-forward, fully-connected Neural Networks (via Tensorflow/Keras) and Decision trees on the ML side
- The IBM Cplex Optimizer and the Goole Or-Tools Mixed Integer Linear solver wrapper on the optimization side.
Execution environment: interpreted
Version of the environment: Python 3.X
Trustworthy AI
The EMLlib can be used as an exact approach for the verification of ML systems and for the generation of adversarial examples, with the corresponding advantages (completeness) and disadvantages (limited scalability). As such, the library could be used by malicious actor to fool an existing ML system (with known structure and weights), or by a lawful actor to certificate or improve the robustness of an ML system.
GDPR Requirements
The tool is designed simply for model integration so that GDRP restrictions do not apply to the library itself. The models (ML & optimization) being integrated should however respect GDPR individually.