Yangja Wiki / 회로설계이론

QSVT 오차 줄이기

QSVT의 오차는 하나가 아닙니다. polynomial 근사 오차, block-encoding 오차, phase synthesis 오차, 하드웨어 게이트 오차가 모두 합쳐집니다.

오차의 출처

오차원의미
approximation error목표 함수 f와 polynomial p의 차이
block-encoding error입력 block-encoding이 정확히 A/\alpha가 아닌 정도
phase synthesis errorQSP phase sequence를 수치적으로 구하거나 게이트로 합성할 때의 오차
implementation error실제 1Q/2Q 게이트 잡음, crosstalk, decoherence

근사 오차 줄이기

가장 먼저 할 일은 근사 구간을 정확히 줄이는 것입니다.

$$
\max_{x\in D}|f(x)-p(x)|\le \epsilon
$$

스펙트럼이 실제로 D보다 작은 구간에 있다면, 불필요하게 넓은 구간에서 근사할 필요가 없습니다. 구간이 넓고 함수가 급격하면 더 높은 degree가 필요합니다.

특히 1/x, sign, step function은 0 또는 불연속점 근처에서 어렵습니다. 이때는 gap을 둡니다.

$$
x\in[-1,-\Delta]\cup[\Delta,1]
$$

\Delta가 작을수록 필요한 polynomial degree가 커집니다.

degree를 올리는 것의 비용

QSVT에서는 polynomial degree가 block-encoding 호출 횟수와 거의 직접 연결됩니다.

$$
\text{queries}\sim d
$$

오차를 줄이려고 degree를 올리면 회로가 길어지고, 하드웨어 오차가 늘어납니다. 따라서 fault-tolerant 문맥에서는 degree를 올리는 것이 자연스럽지만, NISQ 문맥에서는 이론 오차 감소가 실제 성공확률 증가로 이어지지 않을 수 있습니다.

rescaling과 normalization

block-encoding이 A/\alpha를 담고 있다면 QSVT가 보는 값은 A가 아니라 A/\alpha입니다. \alpha가 너무 크면 singular value들이 0 근처로 몰려 polynomial 근사가 어려워질 수 있습니다.

좋은 block-encoding은 단순히 가능한 block-encoding이 아니라 normalization이 작고 구현 비용이 낮은 block-encoding입니다. LCU 표현에서 \alpha=\sum_\ell|\alpha_\ell|를 줄이는 것이 중요한 이유입니다.

Fixed-point amplification

일반 amplitude amplification은 overshooting 문제가 있습니다. QSVT polynomial 설계에서는 fixed-point 형태의 증폭 polynomial을 만들어 특정 구간에서 단조롭게 성공확률을 키우는 방법을 쓸 수 있습니다.

아이디어는 “원하는 singular value 구간은 1에 가깝게, 원하지 않는 구간은 0에 가깝게” 보내는 filter polynomial을 설계하는 것입니다.

$$
p(x)\approx
\begin{cases}
0 & x\in \text{reject band}\\
1 & x\in \text{accept band}
\end{cases}
$$

accept/reject 사이에는 transition band를 둡니다. transition band를 너무 좁히면 degree가 커집니다.

phase synthesis 오차

QSP phase sequence \Phi는 보통 수치 알고리즘으로 구합니다. phase가 조금 틀리면 구현 polynomial도 바뀝니다.

$$
\Phi\to\Phi+\delta\Phi
\quad\Rightarrow\quad
p(x)\to p(x)+\delta p(x)
$$

실무적으로는 phase 합성 후 실제로 구현되는 polynomial을 다시 샘플링해 \|f-p\|_\infty를 확인해야 합니다. 긴 degree에서는 phase sensitivity와 수치 안정성이 문제가 될 수 있습니다.

오차 예산 나누기

전체 목표 오차가 \epsilon이면 한 항목에 전부 몰아주지 않고 예산을 나눕니다.

$$
\epsilon_{\mathrm{total}}
\lesssim
\epsilon_{\mathrm{poly}}
+d\,\epsilon_{\mathrm{block}}
+\epsilon_{\mathrm{phase}}
+\epsilon_{\mathrm{hardware}}
$$

여기서 d\,\epsilon_{\mathrm{block}} 항은 block-encoding을 여러 번 호출하기 때문에 생기는 거친 감각입니다. 정확한 bound는 회로와 norm 정의에 따라 다르지만, “작은 block-encoding 오차도 반복 호출되면 커진다”는 점은 반드시 기억해야 합니다.

실전 체크리스트

  1. 스펙트럼 구간을 실제보다 과하게 넓게 잡지 않는다.
  2. gap이 필요한 함수는 gap을 명시한다.
  3. degree를 올렸을 때 block-encoding 호출 수가 감당되는지 확인한다.
  4. normalization \alpha를 줄일 수 있는 LCU 표현을 찾는다.
  5. phase sequence를 합성한 뒤 polynomial을 다시 검증한다.
  6. NISQ에서는 이론 오차보다 회로 깊이 감소가 더 중요할 수 있음을 별도 기록한다.