« An invitation to a brainstorm | Main | How to get paid big bucks »

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

Where are you headed? Every subsurface problem can be expressed as the arrow between two or more such panels.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 Gm = 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.

PrintView Printer Friendly Version

EmailEmail Article to Friend

Reader Comments (5)


You show the forward and inverse models diagramatically but only show the math for the forward problem. Do you think your readers would be scared off by m = (GT*G)-1*GT*d?


April 18, 2013 | Unregistered CommenterBrian Russell


If it were up to me, we'd all be eating linear algebra with our breakfast cereals. Indeed, the goal of these posts is to get all geoscientists, especially the ones who are scared off by math, to recognize that estimating an earth model is the ultimate goal of interpretation. Is it safe to say that interpreters, for better or for worse, are ones who solve inverse problems in their heads?

The least squares solution; yes! That is where this tale needs to take a turn next. Hopefully I can make it into a not so scary one.

April 19, 2013 | Registered CommenterEvan Bianco

Great posts about inverse problems! Inspired me to write up a visual inverse problem that I worked on last summer, (and start a blog in the process).

It is a simple 8 parameter inversion for earthquake orientation by comparing to InSAR data. The cool part is that the user can do the inversion on the web, on real data, in real time.

Thanks for the awesome posts.

April 20, 2013 | Unregistered CommenterRowan

That is a great project, I love how you went the extra step(s) and made it accessible and interactive in a browser. That is where the genius is! But you are solving the forward problem only, no? But in doing so, you have illustrated the appeal of forward modeling indeed. The exciting thing about this kind of problem is that you have complimentary independent information to corroborate; moment tensors, first motion diagrams, triangulation, etc.

Have you had any interest from structural geologists or basin modeling people trying to understand the tectonic and deformation history of sedimentary basins or accreted terranes? That is a whole other kind of inversion, one where geologic time becomes a fourth dimension in the model space.

Keep up the great work

April 23, 2013 | Registered CommenterEvan Bianco

@Rowan (again),
I wonder if the microseismic monitoring community could benefit from this type of forward modeling and interactivity. Modeling the best fittedness and the uncertainty of each microseism in a hydraulic fracture stimulation. Interferometry in microseismic event estimation. Can that be done with geophones? I haven't really seen the technology described in that way. Maybe I just have looked at it in enough detail.

April 23, 2013 | Registered CommenterEvan Bianco

PostPost a New Comment

Enter your information below to add a new comment.
Author Email (optional):
Author URL (optional):
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>