How to do Physics-based Learning
This is an incremental tutorial for researchers and engineers in computational imaging to accelerate system prototyping.
The tutorial explains how to implement physics-based learning to speed up prototyping of computational imaging systems, by using auto-differentiation twice to build and train physics-based networks, with an open-source PyTorch implementation provided.
The goal of this tutorial is to explain step-by-step how to implement physics-based learning for the rapid prototyping of a computational imaging system. We provide a basic overview of physics-based learning, the construction of a physics-based network, and its reduction to practice. Specifically, we advocate exploiting the auto-differentiation functionality twice, once to build a physics-based network and again to perform physics-based learning. Thus, the user need only implement the forward model process for their system, speeding up prototyping time. We provide an open-source Pytorch implementation of a physics-based network and training procedure for a generic sparse recovery problem