{'fraction_non_alphanumeric': 0.00992063492063492, 'fraction_numerical': 0.0, 'mean_word_length': 4.864341085271318, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Subspace linear inverse method

This paper presents a robust, flexible and efficient algorithm to solve large scale linear inverse problems. The method is iterative and at each iteration a perturbation in a q-dimensional subspace of an M-dimensional model space is sought. The basis vectors for the subspace are primarily steepest descent vectors obtained from segmenting the data misfit and model objective functions. The efficiency of the algorithm is realized because only a q*q matrix needs to be inverted at each iteration instead of a matrix of order M. As M becomes large the number of computations per iteration is of order qNM where N is the number of data. An important feature of our algorithm is that positivity can easily be incorporated into the solution. We do this by introducing a two-segment mapping which transforms positive parameters to parameters defined on the real line. The nonlinear mapping requires that a line search involving forward modelling is implemented so that at each iteration we obtain a model which misfits the data to a predetermined level. This obviates the need to carry out additional inversions with trial and error selection of a Lagrange multiplier. In this paper we present the details of the subspace algorithm and explore the effect on convergence of using different strategies for selecting basis vectors and altering adjustable parameters which control the rate of decrease in the misfit and rate of increase in the model norm as a function of iteration number.