OBPメタデータ
class OBPMetadata(truncation_error_budget, num_slices, operator_budget, backpropagation_history, num_backpropagated_slices)
ベース: object
backpropagate() メソッド中に生成されたメタデータのコンテナ。
属性
パラメーター
- truncation_error_budget (TruncationErrorBudget)
- num_slices (int | None)
- operator_budget (OperatorBudget)
- backpropagation_history (list[SliceMetadata])
- num_backpropagated_slices (int)
truncation_error_budget
タイプ: TruncationErrorBudget
観測可能な切り捨て戦略を指定する値。
num_slices
タイプ: int | None
バックプロパゲートを試みるスライスの総数。
operator_budget
タイプ: OperatorBudget
演算子の大きさを指定する値。
backpropagation_history
タイプ: list[SliceMetadata]
バックプロパゲーションの進行を追跡するための一連のメタデータオブジェクト。
num_backpropagated_slices
タイプ: int
バックプロパゲートされたスライスの数。
この値は、 operator_budget.max_paulis や operator_budget.max_qwc_groups のような停止基準によってバックプロパゲーションが終了した場合には、 len(backpropagation_history) と異なることがある。 最後のスライスでしきい値を超えたので、この値は len(backpropagation_history) - 1 。 しかし、便宜上、これらの値はエンドユーザーが検査できるように記録されている。
方法
accumulated_error
accumulated_error(observable_idx, slice_idx=None)
ある "時間 "における、ある観測値に対する累積誤差を計算する。
この方法は、バックプロパゲーションの過程で与えられた「時間」における、与えられた観測可能なインデックスに対する累積誤差を計算する。 ここでいう "時間 "とは、バックプロパゲートされたスライスの離散的なステップのことである。
累積誤差は、個々の誤差の和として計算される SliceMetadata.slice_errors。 これらは、指定された範囲内で計算される可能性があります TruncationErrorBudget.p_norm。 したがって、計算された累積誤差は、 ミンコフスキーの不等式 (Lp-ノルム(ただし、以外)に対する三角不等式の一般化 p=2)によって示されるように、実際の累積誤差の上界となる。
一般的なLpノルム( p=2 以外)は内積ノルムではないので、 平行四辺形の法則を 満たさない。 したがって、累積誤差の上限としてミンコフスキー不等式を使わなければならない。
パラメーター
- observable_idx (int) – 累積誤差を計算する観測値のインデックス。
- slice_idx (int | None) – 累積誤差を計算するスライス(離散的な「時間」ステップ)のインデックス。 これが
Noneの場合、デフォルトはself.num_backpropagated_slices。これは、アルゴリズムの停止基準を超えていない最新の時点における観測値の累積誤差を計算することと同じである
戻り値
上記の説明に従って計算された累積誤差。
戻りの型
from_json
classmethod from_json(json_file)
jsonファイルからメタデータを読み込む。
パラメーター
json_file (str) – ロードするファイルへのパス。
戻り値
読み込まれたメタデータ。
戻りの型
left_over_error_budget
left_over_error_budget(observable_idx, slice_idx=None)
与えられた "時間 "における、与えられた観測値に対する、残されたエラーバジェットを計算する。
この方法は、バックプロパゲーションの過程で、与えられた "時間 "において、与えられた観測可能なインデックスに対して残されたエラーバジェットを計算する。 ここでいう "時間 "とは、バックプロパゲートされたスライスの離散的なステップのことである。
残りの誤差予算は、総予算から個々の誤差予算の合計を差し引いた残額として計算される SliceMetadata.slice_errors。 これらは、指定された範囲内で計算される可能性があります TruncationErrorBudget.p_norm。
の説明も参照されたい。 accumulated_error() を参照されたい。個々のスライスの誤差がどのように合計され、ミンコフスキー不等式によって実誤差の上界が形成されるかの詳細については、以下の説明を参照されたい。
残されたエラー予算は、 self.truncation_error_budget.max_error_total の値に対する相対的なものである。 numpy.inf の場合は、このメソッドの戻り値も numpy.inf になる。
パラメーター
- observable_idx (int) – 誤差予算を計算する観測値のインデックス。
- slice_idx (int | None) – 残されたエラーバジェットを計算するスライス(離散的な "時間 "ステップ)のインデックス。 これが
Noneの場合、デフォルトはself.num_backpropagated_slices。これは、アルゴリズムの停止基準を超えていない最新の時点で、観測可能なエラーバジェットの残りを計算することと同じである
戻り値
上記の説明に従って計算された誤差予算。
戻りの型