cherab.phix.inversion.GCV#

class cherab.phix.inversion.GCV(*args, lambdas=None, **kwargs)[source]#

Bases: SVDInversionBase

Generalized Cross-Validation (GCV) criterion inversion method inheriting SVDInversionBase class.

GCV criterion function represents as follows:

\[GCV(\lambda) := \frac{||Ax_\lambda - b||^2}{\left[1 - \sum_{i=1}^N w_i(\lambda)\right]^2}\]

The optimal regularization paramter is estimated at the minimal of GCV.

Parameters:
  • s (vector_like) – singular values \(\sigma_i\) in \(s\) vectors.

  • u (array_like) – SVD left singular vectors forms as one matrix like \(u = (u_1, u_2, ...)\)

  • vh (array_like) – SVD right singular vectors forms as one matrix like \(vh = (v_1, v_2, ...)^T\)

  • data (vector_like) – given data for inversion calculation

  • lambdas (vector_like, optional) – list of regularization parameters to search for optimal one, by default 10 ** numpy.linspace(-5, 5, 100)

  • **kwargs (SVDInversionBase properties, optional) – kwargs are used to specify properties like a inversion_base_vectors

Methods

eta([beta])

Calculate squared regularization norm \(\eta = ||L(x - x_0)||^2\)

eta_diff([beta])

Calculate differential of eta by regularization parameter.

gcv([beta])

Definition of GCV criterion function.

inverted_solution([beta])

Calculate the inverted solution using given regularization parameter.

optimize([itemax])

Excute the optimization of L-curve regularization.

optimized_solution([itemax])

Calculate inverted solution using GCV criterion optimization.

plot_gcv([fig, axes])

Plotting GCV vs regularization parameters in log-log scale.

regularization_norm([beta])

Return the residual norm \(\sqrt{\eta} = ||L (x - x_0)||\)

residual_norm([beta])

Return the residual norm \(\sqrt{\rho} = ||Ax - b||\)

rho([beta])

Calculate squared residual norm \(\rho = ||Ax - b||^2\).

w([beta])

Calculate window function using regularization parameter as a valuable and using singular values.

Attributes

L_inv

Inversion matrix in the regularization term.

beta

Regularization parameter.

data

Given data for inversion calculation.

gcvs

List of values of GCV, elements of which are calculated after the optimization iteration.

inversion_base_vectors

The components of inversions base represented as L_inv @ vh.T.

lambda_opt

Optimal regularization parameter which is decided after the optimization iteration.

lambdas

List of regularization parameters used for the optimization process.

s

singular values \(\sigma_i\) in \(s\) vectors.

u

SVD left singular vectors forms as one matrix like \(u = (u_1, u_2, ...)\)

vh

SVD right singular vectors forms as one matrix like \(vh = (v_1, v_2, ...)^T\)

gcv(beta=None)[source]#

Definition of GCV criterion function.

Parameters:

beta (float | None) – regularization parameter, by default None

Returns:

the value of GCV function at given regularization parameter

Return type:

float

optimize(itemax=3)[source]#

Excute the optimization of L-curve regularization. In particular, this method is used to seek the optimal regularization parameter computing gcv. The optimal regularization parameter corresponds to the index of minimum gcv. This procedure is iterated by up to the itemax times. Every time iterately calculating, the range of regularization parameters is narrowed to FWHM around the minimum gcv point. The optimal regularization parameter is cached to self._lambda_opt which can be seen lambda_opt property. And, both lambdas and gcvs are updated and stored to each property.

Parameters:

itemax (int) – iteration times, by default 3

Return type:

None

optimized_solution(itemax=None)[source]#

Calculate inverted solution using GCV criterion optimization.

Parameters:

itemax (int | None) – iteration times of optimization method, by default None. if an integer is given, optimize is called and optimal lambda is stored in lambda_opt.

Returns:

optimized solution vector

Return type:

numpy.ndarray

plot_gcv(fig=None, axes=None)[source]#

Plotting GCV vs regularization parameters in log-log scale.

Parameters:
  • fig (Figure | None) – matplotlib figure object, by default None.

  • axes (Axes | None) – matplotlib Axes object, by default None.

Returns:

(fig, axes), each of which is matplotlib objects applied some properties.

Return type:

tuple[Figure, Axes]

property gcvs: ndarray[Any, dtype[float64]]#

List of values of GCV, elements of which are calculated after the optimization iteration.

property lambda_opt: float#

Optimal regularization parameter which is decided after the optimization iteration.

property lambdas: ndarray[Any, dtype[float64]]#

List of regularization parameters used for the optimization process.