next up previous [pdf]

Next: Lloyd Up: Clapp: Picking Previous: Introduction

Viterbi

Dynamic programming, and specifically the Viterbi algorithm, offers a way to solve certain classes of non-linear problems. It is useful for problems that can be thought of as making one decision after another. To understand how it works, it is easiest to start with our final decision. Our goal is to maximize our `score' $S$ of a series of decision $1...n$. Each decision has several potential outcomes ($1...m$). Our final score is going to be based on some score we have calculated for all of our possible options (called `states') at $j=n-1$, and the best score we can get from moving from all of the possible states at $n-1$ to all possible states at $n$. We can write the score as

\begin{displaymath}
S(i,j) = {\rm max}_{k=1...m} [ S(k,j-1) +v(i,j,k) ]
,
\end{displaymath} (1)

where $i$ is the given state and $v(i,j,k)$ is the value obtained from moving from state $k$ to state $i$ at decision $j$. The best series of decisions is then found by going backwards, taking the state at each decision $i$ that corresponding to the highest score.

In this most general form, the algorithm is quite expensive. The cost on the order of $n*m*m$. For a large number of states the problem quickly becomes impractical. The easiest way to reduce the cost is to limit the number of states that we must search when moving from one decision to another.

For the interactive picking problem we are looking for the best path through a series of points in 2-D. In this example I am requiring that the solution is single valued along one axis (e.g. only one velocity at each time sample). I am looking for the best path between my first and last picks along the single value axis. I form an initial path by linear interpolation between the selected points. I am then going to limit my search space so it is no more than $x$ points away from the linear path (limit the possible states of $k$). Figure 1 demonstrates this concept. The left panel shows a semblance scan along with three selected points. The right panel shows the semblance extracted along the path represented by the three points.

path
path
Figure 1.
The left panel shows a semblance gather overlain by three picks. The right panel is the result of linearly interpolating between the picks and extracting semblance along the resulting line. [ER]
[pdf] [png]

In term of equation (1) we have $n$ decisions (the number of time samples between the first selected point and the last selected point) with $m$ states ($2*d+1$ in size where d is the search distance from the initial linear path.) Generally $v$ takes the form

\begin{displaymath}
v(i,j,k) = m(i,k) - p(j,k)
,
\end{displaymath} (2)

where $m$ is the semblance at a given location and $p$ is a scalar that punishes jumps in the selected semblance path. What is used for equation 2 can have dramatic effects on the solution. For the applications discussed in this paper I defined $p$ so that a single sample jump was mildly punished with rapidly increasing penalty with larger gaps. This has the effect of tending to create smooth solutions.

To further create a smooth path I only search in the range $abs(j-k) < 5$. Finally to force the user selected points to be honored I modify $m$ in a manner similar to Harlan (2001). I add large values to $m$ which has the effect of forcing the solution through these points. Figure 2a shows the generated score matrix from the data shown in Figure 1b overlain by the traced back path through these points. The path is calculated by finding the maximum in the first row and then searching for the maximum within some range in the next row, proceeding to the bottom of the score matrix. Figure 2b shows the path on the original data

semb
semb
Figure 2.
The left panel (A) shows the score matrix calculated using equation 1 overlain by the maximum tracked path. The right panel, B, shows the path overlain on the original semblance display. [ER]
[pdf] [png]

Reflectors can also be auto-picked by this method. In the case of picking reflectors, $m$ becomes the correlation of the data along with an initial linear path. Figure 3 demonstrates the concept. The left panel of Figure 3 show the data with a set of four points selected. The right panel of Figure 3 shows the path picked by the algorithm.

refs
refs
Figure 3.
The left panel shows the original with four seed points selected. The right panel shows the result of using the Viterbi algorithm to pick the reflector. [NR]
[pdf] [png]


next up previous [pdf]

Next: Lloyd Up: Clapp: Picking Previous: Introduction

2009-04-13