Developing Bug-Free Machine Learning Systems With Formal Mathematics
By Daniel Selsam, Percy Liang, David L. Dill. 2017
63 citations recorded by the source corpus.
Noisy data, non-convex objectives, model misspecification, and numerical instability can all cause undesired behaviors in machine learning systems. As a result, detecting actual implementation errors can be extremely difficult. We demonstrate a methodology in which developers use an interactive proof assistant to both implement their system and to state a formal theorem defining what it means for their system to be correct. The process of proving this theorem interactively in the proof assistant exposes all implementation errors since any error in the program would cause the proof to fail. As a case study, we implement a new system, Certigrad, for optimizing over stochastic computation graphs, and we generate a formal (i.e. machine-checkable) proof that the gradients sampled by the system are unbiased estimates of the true mathematical gradients. We train a variational autoencoder using Certigrad and find the performance comparable to training the same model in TensorFlow.
Subfields: Artificial Intelligence, Computational Theory and Mathematics, Hardware and Architecture
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Artificial Intelligence
- Dorsa Sadigh
- Sanjit A. Seshia
- Scott Niekum
- Sumit Gulwani
- Daniel S. Brown
- Anca Dragan
- Edouard Leurent
- Rishabh Singh
In Computational Theory and Mathematics
In Hardware and Architecture
Citations in the corpus
- Towards Verified Artificial Intelligence (2016, background): “[72]) is also an important step towards improving the assurance in ML based systems.”