OBPMetadaten
class OBPMetadata(truncation_error_budget, num_slices, operator_budget, backpropagation_history, num_backpropagated_slices)
Basen: object
Ein Container für Metadaten, die während der Methode backpropagate() erzeugt werden.
Attribute
Parameter
- truncation_error_budget (TruncationErrorBudget)
- num_slices (int | None)
- operator_budget (OperatorBudget)
- backpropagation_history (list[SliceMetadata])
- num_backpropagated_slices (int)
truncation_error_budget
Werte, die die beobachtbare Trunkierungsstrategie angeben.
num_slices
operator_budget
Typ: OperatorBudget
Werte, die angeben, wie groß der Operator werden darf.
backpropagation_history
Typ: list[SliceMetadata]
Eine Folge von Metadatenobjekten zur Verfolgung des Verlaufs der Backpropagation.
num_backpropagated_slices
Typ: int
Die Anzahl der Backpropagated Slices.
Dieser Wert kann von len(backpropagation_history) abweichen, wenn ein Abbruchkriterium wie operator_budget.max_paulis oder operator_budget.max_qwc_groups zum Abbruch der Backpropagation geführt hat. Dann sollte dieser Wert gleich len(backpropagation_history) - 1 sein, weil der letzte Slice die Schwellenwerte überschritten hat. Der Einfachheit halber werden diese Werte jedoch weiterhin aufgezeichnet, damit der Endbenutzer sie überprüfen kann.
Methoden
accumulated_error
accumulated_error(observable_idx, slice_idx=None)
Berechnung des akkumulierten Fehlers für eine bestimmte Beobachtungsgröße zu einem bestimmten "Zeitpunkt".
Diese Methode berechnet den akkumulierten Fehler für einen bestimmten beobachtbaren Index zu einem bestimmten "Zeitpunkt" im Verlauf der Backpropagation. Unter "Zeit" sind in diesem Zusammenhang die diskreten Schritte der bereits backpropagierten Slices zu verstehen.
Der kumulierte Fehler wird als Summe der einzelnen SliceMetadata.slice_errors. berechnet. Diese können wiederum innerhalb eines festgelegten Bereichs berechnet werden TruncationErrorBudget.p_norm. Somit stellt der berechnete kumulierte Fehler eine Obergrenze für den tatsächlichen kumulierten Fehler dar, wie sie durch die Minkowski-Ungleichung gegeben ist (die Verallgemeinerung der Dreiecksungleichung für andere Lp-Normen als p=2).
Da eine allgemeine Lp-Norm (mit Ausnahme von p=2) keine innere Produktnorm ist, erfüllt sie nicht das Parallelogrammgesetz. Daher müssen wir die Minkowski-Ungleichung als Obergrenze für den kumulierten Fehler verwenden.
Parameter
- observable_idx (int) – der Index der Beobachtungsgröße, deren kumulierter Fehler berechnet werden soll.
- slice_idx (int | None) – der Index der Scheibe (der diskrete "Zeitschritt"), bis zu der der kumulierte Fehler berechnet werden soll. Wenn dies
Noneist, wird standardmäßigself.num_backpropagated_slicesverwendet, was der Berechnung des akkumulierten Fehlers einer Beobachtungsgröße zum letzten Zeitpunkt entspricht, der noch kein Stoppkriterium im Algorithmus überschritten hat
Rückgabe
Der kumulierte Fehler, der gemäß den obigen Erläuterungen berechnet wurde.
Rückgabetyp
from_json
classmethod from_json(json_file)
Laden von Metadaten aus einer json-Datei.
Parameter
json_file (str) – den Pfad zu der zu ladenden Datei.
Rückgabe
Die geladenen Metadaten.
Rückgabetyp
left_over_error_budget
left_over_error_budget(observable_idx, slice_idx=None)
Berechnung des verbleibenden Fehlerbudgets für eine bestimmte Beobachtungsgröße zu einem bestimmten "Zeitpunkt".
Diese Methode berechnet das verbleibende Fehlerbudget für einen bestimmten beobachtbaren Index zu einem bestimmten "Zeitpunkt" im Verlauf der Backpropagation. Unter "Zeit" sind in diesem Zusammenhang die diskreten Schritte der bereits backpropagierten Slices zu verstehen.
Das verbleibende Fehlerbudget wird als Rest des Gesamtbudgets abzüglich der Summe der einzelnen SliceMetadata.slice_errors. berechnet. Diese können wiederum innerhalb eines festgelegten Bereichs berechnet werden TruncationErrorBudget.p_norm.
Siehe auch die Erläuterungen in accumulated_error() für weitere Einzelheiten darüber, wie die einzelnen Fehler der Scheiben summiert werden, um über die Minkowski-Ungleichung eine Obergrenze für den tatsächlichen Fehler zu bilden.
Das verbleibende Fehlerbudget bezieht sich auf den Wert von self.truncation_error_budget.max_error_total , der numpy.inf sein kann. In diesem Fall ist der von dieser Methode zurückgegebene Wert ebenfalls numpy.inf.
Parameter
- observable_idx (int) – der Index der Beobachtungsgröße, deren Restfehlerbudget berechnet werden soll.
- slice_idx (int | None) – der Index der Scheibe (der diskrete "Zeit"-Schritt), bis zu der das verbleibende Fehlerbudget berechnet werden soll. Wenn dies
Noneist, wird standardmäßigself.num_backpropagated_slicesverwendet, was der Berechnung des verbleibenden Fehlerbudgets einer Beobachtungsgröße zum letzten Zeitpunkt entspricht, der noch kein Stoppkriterium im Algorithmus überschritten hat
Rückgabe
Das verbleibende Fehlerbudget wird gemäß den obigen Erläuterungen berechnet.
Rückgabetyp