08.07.2015 Views

Nonnegativity Constraints in Numerical Analysis - CiteSeer

Nonnegativity Constraints in Numerical Analysis - CiteSeer

Nonnegativity Constraints in Numerical Analysis - CiteSeer

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

However, when applied <strong>in</strong> a straightforward manner to large scale NNLS problems, thisalgorithm’s performance is found to be unacceptably slow ow<strong>in</strong>g to the need to perform theequivalent of a full pseudo-<strong>in</strong>verse calculation for each observation vector. More recently,Bro and de Jong [15] have made a substantial speed improvement to Lawson and Hanson’salgorithm for the case of a large number of observation vectors, by develop<strong>in</strong>g a modifiedNNLS algorithm.Fast NNLS fnnls :In the paper [15], Bro and de Jong give a modification of the standard algorithm forNNLS by Lawson and Hanson. Their algorithm, called Fast Nonnegative Least Squares,fnnls, is specifically designed for use <strong>in</strong> multiway decomposition methods for tensor arrayssuch as PARAFAC and N-mode PCA. (See the material on tensors given later <strong>in</strong> this paper.)They realized that large parts of the pseudo<strong>in</strong>verse could be computed once but usedrepeatedly. Specifically, their algorithm precomputes the cross-product matrices that appear<strong>in</strong> the normal equation formulation of the least squares solution. They also observed that,dur<strong>in</strong>g alternat<strong>in</strong>g least squares (ALS) procedures (to be discussed later), solutions tend tochange only slightly from iteration to iteration. In an extension to their NNLS algorithmthat they characterized as be<strong>in</strong>g for “advanced users”, they reta<strong>in</strong>ed <strong>in</strong>formation about theprevious iterations solution and were able to extract further performance improvements <strong>in</strong>ALS applications that employ NNLS. These <strong>in</strong>novations led to a substantial performanceimprovement when analyz<strong>in</strong>g large multivariate, multiway data sets.Algorithm fnnls :Input: A ∈ R m×n , b ∈ R mOutput: x ∗ ≥ 0 such that x ∗ = arg m<strong>in</strong> ‖Ax − b‖ 2 .Initialization: P = ∅, R = {1, 2, · · · , n}, x = 0, w = A T b − (A T A)xrepeat1. Proceed if R ≠ ∅ ∧ [max i∈R (w i ) > tolerance]2. j = arg max i∈R (w i )3. Include the <strong>in</strong>dex j <strong>in</strong> P and remove it from R4. s P = [(A T A) P ] −1 (A T b) P4.1. Proceed if m<strong>in</strong>(s P ) ≤ 04.2. α = − m<strong>in</strong> i∈P [x i /(x i − s i )]4.3. x := x + α(s − x)4.4. Update R and P4.5. s P = [(A T A) P ] −1 (A T b) P4.6. s R = 08

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!