NaturalGradient
class NaturalGradient(grad_method='lin_comb', qfi_method='lin_comb_full', regularization=None, **kwargs)
Bases: qiskit.opflow.gradients.gradient_base.GradientBase
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
- operator (
OperatorBase
) – The operator we are taking the gradient of. - params (
Union
[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.
Return type
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.
nat_grad_combo_fn
static NaturalGradient.nat_grad_combo_fn(x, regularization=None)
Natural Gradient Function Implementation.
Parameters
- x (
tuple
) – Iterable consisting of Gradient, Quantum Fisher Information. - regularization (
Optional
[str
]) – Regularization method.
Return type
ndarray
Returns
Natural Gradient.
Raises
ValueError – If the gradient has imaginary components that are non-negligible.
Attributes
grad_method
qfi_method
regularization
Returns the regularization option.
Returns: the regularization option.
Return type
Optional
[str
]