I am Simon. Currently, I am working as a senior data scientist at the Swiss Data Science Center in the academic cell.

My research interests revolve mainly around causal inference, generative and probabilistic modelling, Bayesian inference, and probabilistic programming languages.

As a computer scientist turned applied statistician, I am particularly enthusiastic about probabilistic programming which, as a discipline, lies at the interface of both fields. Probabilistic programming languages (PPLs) use computer programs to represent probabilistic models and are able to automatically infer quantities of interest (usually posterior distributions) without users needing to manually implement specific samplers or optimizers. In that line of research, I frequently contribute to modern PPLs, e.g., the frameworks Stan or NumPyro.

As a former researcher in computational biology and wannabe-philosopher, I am keen on causal inference (CI) due to its relatedness to philosophy of science, epistemology and scientific discovery, and since it mathematically formalizes how (and if) cause-and-effect relationships can be established (CI concerns itself with the discovery and inference of cause-and-effect relationships).

You can reach me here:

selected papers and preprints

My papers and preprints can be found on Google Scholar. A selection is listed below.

Diffusion models for probabilistic programming
Simon Dirmeier and Fernando Perez-Cruz. NeurIPS Workshop on Diffusion models, 2023. doi:10.48550/arXiv.2311.00474
Uncertainty quantification and out-of-distribution detection using surjective normalizing flows
Simon Dirmeier, Ye Hong, Yanan Xin and Fernando Perez-Cruz. arXiv preprint, 2023. doi:10.48550/arXiv.2311.00377
Simulation-based inference using surjective sequential neural likelihood estimation
Simon Dirmeier and Carlo Albert and Fernando Perez-Cruz. arXiv preprint, 2023. doi:10.48550/arXiv.2308.01054
Structured hierarchical models for probabilistic inference from perturbation screening data
Simon Dirmeier and Niko Beerenwinkel. Annals of Applied Statistics, 2022. doi:10.1214/21-AOAS1580
Host factor prioritization for pan-viral genetic perturbation screens using random intercept models and network propagation
Simon Dirmeier et al. PLOS Computational Biology, 2020. doi:10.1371/journal.pcbi.1007587
netReg: network-regularized linear models for biological association studies
Simon Dirmeier, Christiane Fuchs, Nikola S Mueller and Fabian J Theis. Bioinformatics, 2018. doi:10.1093/bioinformatics/btx677

selected software

My software and code is openly accessible on GitHub. Some packages are shown below.

  • None sbijax implements several methods for simulation-based inference.

  • None surjectors is a library for density estimation using surjective normalizing flows.

  • None reconcile is another Python package for probabilistic reconciliation of time series forecasts.

  • None Ramsey is a Python package for probabilistic modelling using JAX and Haiku. It implements recent developments in probabilistic machine and deep learning and among other things aims to bring these methods to a larger audience.

  • None clad is a proof-of-concept reverse-mode automatic differentiation package written in Clojure.

  • None shm is a Python package for probabilistic inference in structured hierarchical models.

  • None R-- is an interpreter for the R language written in C++.

  • None netReg implements network-regularized regression models in R/C++.

  • None cuda-etudes is a selection of numerical CUDA recipes.

  • None cluedo implements the well known board game in JavaScript. This version plays in ancient Greece where Socrates, a true champion of the open society, has been murdered by one of his enemies.

  • None PyBDA is a Python library and command line tool for big data analytics and machine learning scaling to tera byte sized data sets.

selected software I like contributing to

  • None Stan is a state-of-the-art probabilistic programming langauge for Bayesian modeling and high-performance statistical computation.

  • None NumPyro is a lightweight probabilistic programming library that provides a NumPy backend for Pyro. It relies on JAX for automatic differentiation and JIT compilation to CPU/GPU/TPU.