next previous
Up: Efficient implementations of

algorithm: SOLA using a Lagrange multiplier and normal equations.

  1. Transform to standard form
    eqnarray421
  2. Perform SVD reduction (optional)
    eqnarray425
  3. Set up the augmented normal equations and compute tex2html_wrap_inline2943 factorization
    eqnarray427
  4. Compute the right-hand side
    eqnarray435
  5. Solve for coefficients
    eqnarray438
  6. Compute the estimates of f and the corresponding variances at tex2html_wrap_inline2947
    eqnarray449
  7. If needed, compute the corresponding averaging kernels
    eqnarray454
 

In practice one may wish to repeat the algorithm for different shapes of the target function tex2html_wrap_inline2949 and/or varying values of the regularization parameter tex2html_wrap_inline2951. Changing the target functions requires re-computing steps 4, 5, 6 and 7. Changing tex2html_wrap_inline2953 requires re-computing steps 3, 5, 6 and 7. In Sect. 4 (click here) we will give a detailed analysis of the number of operations used by the algorithm.

2.2. SOLA by elimination of the constraint

 

We can identify Eq. (9 (click here)) as an instance of the well known equality constrained least squares problem (LSE); see Lawson & Hanson (1974), Chap. 20. To realize this, let us introduce the following quantities:
eqnarray465
Using this notation we can write (9 (click here)) in the following form:
equation471
These are in fact the normal equations for a constrained least squares problem, for which we have the equivalent expression:
equation478
We can reformulate this as
 equation484
We now have an equality constrained least squares problem in unit covariance form. Several methods have been developed for solving problem LSE. Here we use the one described in Lawson & Hanson (1974), Chap. 20 and Golub & Van Loan (1989), Sect. 12.1.4. The method has three stages:

  1. Derive a lower-dimensional unconstrained least squares problem from the given problem.
  2. Compute the solution to the lower-dimensional problem.
  3. Transform this solution back to the original setting.
Below we describe in detail how each of these three steps should be implemented to give an efficient SOLA algorithm.

2.2.1 Derivation of a lower-dimensional problem

We can determine a parameterization of the set tex2html_wrap_inline3097 of vectors in tex2html_wrap_inline3099 that satisfy the constraint in Eq. (15 (click here)):
eqnarray501
To do this we compute an tex2html_wrap_inline3101 Householder transformation tex2html_wrap_inline3103 (see Golub & Van Loan 1989, Sect. 5.2) such that
eqnarray505
In practice tex2html_wrap_inline3105 is not computed explicitly, but is represented in the form tex2html_wrap_inline3107. The columns of tex2html_wrap_inline3109 form a basis for tex2html_wrap_inline3111 and conceptually we can partition tex2html_wrap_inline3113 as
displaymath3095
where tex2html_wrap_inline3115. It follows that tex2html_wrap_inline3117 can be represented as
 equation512
where tex2html_wrap_inline3119 is an arbitrary (m-1)-vector (since all the columns of tex2html_wrap_inline3123 are orthogonal to tex2html_wrap3183). We can exploit this fact to transform problem LSE into the following form, where we have inserted Eq. (16 (click here)) into Eq. (15 (click here)) and collected terms:
eqnarray518
We now multiply from the left under the norm-sign with the orthogonal matrix
eqnarray523
without changing the solution. Using the orthogonality of tex2html_wrap_inline3125 we finally arrive at the reduced problem
 equation527
This is an ordinary unconstrained least squares problem. Having solved this for tex2html_wrap_inline3127 we obtain the solution to the original constrained problem as
 equation533

2.2.2. Solution via full bidiagonalization

 

We now describe an algorithm for solving (17 (click here)) which is efficient when many values of tex2html_wrap_inline3239 are required. Following Eldén (1977) we first bring tex2html_wrap_inline3241 into bidiagonal form:
 equation542
where
equation545
Here tex2html_wrap_inline3243, tex2html_wrap_inline3245, and tex2html_wrap_inline3247 is lower bidiagonal. This is the most costly part of the computation, it requires tex2html_wrap_inline3249 flops. The remaining part of the algorithm only involves tex2html_wrap_inline3251, which means that the dimension of the problem is effectively reduced from tex2html_wrap_inline3253 to tex2html_wrap_inline3255. As in the SVD transformation, tex2html_wrap_inline3257 is not explicitly computed, but tex2html_wrap_inline3259 is computed ``on the fly''. If tex2html_wrap_inline3261 is required for computing the discretized kernel tex2html_wrap_inline3263, then the orthogonal transformations that tex2html_wrap_inline3265 consists of are stored for later use. For algorithmic details on bidiagonalization see, e.g., Golub & Van Loan (1989), pp. 236-238.

If we make the transformation of variables
 eqnarray551
then we easily see that (17 (click here)) is equivalent to
 equation555
This least squares problem is now solved by determining a series of 2n-1 Givens rotations tex2html_wrap_inline3273 (see Golub & Van Loan 1989, Sect. 5.2) such that
eqnarray563
where tex2html_wrap_inline3291 is tex2html_wrap_inline3293 lower bidiagonal. The part of the right-hand side denoted by ``tex2html_wrap_inline3295" consist of n non-zero elements introduced along the way, but these are not computed in practice. We illustrate this procedure on a small example with n=3. First a rotation tex2html_wrap_inline3301 applied to rows n and 2n annihilates the (2n,n)-element, and a nonzero element is created in position (2n,n-1); then we annihilate this element by a rotation tex2html_wrap_inline3311 applied to rows 2n-1 and 2n:
displaymath3317
where
displaymath3235

displaymath3236
In the next step the same procedure is applied to the leading tex2html_wrap_inline3319 sub-matrix to annihilate the element in position (2n-1,n-1), and so on. During the reduction we only need to store the diagonals of tex2html_wrap_inline3323 in a pair of vectors, and the current value of tex2html_wrap_inline3325. Now the solution tex2html_wrap_inline3327 can be computed as
 equation600

2.2.3. Solution via Lanczos bidiagonalization

 

For a large sparse or structured (e.g., Hankel or Toeplitz) matrix tex2html_wrap_inline3393 it is prohibitive to compute explicitly the full bidiagonalization in Eq. (19 (click here)). Instead we would prefer to keep tex2html_wrap_inline3395 in factored form and use an iterative algorithm to solve the system in (17 (click here)). An efficient and stable algorithm for doing this, based on Lanczos bidiagonalization (Golub & Van Loan 1989, Sect. 9.3.3), is the algorithm LSQR, Paige & Saunders (1982a). This algorithm only accesses the coefficient matrix tex2html_wrap_inline3397 via matrix-vector multiplications with tex2html_wrap_inline3399 and tex2html_wrap_inline3401.

An even more efficient approach is to apply the LSQR algorithm with tex2html_wrap_inline3403 and use the fact that the kth iterate tex2html_wrap_inline3407 is a regularized solution. To be more specific, when we apply LSQR to Eq. (17 (click here)) with tex2html_wrap_inline3409, i.e., to
displaymath3387
then the iteration number k plays the role of the regularization parameter; small k correspond to large tex2html_wrap_inline3415, and vice versa. The reason is that LSQR captures the spectral components of the solution in order of increasing frequency, hence the initial iterates are smoother than the iterations in later stages, and as a consequence the initial iterates are more regularized.

The LSQR algorithm with tex2html_wrap_inline3417 is equivalent to Lanczos bidiagonalization of tex2html_wrap_inline3419. Specifically, after k steps, the Lanczos bidiagonalization algorithm has produced three matrices tex2html_wrap_inline3423, tex2html_wrap_inline3425, and tex2html_wrap_inline3427 such that
 equation625
where both tex2html_wrap_inline3429 and tex2html_wrap_inline3431 have orthonormal columns, and tex2html_wrap_inline3433 is bidiagonal. Moreover, the first k columns of tex2html_wrap_inline3437, the first k-1 columns of tex2html_wrap_inline3441, and the leading tex2html_wrap_inline3443 sub-matrix of tex2html_wrap_inline3445 are identical to the corresponding quantities in the previous step of the algorithm. The kth iterate tex2html_wrap_inline3449 is then computed as
displaymath3388
where tex2html_wrap_inline3451 solves the problem
displaymath3389
The key to the efficiency of LSQR lies in the way that tex2html_wrap_inline3455 is updated to tex2html_wrap_inline3457, while tex2html_wrap_inline3459 and tex2html_wrap_inline3461 are never stored; we refer to Paige & Saunders (1982a) for more details.

We emphasize the difference between the two bidiagonalization procedures. The full bidiagonalization (19 (click here)) is explicitly computed once, and it is independent of the regularization parameter; tex2html_wrap_inline3463 enters when solving the augmented bidiagonal system in Eq. (22 (click here)). The Lanczos bidiagonalization appears implicitly in computing the LSQR iterates tex2html_wrap_inline3465, and the sequence of iterates tex2html_wrap_inline3467 corresponds to sweeping through a range of regularization parameters.

2.2.4. Transformation back to the original setting

To compute the solution to the original problem in (15 (click here)) it is necessary to transform the solution tex2html_wrap_inline3515 or tex2html_wrap_inline3517 to the original variable tex2html_wrap_inline3519. Below tex2html_wrap_inline3521 and tex2html_wrap_inline3523 denote either tex2html_wrap_inline3525 and tex2html_wrap_inline3527 from Sect. 2.2.2 (click here) or tex2html_wrap_inline3529 and tex2html_wrap_inline3531 from Sect. 2.2.3 (click here). Inserting Eq. (18 (click here)) and (21 (click here)) in Eq. (2 (click here)) we get
eqnarray671
Similarly, if we insert Eqs. (18 (click here)), (19 (click here)) and (21 (click here)) in Eq. (10 (click here)) and use the definition of tex2html_wrap_inline3533 then we get
eqnarray679
Finally, due to the orthogonality of tex2html_wrap_inline3537 and tex2html_wrap_inline3539 the variance of the error in tex2html_wrap_inline3541 due to the noise takes the form
eqnarray684

Consider first full bidiagonalization from Sect. 2.2.2 (click here). We notice that tex2html_wrap_inline3545 is the only quantity in the above expressions that depends on the regularization parameter tex2html_wrap_inline3547 and the target function tex2html_wrap_inline3549. Therefore tex2html_wrap_inline3551 and tex2html_wrap_inline3553 only need to be computed once (in fact, they are already computed in earlier stages of the algorithm). This means that re-computing the solution tex2html_wrap_inline3555 when changing tex2html_wrap_inline3557 or tex2html_wrap_inline3559 is very cheap. This is a great improvement compared with the Lagrange-multiplier method from Sect. 2.1 (click here), where a matrix factorization must re-computed each time.

Although we do not explicitly compute tex2html_wrap_inline3561, it is still quite inexpensive to compute the discretized averaging kernels tex2html_wrap_inline3563 for the different solutions. Again, one of the terms, namely tex2html_wrap_inline3565, is already computed in earlier steps of the algorithm and the term tex2html_wrap_inline3567 requires only approximately tex2html_wrap_inline3569 flops.

Consider next the case from Sect. 2.2.3 (click here) where we use Lanczos bidiagonalization. Again, only tex2html_wrap_inline3571 depends on the target function tex2html_wrap_inline3573, but now both tex2html_wrap_inline3575 and tex2html_wrap_inline3577 depend on the regularization parameter, i.e., the iteration number k. Moreover, they both appear only implicitly in the algorithm, while it is the iteration vector tex2html_wrap_inline3581 that is explicitly computed. It is now more efficient to use the formulation tex2html_wrap_inline3583 to compute the estimated solution, and the variance of the error in tex2html_wrap_inline3585 is given by tex2html_wrap_inline3587. Similarly, the discretized averaging kernel should be computed by means of tex2html_wrap_inline3589.

2.3. Summary of the new algorithms

Our new algorithms, based on bidiagonalization, are summarized below. They describe the general case where tex2html_wrap_inline3691 is computed at points tex2html_wrap_inline3693. The matrix tex2html_wrap_inline3695 below is again the matrix whose columns contain ``samples'' of the q target function: tex2html_wrap_inline3699, tex2html_wrap_inline3701, tex2html_wrap_inline3703.


next previous
Up: Efficient implementations of

Copyright by the European Southern Observatory (ESO)
web@ed-phys.fr