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
관찰 가능한 잘라내기 전략을 지정하는 값입니다.
num_slices
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-norm(다음과 같음) 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이며, 이는 알고리즘의 중지 기준을 초과하지 않은 최신 시점의 관측 가능 항목의 남은 오류 예산을 계산하는 것과 같습니다
리턴
위의 설명에 따라 계산된 남은 오류 예산입니다.
리턴 유형