@article {orozco2023invnet,
	title = {InvertibleNetworks.jl: A Julia package for scalable normalizing flows},
	journal = {Journal of Open Source Software},
	volume = {9},
	year = {2024},
	month = {7},
	abstract = {InvertibleNetworks.jl is a Julia package designed for the scalable implementation of normalizing flows, a method for density estimation and sampling in high-dimensional distributions. This package excels in memory efficiency by leveraging the inherent invertibility of normalizing flows, which significantly reduces memory requirements during backpropagation compared to existing normalizing flow packages that rely on automatic differentiation frameworks. InvertibleNetworks.jl has been adapted for diverse applications, including seismic imaging, medical imaging, and CO2 monitoring, demonstrating its effectiveness in learning high-dimensional distributions.},
	keywords = {Bayesian inference, computing, conditional normalizing flows, deep learning, HPC, Inverse problems, memory, Normalizing flows, software, Uncertainty quantification},
	doi = {10.21105/joss.06554},
	url = {https://doi.org/10.21105/joss.06554},
	author = {Rafael Orozco and Philipp A. Witte and Mathias Louboutin and Ali Siahkoohi and Gabrio Rizzuti and Bas Peters and Felix J. Herrmann}
}
@conference {witte2021JULIACONmedlj,
	title = {InvertibleNetworks.jl - Memory efficient deep learning in Julia},
	booktitle = {JuliaCon},
	year = {2021},
	note = {(JuliaCon, virtual)},
	month = {07},
	abstract = {We present InvertibleNetworks.jl, an open-source package for invertible neural networks and normalizing flows using memory-efficient backpropagation. InvertibleNetworks.jl uses manually implement gradients to take advantage of the invertibility of building blocks, which allows for scaling to large-scale problem sizes. We present the architecture and features of the library and demonstrate its application to a variety of problems ranging from loop unrolling to uncertainty quantification.},
	keywords = {deep learning, Invertible network, Julia, Normalizing flows, segmentation},
	url = {https://slim.gatech.edu/Publications/Public/Conferences/JuliaCon/2021/witte2021JULIACONmedlj/witte2021JULIACONmedlj.pdf},
	url2 = {https://www.youtube.com/watch?v=9M-zEGHY4i4},
	author = {Philipp A. Witte and Mathias Louboutin and Ali Siahkoohi and Gabrio Rizzuti and Bas Peters and Felix J. Herrmann}
}
@article {siahkoohi2019itl,
	title = {The importance of transfer learning in seismic modeling and imaging},
	journal = {Geophysics},
	year = {2019},
	note = {(GEOPHYSICS)},
	abstract = {Accurate forward modeling is essential for solving inverse problems in exploration seismology. Unfortunately, it is often not possible to afford being physically or numerically accurate. To overcome this conundrum, we make use of raw and processed data from nearby surveys. We propose to use this data, consisting of shot records or velocity models, to pre-train a neural network to correct for the effects of, for instance, the free surface or numerical dispersion, both of which can be considered as proxies for incomplete or inaccurate physics. Given this pre-trained neural network, we apply transfer learning to finetune this pre-trained neural network so it performs well on its task of mapping low-cost, but low-fidelity, solutions to high-fidelity solutions for the current survey. As long as we can limit ourselves during finetuning to using only a small fraction of high-fidelity data, we gain processing the current survey while using information from nearby surveys. We demonstrate this principle by removing surface-related multiples and ghosts from shot records and the effects of numerical dispersion from migrated images and wave simulations},
	keywords = {deep learning, Imaging, Modeling, SRME, transfer learning},
	doi = {10.1190/geo2019-0056.1},
	url = {https://slim.gatech.edu/Publications/Public/Journals/Geophysics/2019/siahkoohi2019itl/siahkoohi2019itl.html},
	author = {Ali Siahkoohi and Mathias Louboutin and Felix J. Herrmann}
}
