NaturalGradient¶
- class qiskit.opflow.gradients.NaturalGradient(grad_method='lin_comb', qfi_method='lin_comb_full', regularization=None, **kwargs)[source]¶
Bases:
GradientBase
Deprecated: 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.
Deprecated since version 0.24.0: The class
qiskit.opflow.gradients.natural_gradient.NaturalGradient
is deprecated as of qiskit-terra 0.24.0. It will be removed no earlier than 3 months after the release date. For code migration guidelines, visit https://qisk.it/opflow_migration.- Parameters:
grad_method (str | CircuitGradient) – The method used to compute the state gradient. Can be either
'param_shift'
or'lin_comb'
or'fin_diff'
.qfi_method (str | CircuitQFI) – The method used to compute the QFI. Can be either
'lin_comb_full'
or'overlap_block_diag'
or'overlap_diag'
.regularization (str | None) – 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 regularizationkwargs (dict) – Optional parameters for a CircuitGradient
Attributes
- grad_method¶
Returns
CircuitGradient
.- Returns:
CircuitGradient
.
- qfi_method¶
Returns
CircuitQFI
.Returns:
CircuitQFI
.
- regularization¶
Returns the regularization option.
Returns: the regularization option.
Methods
- convert(operator, params=None)[source]¶
- Parameters:
operator (OperatorBase) – The operator we are taking the gradient of.
params (ParameterVector | ParameterExpression | List[ParameterExpression] | None) – The parameters we are taking the gradient with respect to. If not explicitly passed, they are inferred from the operator and sorted by name.
- Returns:
An operator whose evaluation yields the NaturalGradient.
- Raises:
TypeError – If
operator
does not represent an expectation value or the quantum state is notCircuitStateFn
.ValueError – If
params
contains a parameter not present inoperator
.ValueError – If
operator
is not parameterized.
- Return type:
- static nat_grad_combo_fn(x, regularization=None)[source]¶
Natural Gradient Function Implementation.
- Parameters:
- Returns:
Natural Gradient.
- Raises:
ValueError – If the gradient has imaginary components that are non-negligible.
- Return type: