# Solving high-dimensional inverse problems with tensor compression
# A practical introduction to inverse problems
## Tutorial summary
Solving inverse problems using the Bayesian framework to allow not only parameter determination but also quantification of parameter uncertainties is a well established principle.
In optical applications, the forward model used to simulate the scattering process is often computationally very demanding, which renders determining the shape of the parameter distribution through standard methods such as MCMC prohibitively time consuming.
In these cases the forward model is typically bypassed by some kind of surrogate, i.e., an approximation that can be evaluated efficiently such as polynomial chaos, Gaussian processes or neural networks.
When the number of sought after parameters gets sufficiently large, however, computing such surrogates becomes difficult and often requires even more time and storage than the original MCMC run.
As an alternative to alleviate this problem, we will discuss how tensor formats can be used to compress the required surrogate to keep things computationally feasible.
Moreover, these formats potentially allow us to construct a functional representation of the Bayesian posterior, which yields the possibility to compute quantities of interest such as mean, variance, higher-order moments and marginals analytically without the need for sampling.
In this tutorial we discuss how parameter reconstruction and uncertainty quantification can be done in a mathematically sound way.
The focus, however, lies on practicality and not on theoretical results.
To achieve this, we cover some of the basic settings (Bayesian inverse problems, Optimization, high-dimensional approximation, sampling) in the first part of the tutorial and then see how they can be applied to real problems on a computer.
No prior knowledge about the topics discussed is required, it is helpful though if you are familiar with a typical parameter reconstruction task.
If you want to participate in the interactive session, you need a laptop with a python environment (preferably Anaconda).
## Setup
After cloning the repository, you need to ensure all required python packages are installed.