# Backwards and forwards reasoning

/Most people, if you describe a train of events to them will tell you what the result will be. There will be few people however, that if you told them a result, would be able to evolve from their own consciousness what the steps were that led to that result. This is what I mean when I talk about reasoning backward.

— Sherlock Holmes,A Study in Scarlet, Sir Arthur Conan Doyle (1887)

Reasoning backwards is the process of solving an **inverse problem **— estimating a physical system from indirect data. Straight-up reasoning, which we call the **forward problem**, is a kind of data collection: empiricism. It obeys a natural causality by which we relate model parameters to the data that we observe.

### Modeling a measurement

Inverse problems exists for two reasons. We are incapable of measuring what we are actually interested in, and it is impossible to measure a subject in enough detail, and in all aspects that matter. If, for instance, I ask you to determine my weight, you will be troubled if the only tool I allow is a ruler. Even if you are incredibly accurate with your tool, at best, you can construct only an estimation of the desired quantity. This estimation of reality is what we call a model. **The process of estimation is called inversion**.

### Measuring a model

Forward problems are ways in which we acquire information about natural phenomena. Given a model (me, say), it is easy to measure some property (my height, say) accurately and precisely. But given my height as the starting point, it is impossible to estimate *the me* from which it came. This is an example of an *ill-posed problem*. In this case, there is an infinite number of models that share my measurements, though each model is described by one exact solution.

Solving forward problems are nessecary to determine if a model fits a set of observations. So you'd expect it to be performed as a routine compliment to interpretation; a way to validate our assumptions, and train our intuition.

### The math of reasoning

Forward and inverse problems can be cast in this seemingly simple equation.

where **d** is a vector containing *N* observations (the data), **m** is a vector of *M* model parameters (the model), and *G* is a *N* × *M* matrix operator that connects the two. The structure of *G* changes depending on the problem, but it is where 'the experiment' goes. Given a set of model parameters **m**, the *forward problem* is to predict the data **d** produced by the experiment. This is as simple as plugging values into a system of equations. The *inverse problem* is much more difficult: given a set of observations **d**, estimate the model parameters **m**.

I think interpreters should describe their work within the *G***m** = **d** framework. Doing so would safeguard against mixing up observations, which should be objective, and interpretations, which contain assumptions. Know the difference between **m** and **d**. Express it with an arrow on a diagram if you like, to make it clear which direction you are heading in.

*Illustrations for this post were created using data from the Marmousi synthetic seismic data set. The blue seismic trace and its corresponding velocity profile is at location no. 250.*