You are viewing the API reference for an old version of Qiskit SDK. Switch to latest version

class `NaturalGradient(grad_method='lin_comb', qfi_method='lin_comb_full', regularization=None, **kwargs)`

GitHub(opens in a new tab)

Convert an operator expression to the first-order gradient.

Given an ill-posed inverse problem

x = arg min{||Ax-C||^2} (1)

one can use regularization schemes can be used to stabilize the system and find a numerical solution

x_lambda = arg min{||Ax-C||^2 + lambda*R(x)} (2)

where R(x) represents the penalization term.

Parameters

• grad_method (`Union`[`str`, `CircuitGradient`]) – The method used to compute the state gradient. Can be either `'param_shift'` or `'lin_comb'` or `'fin_diff'`.
• qfi_method (`Union`[`str`, `CircuitQFI`]) – The method used to compute the QFI. Can be either `'lin_comb_full'` or `'overlap_block_diag'` or `'overlap_diag'`.
• regularization (`Optional`[`str`]) – Use the following regularization with a least square method to solve the underlying system of linear equations Can be either None or `'ridge'` or `'lasso'` or `'perturb_diag'` `'ridge'` and `'lasso'` use an automatic optimal parameter search If regularization is None but the metric is ill-conditioned or singular then a least square solver is used without regularization
• kwargs (dict) – Optional parameters for a CircuitGradient

## Methods Defined Here

### convert

`NaturalGradient.convert(operator, params=None)`

Parameters

Return type

`OperatorBase`

Returns

An operator whose evaluation yields the NaturalGradient.

Raises

• TypeError – If `operator` does not represent an expectation value or the quantum state is not `CircuitStateFn`.
• ValueError – If `params` contains a parameter not present in `operator`.
• ValueError – If `operator` is not parameterized.

static `NaturalGradient.nat_grad_combo_fn(x, regularization=None)`

Parameters

• x (`tuple`) – Iterable consisting of Gradient, Quantum Fisher Information.
• regularization (`Optional`[`str`]) – Regularization method.

Return type

`ndarray`

Returns

Raises

ValueError – If the gradient has imaginary components that are non-negligible.

## Attributes

Returns `CircuitGradient`.

Return type

`CircuitGradient`

Returns

`CircuitGradient`.

### qfi_method

Returns `CircuitQFI`.

Returns: `CircuitQFI`.

Return type

`CircuitQFI`

### regularization

Returns the regularization option.

Returns: the regularization option.

Return type

`Optional`[`str`]