@me가져온 글 · 사람 검토

NISQ 시대 오류와 보정

NISQ 장비는 큐비트 수가 제한되고 오류정정이 완전하지 않은 장비입니다. 실사용에서는 알고리즘 수식보다 오류가 어떻게 결과를 흐리는지 먼저 봐야 합니다.

## NISQ란 무엇인가 {#nisq}

NISQ는 noisy intermediate-scale quantum의 약자입니다. 핵심은 “실제 양자장비는 존재하지만, 긴 회로를 안정적으로 돌릴 만큼 오류정정이 충분하지 않다”는 뜻입니다. 따라서 NISQ 실험은 보통 아래 질문에서 시작합니다.

- 내 회로가 너무 깊지 않은가?
- 2큐비트 게이트가 너무 많지 않은가?
- 측정 오류가 결과 분포를 얼마나 바꾸는가?
- 같은 회로를 여러 번 실행했을 때 통계적으로 의미 있는 차이가 보이는가?

## 오류 종류 {#error-types}

| 오류 | 의미 | 실무 영향 |
| --- | --- | --- |
| readout error | 측정값 0/1이 잘못 읽힘 | 최종 bitstring 분포가 섞임 |
| 1Q gate error | 단일 큐비트 회전이 이상적으로 안 됨 | 작지만 많이 쌓이면 결과가 흐려짐 |
| 2Q gate error | CX/CZ 같은 얽힘 게이트 오류 | NISQ 회로의 주된 병목 |
| decoherence | 시간이 지나며 상태가 환경과 얽혀 정보 손실 | 긴 회로, idle time에 취약 |
| crosstalk | 한 큐비트 조작이 다른 큐비트에 영향 | 병렬 실행과 배치에 따라 결과 변동 |

## Depth가 커지면 생기는 문제 {#depth}

회로 depth는 병렬 실행을 고려한 시간 단계 수입니다. depth가 커진다는 것은 큐비트가 더 오래 coherence를 유지해야 하고, 더 많은 gate error와 idle error를 견뎌야 한다는 뜻입니다.

특히 NISQ에서는 “수학적으로 같은 유니터리”라도 짧은 회로와 긴 회로의 결과가 다릅니다. 긴 회로는 아래 문제가 함께 커집니다.

- 게이트 수 증가로 오류가 누적됩니다.
- 큐비트가 대기하는 idle time이 늘어납니다.
- routing SWAP이 추가되어 2큐비트 게이트가 늘어납니다.
- decoherence 시간 $T_1,T_2$에 가까워지면 상태 정보가 흐려집니다.
- 긴 실행 중 calibration drift가 결과에 영향을 줄 수 있습니다.

따라서 NISQ 실험에서 회로 최적화는 미적 취향이 아니라 생존 조건입니다. depth를 줄이는 것은 단순히 빠르게 실행한다는 뜻이 아니라, 양자상태가 망가지기 전에 계산을 끝낸다는 뜻입니다.

## 간단한 오류 모델 {#simple-model}

게이트마다 독립적으로 작은 오류율 $p_g$가 있다고 아주 거칠게 보면 성공확률은 아래처럼 줄어듭니다.

$$
P_{\mathrm{success}}\approx \prod_g(1-p_g)\approx e^{-\sum_g p_g}
$$

이 식은 실제 장비를 정확히 설명하지는 않지만, 왜 gate count와 depth를 줄여야 하는지 감각을 줍니다. 오류율이 0.1%라도 게이트가 수천 개면 전체 결과는 크게 망가질 수 있습니다.

## 대표 noise channel {#noise-channels}

오류를 수학적으로 볼 때는 noise channel을 사용합니다. 실제 하드웨어 noise는 더 복잡하지만, 아래 모델들은 문제 지점을 이해하는 기본 언어입니다.

| 모델 | 간단한 의미 | 문제 지점 | 완화 감각 |
| --- | --- | --- | --- |
| bit flip | $\|0\rangle\leftrightarrow \|1\rangle$ 뒤집힘 | 계산기저 결과가 반대로 읽힘 | 반복 측정, readout mitigation, bit-flip code, 오류정정 |
| phase flip | $\|1\rangle$ 성분에 부호 변화 | 측정 전 간섭 패턴이 망가짐 | echo, dynamical decoupling, phase calibration, phase-flip code |
| depolarizing | 상태가 무작위 Pauli 오류와 섞임 | Bloch vector가 원점 쪽으로 줄어듦 | gate 수 감소, noise-aware transpilation, error mitigation |
| $T_1$ | 에너지 이완, excited state가 ground로 내려감 | $\|1\rangle$ 정보가 시간에 따라 사라짐 | 회로 시간 단축, reset/calibration, 좋은 큐비트 선택 |
| $T_2$ | 위상 coherence 손실 | 중첩의 상대위상이 흐려짐 | echo, dynamical decoupling, idle time 감소 |

## Bit flip과 phase flip {#bit-phase}

bit flip은 Pauli $X$ 오류로 볼 수 있습니다.

$$
X(\alpha|0\rangle+\beta|1\rangle)
=
\beta|0\rangle+\alpha|1\rangle
$$

이 오류는 계산기저 측정에서 비교적 직관적입니다. 0이어야 할 결과가 1로, 1이어야 할 결과가 0으로 나옵니다. 완화는 readout calibration, 반복 측정, majority vote, 오류정정 code로 접근합니다.

phase flip은 Pauli $Z$ 오류입니다.

$$
Z(\alpha|0\rangle+\beta|1\rangle)
=
\alpha|0\rangle-\beta|1\rangle
$$

계산기저로 바로 측정하면 phase flip이 안 보일 수 있습니다. 하지만 Hadamard 뒤 간섭을 이용하는 알고리즘에서는 치명적입니다. Deutsch-Jozsa, Bernstein-Vazirani, Grover 같은 알고리즘은 부호와 위상 간섭을 쓰므로 phase error가 곧 정답 진폭을 흐리는 원인이 됩니다.

## Depolarizing noise {#depolarizing}

depolarizing noise는 상태가 일정 확률로 완전히 섞인 상태 쪽으로 이동하는 모델입니다.

$$
\mathcal{E}(\rho)
=(1-p)\rho+p{I\over2}
$$

다중 큐비트에서는 Pauli 오류가 무작위로 섞인 형태로 생각할 수 있습니다. 이 모델은 실제 장비의 모든 세부를 설명하지는 않지만, 회로가 길어질수록 결과가 “특정 답”이 아니라 “균등분포” 쪽으로 밀리는 현상을 이해하는 데 유용합니다.

완화는 특정 마법 한 방이 아니라 회로 단축, 좋은 layout 선택, 2큐비트 게이트 감소, noise model 기반 simulator 비교, readout mitigation과 ZNE를 함께 쓰는 식으로 접근합니다.

## T1과 T2 {#t1t2}

$T_1$은 에너지 이완 시간입니다. 큐비트가 $|1\rangle$ 같은 높은 에너지 상태에 있다가 환경으로 에너지를 잃고 $|0\rangle$ 쪽으로 내려가는 시간척도입니다.

$T_2$는 위상 coherence가 유지되는 시간입니다. 상태가 $(|0\rangle+|1\rangle)/\sqrt2$처럼 중첩에 있을 때, 두 성분의 상대위상이 얼마나 오래 의미를 갖는지를 나타냅니다.

$$
{1\over T_2}\approx {1\over 2T_1}+{1\over T_\phi}
$$

여기서 $T_\phi$는 순수 dephasing 성분입니다. 실무적으로는 회로 실행 시간이 $T_1,T_2$에 비해 충분히 짧아야 합니다. 완화는 idle time 감소, dynamical decoupling, echo pulse, 더 짧은 transpiled circuit, coherence가 좋은 큐비트 선택입니다.

## 측정 보정 {#readout}

readout error는 calibration matrix로 보정하는 방식이 기본입니다. 한 큐비트에서 실제 상태와 측정 결과 사이를 아래 행렬로 근사합니다.

$$
M=
\begin{bmatrix}
P(0|0)&P(0|1)\\
P(1|0)&P(1|1)
\end{bmatrix}
$$

관측된 분포 $p_{\mathrm{obs}}$가 있으면 이상적인 분포를 대략 $M^{-1}p_{\mathrm{obs}}$로 되돌립니다. 큐비트 수가 많아지면 전체 calibration matrix가 커지므로, 독립 readout 가정이나 local mitigation을 사용합니다.

## ZNE {#zne}

Zero-noise extrapolation은 같은 회로를 일부러 더 noisy하게 실행한 뒤 noise가 0일 때의 값을 외삽합니다.

1. 원래 회로를 실행해 기대값 $E(\lambda)$를 얻습니다.
2. gate folding 등으로 noise scale을 $\lambda=1,3,5$처럼 키웁니다.
3. 값들을 fitting해 $\lambda=0$을 추정합니다.

단점은 shots가 더 필요하고, noise가 scale된다는 가정이 맞아야 한다는 점입니다.

## PEC {#pec}

Probabilistic error cancellation은 noisy operation을 이상적 operation들의 quasi-probability 조합으로 보정하는 생각입니다. 이론적으로 강하지만 sampling overhead가 커질 수 있습니다.

$$
\mathcal{U}\approx \sum_i q_i\mathcal{N}_i,
\qquad \sum_i |q_i|>1
$$

계수의 절댓값 합이 커질수록 필요한 shots가 늘어납니다. 그래서 작은 회로와 잘 characterizing된 noise에서 더 현실적입니다.

## 현시점 하드웨어 접근들 {#hardware}

양자컴퓨터를 만드는 방식은 하나가 아닙니다. 아래는 실사용 문맥에서 알아두면 좋은 대표 접근입니다. 이 표는 투자나 성능 순위가 아니라, 오류와 보정 전략이 왜 플랫폼마다 달라지는지 이해하기 위한 개요입니다.

| 접근 | 대표 플레이어 | 핵심 아이디어 | 주요 과제 |
| --- | --- | --- | --- |
| 초전도 큐비트 | Google Quantum AI, IBM Quantum, Rigetti 등 | 극저온 회로에서 인공 원자처럼 동작하는 큐비트를 만들고 빠른 microwave gate를 사용 | coherence, crosstalk, 배선/냉각, surface code 기반 오류정정 overhead |
| 트랩 이온 | IonQ, Quantinuum 등 | 진공 속 이온의 내부 상태를 큐비트로 쓰고 레이저로 제어 | 게이트 속도, 레이저/광학 제어, 많은 이온을 확장하는 architecture |
| 중성 원자 | QuEra, Pasqal 등 | 광 tweezer로 원자를 배열하고 Rydberg 상호작용으로 얽힘 생성 | 개별 제어, readout, 오류정정 회로화, gate fidelity |
| 광자 | Xanadu 등 | 빛의 모드와 측정을 이용해 계산 | loss, deterministic entangling gate, 대규모 feed-forward |
| 양자 어닐링 | D-Wave 등 | 게이트 모델이 아니라 Ising/QUBO 최적화 문제를 물리계 에너지 최소화로 풂 | 범용 게이트 모델과 다름, embedding overhead, 문제 적합성 |

Google과 IBM 같은 초전도 계열은 surface code류 오류정정을 통해 물리 큐비트 여러 개로 logical qubit을 만드는 방향을 강하게 밀고 있습니다. 사용자가 말한 “오차를 역방향으로 상쇄”한다는 감각은 error mitigation에서는 ZNE/PEC처럼 관측값을 보정하는 방향이고, fault-tolerant quantum computing에서는 오류 syndrome을 측정해 logical information을 보호하는 방향으로 이해하면 됩니다.

IonQ와 Quantinuum 같은 trapped-ion 계열은 긴 coherence와 높은 연결성을 장점으로 내세웁니다. 대신 레이저 제어, 이온 이동, 모듈화 같은 확장 문제가 중요합니다. 플랫폼마다 강점과 병목이 다르기 때문에, 같은 회로라도 어떤 하드웨어에서 실행하느냐에 따라 좋은 설계가 달라집니다.

## 실험 워크플로우 {#workflow}

1. 먼저 simulator에서 이상적 결과를 확인한다.
2. transpilation 후 depth, 2Q count, layout을 기록한다.
3. hardware 또는 noise model에서 raw result를 얻는다.
4. readout mitigation을 적용한다.
5. 가능하면 ZNE 등으로 기대값 보정을 시도한다.
6. raw와 mitigated 결과를 둘 다 보관한다.