NaturalGradient
class 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.
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 regularization - kwargs (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
convert(operator, params=None)
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
nat_grad_combo_fn
static nat_grad_combo_fn(x, regularization=None)
Natural Gradient Function Implementation.
Parameters
- x (tuple) – Iterable consisting of Gradient, Quantum Fisher Information.
- regularization (str | None) – Regularization method.
Returns
Natural Gradient.
Raises
ValueError – If the gradient has imaginary components that are non-negligible.
Return type