NaturalGradient
qiskit.opflow.gradients.NaturalGradient(grad_method='lin_comb', qfi_method='lin_comb_full', regularization=None, **kwargs)
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.
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 (opens in a new tab).
Parameters
- grad_method (str (opens in a new tab) |CircuitGradient) – The method used to compute the state gradient. Can be either
'param_shift'
or'lin_comb'
or'fin_diff'
. - qfi_method (str (opens in a new tab) |CircuitQFI) – The method used to compute the QFI. Can be either
'lin_comb_full'
or'overlap_block_diag'
or'overlap_diag'
. - regularization (str (opens in a new tab) | 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 regularization - kwargs (dict (opens in a new tab)) – 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
convert(operator, params=None)
Parameters
- operator (OperatorBase) – The operator we are taking the gradient of.
- params (ParameterVector |ParameterExpression |List (opens in a new tab)[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 (opens in a new tab) – If
operator
does not represent an expectation value or the quantum state is notCircuitStateFn
. - ValueError (opens in a new tab) – If
params
contains a parameter not present inoperator
. - ValueError (opens in a new tab) – If
operator
is not parameterized.
Return type
nat_grad_combo_fn
static nat_grad_combo_fn(x, regularization=None)
Natural Gradient Function Implementation.
Parameters
- x (tuple (opens in a new tab)) – Iterable consisting of Gradient, Quantum Fisher Information.
- regularization (str (opens in a new tab) | None) – Regularization method.
Returns
Natural Gradient.
Raises
ValueError (opens in a new tab) – If the gradient has imaginary components that are non-negligible.
Return type