M3를 사용한 Sampler 프리미티브의 판독 오류 완화
사용 시간 예상: Heron r2 프로세서에서 1분 미만 (참고: 이는 예상치이며, 실제 실행 시간은 다를 수 있습니다.)
배경
Estimator 프리미티브와 달리 Sampler 프리미티브는 오류 완화에 대한 내장 지원이 없습니다. Estimator가 지원하는 여러 방법은 기댓값에 특화되어 있어 Sampler 프리미티브에 는 적용할 수 없습니다. 예외적으로 판독 오류 완화는 Sampler 프리미티브에도 적용 가능한 매우 효과적인 방법입니다.
M3 Qiskit 애드온은 판독 오류 완화를 위한 효율적인 방법을 구현합니다. 이 튜토리얼에서는 M3 Qiskit 애드온을 사용하여 Sampler 프리미티브의 판독 오류를 완화하는 방법을 설명합니다.
판독 오류란 무엇인가?
측정 직전 Qubit 레지스터의 상태는 계산 기저 상태의 중첩으로 기술되거나, 밀도 행렬로 기술됩니다. 그런 다음 Qubit 레지스터를 고전 비트 레지스터로 측정하는 과정은 두 단계로 진행됩니다. 첫 번째는 양자 측정 자체를 수행하는 것입니다. 즉, Qubit 레지스터의 상태가 과 의 비트열로 특징지어지는 단일 기저 상태로 투영됩니다. 두 번째 단계는 이 기저 상태를 특징짓는 비트열을 읽어 고전 컴퓨터 메모리에 기록하는 것입니다. 우리는 이 단계를 판독이라고 부릅니다. 두 번째 단계(판독)가 첫 번째 단계(기저 상태로의 투영)보다 더 많은 오류를 발생시킵니다. 이는 판독이 미시적인 양자 상태를 감지하여 거시적 영역으로 증폭시켜야 한다는 점을 생각하면 이해할 수 있습니다. 판독 공진기가 (트랜스몬) Qubit에 결합되어 매우 작은 주파수 이동을 경험합니다. 그런 다음 마이크로파 펄스가 공진기에서 반사되어 그 특성에 작은 변화가 생깁니다. 반사된 펄스는 증폭되어 분석됩니다. 이는 매우 섬세한 과정으로 다양한 오류에 취약합니다.
중요한 점은 양자 측정과 판독 모두 오류에 취약하지만, 후자에서 지배적인 오류인 판독 오류가 발생하며, 이것이 이 튜토리얼의 주제라는 것입니다.
이론적 배경
고전 메모리에 저장된 샘플링된 비트열이 투영된 양자 상태를 특징짓는 비트열과 다를 경우, 판독 오류가 발생했다고 합니다. 이러한 오류는 샘플 간에 무작위적이고 비상관적으로 관찰됩니다. 판독 오류를 _잡음이 있는 고전 채널_로 모델링하는 것이 유용한 것으로 증명되었습니다. 즉, 모든 비트열 쌍 와 에 대해, 진짜 값 가 로 잘못 읽힐 고정된 확률이 있습니다.
더 정확하게는, 모든 비트열 쌍 에 대해, 진짜 값이 일 때 가 읽힐 (조건부) 확률 가 있습니다. 즉,
여기서 은 판독 레지스터의 비트 수입니다. 구체적으로, 는 계산 기저 상태를 표시하는 비트열의 이진 표현을 갖는 십진 정수라고 가정합니다. 행렬 을 _할당 행렬_이라고 부릅니다. 고정된 진짜 값 에 대해, 모든 잡음 결과 에 대한 확률의 합은 이 되어야 합니다. 즉
(1)을 만족하는 음수가 아닌 항목을 가진 행렬을 _좌확률적_이라고 합니다. 좌확률적 행렬은 각 열의 합이 이기 때문에 _열확률적_이라고도 불립니다. 각 기저 상태 를 반복적으로 준비한 다음 샘플링된 비트열의 출현 빈도를 계산하여 각 원소 의 근사값을 실험적으로 결정합니다.
실험이 반복 샘플링으로 출력 비트열에 대한 확률 분포를 추정하는 것을 포함한다면, 을 사용하여 분포 수준에서 판독 오류를 완화할 수 있습니다. 첫 번째 단계는 관심 있는 고정 Circuit을 여러 번 반복하여 샘플링된 비트열의 히스토그램을 만드는 것입니다. 정규화된 히스토그램은 으로 표기하는 개의 가능한 비트열에 대한 측정된 확률 분포입니다. 비트열 를 샘플링할 (추정) 확률 는 로 잘못 인식될 확률로 가중된 모든 진짜 비트열 의 합과 같습니다. 이를 행렬 형태로 나타내면
여기서 는 진짜 분포입니다. 즉, 판독 오류는 비트열에 대한 이상적인 분포 에 할당 행렬 을 곱하여 관측된 분포 를 생성하는 효과를 가집니다. 우리는 와 을 측정했지만, 에는 직접 접근할 수 없습니다. 원칙적으로, 회로에 대한 비트열의 진짜 분포를 방정식 (2)를 에 대해 수치적으로 풀어 얻을 수 있습니다.
계속 진행하기 전에, 이 단순한 접근 방식의 몇 가지 중요한 특징을 짚어볼 필요가 있습니다.
- 실제로는 방정식 (2)를 을 역행렬로 풀지 않습니다. 소프트웨어 라이브러리의 선형 대수 루틴은 더 안정적이고 정확하며 효율적인 방법을 사용합니다.
- 을 추정할 때, 판독 오류만 발생했다고 가정했습니다. 특히, 상태 준비 및 양자 측정 오류가 없거나, 적어도 달리 완화되었다고 가정합니다. 이 가정이 유효한 범위 내에서, 은 실제로 판독 오류만을 나타냅니다. 그러나 비트열에 대한 측정된 분포를 수정하기 위해 을 사용할 때는 이러한 가정을 하지 않습니다. 사실, 흥미로운 Circuit은 예를 들어 Gate 오류와 같은 잡음을 도입할 것으로 예상됩니다. "진짜" 분포에는 달리 완화되지 않은 오류의 효과도 여전히 포함됩니다.
이 방법은 일부 상황에서 유용하지만 몇 가지 한계가 있습니다.
을 추정하는 데 필요한 공간 및 시간 자원은 에 대해 지수적으로 증가합니다:
- 과 의 추정은 유한 샘플링으로 인한 통계적 오류에 영향을 받습니다. 이 잡음은 더 많은 샷(체계적 오류를 유발하는 드리프트하는 하드웨어 파라미터의 시간 척도까지)을 통해 원하는 만큼 작게 만들 수 있습니다. 그러나 완화 수행 시 관찰된 비트열에 대해 가정을 하지 않는다면, 을 추정하는 데 필요한 샷 수는 에 대해 최소 지수적으로 증가합니다.
- 은 행렬입 니다. 이면, 을 저장하는 데 필요한 메모리 양이 강력한 노트북에서 사용 가능한 메모리를 초과합니다.
추가적인 한계는:
- 복원된 분포 에는 하나 이상의 음수 확률이 있을 수 있습니다(합이 여전히 1인 경우에도). 한 가지 해결책은 의 각 항목이 음수가 아니라는 제약 조건 하에 를 최소화하는 것입니다. 그러나 그러한 방법의 런타임은 방정식 (2)를 직접 푸는 것보다 몇 배나 더 깁니다.
- 이 완화 절차는 비트열에 대한 확률 분포 수준에서 작동합니다. 특히, 개별적으로 관찰된 비트열의 오류는 수정할 수 없습니다.
Qiskit M3 애드온: 더 긴 비트열로 확장
표준 수치 선형 대수 루틴을 사용하여 방정식 (2)를 푸는 것은 약 10비트 이하의 비트열로 제한됩니다. 그러나 M3는 훨씬 더 긴 비트열을 처리할 수 있습니다. 이를 가능하게 하는 M3의 두 가지 핵심 특성은:
- 비트 집합 간의 3차 이상의 판독 오류 상관관계는 무시할 수 있다고 가정하고 무시합니다. 원칙적으로, 더 많은 샷을 사용하면 더 높은 상관관계도 추정할 수 있습니다.
- 을 명시적으로 구성하는 대신, 를 구성할 때 수집된 비트열에 대해서만 확률을 기록하는 훨씬 작은 유효 행렬을 사용합니다.
높은 수준에서, 절차는 다음과 같이 작동합니다.
먼저, 의 단순화된 유효 설명을 구성하는 데 사용할 수 있는 구성 요소를 만듭니다. 그런 다음 관심 있는 Circuit을 반복적으로 실행하여 비트열을 수집하고, 이를 사용하여 와 구성 요소의 도움으로 유효한 을 구성합니다.
더 정확하게는,
-
각 Qubit에 대해 단일 큐비트 할당 행렬을 추정합니다. 이를 위해 Qubit 레지스터를 전체 영 상태 과 전체 일 상태 에 반복적으로 준비하고, 각 Qubit가 잘못 읽힐 확률을 기록합니다.
-
3차 이상의 상관관계는 무시할 수 있다고 가정하고 무시합니다.
대신 개의 단일 큐비트 할당 행렬과 개의 2-Qubit 할당 행렬을 구성합니다. 이 1- 및 2-Qubit 할당 행렬은 나중에 사용하기 위해 저장됩니다.
-
를 구성하기 위해 Circuit을 반복적으로 샘플링한 후, 를 구성할 때 샘플링된 비트열만을 사용하여 에 대한 유효한 근사를 구성합니다. 이 유효 행렬은 이전 항목에서 설명한 1- 및 2-Qubit 행렬을 사용하여 구축됩니다. 이 행렬의 선형 차원은 최대 를 구성할 때 사용된 샷 수의 차수이며, 이는 전체 할당 행렬 의 차원 보다 훨씬 작습니다.
M3에 대한 기술적 세부 사항은 양자 컴퓨터에서의 측정 오류의 확장 가능한 완화를 참조할 수 있습니다.
양자 알고리즘에 M3 적용
우리는 숨겨진 이동 문제에 M3의 판독 완화를 적용할 것입니다. 숨겨진 이동 문제와 밀접하게 관련된 숨겨진 부분군 문제는 원래 내결함성 설정에서 고안되었습니다(더 정확히 말하면, 내결함성 QPU가 가능하다는 것이 증명되기 전에!). 하지만 현재 사용 가능한 프로세서로도 연구되고 있습니다. 127-큐비트 IBM® QPU에서 숨겨진 이동 문제의 변형에 대해 알고리즘적 지수 속도 향상을 얻은 예는 이 논문 (arXiv 버전)에서 찾을 수 있습니다.
이하에서, 모든 산술은 불리언입니다. 즉, 에 대해, 덧셈 는 논리 XOR 함수입니다. 또한, 곱셈 (또는 )는 논리 AND 함수입니다. 에 대해, 는 비트 단위 XOR 적용으로 정의됩니다. 내적 는 로 정의됩니다.
아다마르 연산자와 푸리에 변환
양자 알고리즘을 구현할 때 아다마르 연산자를 푸리에 변환으로 사용하는 것은 매우 일반적입니다. 계산 기저 상태는 때때로 _고전 상태_라고 불립니다. 이들은 고전 비트열과 일대일 대응 관계에 있습니다. 고전 상태에 대한 -Qubit 아다마르 연산자는 불리언 하이퍼큐브에 대한 푸리에 변환으로 볼 수 있습니다:
고정 비트열 에 해당하는 상태 를 고려 해 봅시다. 을 적용하고, 를 사용하면, 의 푸리에 변환을 다음과 같이 쓸 수 있습니다
아다마르는 자신의 역원, 즉 입니다. 따라서, 역 푸리에 변환은 동일한 연산자 입니다. 명시적으로 나타내면,
숨겨진 이동 문제
우리는 _숨겨진 이동 문제_의 간단한 예를 고려합니다. 문제는 함수의 입력에서 일정한 이동을 식별하는 것입니다. 우리가 고려하는 함수는 내적입니다. 이것은 숨겨진 이동 문제에 대해 아래에서 제시하는 것과 유사한 기법을 통해 양자 속도 향상을 허용하는 대형 함수 집합의 가장 단순한 구성원입니다.
을 길이 의 비트열이라 합시다. 을 다음과 같이 정의합니다
을 길이 의 고정된 비트열이라 합시다. 또한 을 다음과 같이 정의합니다
여기서 와 는 (숨겨진) 파라미터입니다. 를 구현하는 블랙박스와 를 구현하는 블랙박스, 두 개가 주어집니다. 우리는 이들이 위에서 정의한 함수를 계산한다는 것은 알지만, 도 도 알지 못한다고 가정합니다. 목표는 와 에 쿼리하여 숨겨진 비트열(이동) 와 를 결정하는 것입니다. 이 게임을 고전적으로 플레이하면 와 를 결정하기 위해 번의 쿼리가 필요합니다. 예를 들어, 한 원소가 전체 0이고 다른 원소가 정확히 하나의 원소가 인 쌍의 모든 문자열 쌍으로 에 쿼리할 수 있습니다. 각 쿼리에서 또는 의 하나의 원소를 알 수 있습니다. 그러나 블랙박스가 양자 Circuit으로 구현된다면 와 각각에 단 한 번의 쿼리로 와 를 결정할 수 있습니다.
알고리즘 복잡도의 맥락에서, 블랙박스를 _오라클_이라고 합니다. 불투명하다는 것 외에도, 오라클은 입력을 받아 출력을 즉시 생성하여 그것이 내장된 알고리즘의 복잡도 예산에 아무것도 추가하지 않는 특성이 있습니다. 실제로, 우리의 경우 와 를 구현하는 오라클은 효율적임을 알 수 있습니다.
와 를 위한 Quantum Circuit
와 를 양자 Circuit으로 구현하기 위해 다음 재료가 필요합니다.
단일 큐비트 고전 상태 ()에 대해, 제어- Gate 는 다음과 같이 쓸 수 있습니다
에 하나, 에 하나, 이런 식으로 까지 개의 CZ Gate로 작동합니다. 우리는 이 연산자를 라고 부릅니다.
는 의 양자 버전입니다:
비트열 이동도 구현해야 합니다. 레지스터에 대한 연산자 을 로, 마찬가지로 레지스터에 대해 으로 표기합니다. 이 연산자는 단일 비트가 인 곳에 를 적 용하고, 인 곳에 항등원 를 적용합니다. 그러면 다음을 얻습니다
두 번째 블랙박스 는 유니타리 로 구현됩니다:
이를 확인하기 위해, 상태 에 연산자를 오른쪽에서 왼쪽으로 적용합니다. 먼저