양자 상태 단층 촬영: 밀도 행렬의 실험적 재구성
양자 상태 단층 촬영(Quantum State Tomography, QST)은 미지의 양자 상태를 완전히 기술하는 밀도 행렬을 실험적 측정으로 재구성하는 방법론이다. 단일 측정만으로는 양자 상태를 완전히 결정할 수 없으므로, 정보적으로 완비된(informationally complete) 측정 집합과 통계적 추정 기법을 결합하여 밀도 행렬을 복원한다. QST는 양자 컴퓨터 검증, 양자 채널 특성화 등 다양한 양자 정보 처리 분야의 핵심 진단 도구로 활용된다.
개념 소개
고전 물리에서 입자의 상태는 위치와 운동량으로 완전히 기술되며, 원칙적으로 단 한 번의 정밀 측정으로 결정할 수 있다. 그러나 양자 역학에서는 측정 행위 자체가 상태를 붕괴시키고, 하나의 관측량에 대한 측정이 다른 관측량의 정보를 훼손한다. 따라서 미지의 양자 상태 를 완전히 파악하려면 동일하게 준비된 앙상블(ensemble) 을 여러 기저(basis)에서 반복 측정해야 한다.
이 과정을 양자 상태 단층 촬영(QST) 이라 부른다. 의료 분야의 CT 촬영이 다양한 각도에서 X선을 조사하여 3차원 구조를 재구성하듯, QST도 다양한 측정 기저에서 얻은 통계를 종합하여 양자 상태의 완전한 수학적 표현—밀도 행렬—을 복원한다.
핵심 원리
밀도 행렬과 자유도
-큐비트 시스템의 밀도 행렬 는 에르미트 양반정치(positive semidefinite) 행렬이며 을 만족한다. 실질적인 자유도(독립 실수 파라미터)의 수는
이다. 단일 큐비트()의 경우 3개, 2-큐비트()의 경우 15개의 실수 파라미터가 필요하다.
파울리 기저 전개
단일 큐비트 밀도 행렬은 파울리 연산자 를 기저로 삼아
로 전개된다. 여기서 블로흐 벡터 성분 은 각 파울리 연산자의 기댓값에 해당한다. -큐비트 시스템으로 확장하면 개의 파울리 텐서 곱으로 기저를 구성한다.
측정 확률과 본 규칙
POVM(Positive Operator-Valued Measure) 원소 에 대해 측정 결과 이 나올 확률은 Born 규칙에 의해
로 주어진다. 실험에서는 각 설정(setting)마다 회 측정을 수행하여 상대 빈도 을 추정한다.
선형 역변환(Linear Inversion)
측정 결과 벡터 와 밀도 행렬 벡터 의 관계를 행렬 방정식
로 쓸 수 있다. 측정 집합이 정보적으로 완비된 경우 행렬 는 역행렬을 가지므로
로 밀도 행렬을 복원할 수 있다. 그러나 유한 샘플 통계 오류로 인해 복원된 행렬이 양반정치 조건을 위반하는 경우가 생긴다.
최대 우도 추정(Maximum Likelihood Estimation, MLE)
물리적으로 유효한 밀도 행렬을 보장하기 위해 MLE를 사용한다. 측정 데이터 에 대한 로그-우도 함수는
이며, 다음 제약 조건 하에서 최대화한다.
실용적으로는 형태(Cholesky 분해)로 파라미터화하여 제약 조건을 자동으로 만족시키면서 수치 최적화를 수행한다.
예시·응용
단일 큐비트 QST: Python 예시
아래 코드는 Qiskit을 이용하여 단일 큐비트 상태 에 대해 세 가지 파울리 기저 측정을 시뮬레이션하고 밀도 행렬을 선형 역변환으로 추정한다.
import numpy as np
from qiskit import QuantumCircuit
from qiskit_aer import AerSimulator
from qiskit.quantum_info import state_fidelity, DensityMatrix
simulator = AerSimulator()
SHOTS = 8192
def measure_pauli(basis: str) -> float:
"""파울리 기저 측정 후 기댓값 반환 (Z 기저 기준)"""
qc = QuantumCircuit(1, 1)
qc.h(0) # |+> 준비
if basis == 'X':
qc.h(0) # X 기저로 변환
elif basis == 'Y':
qc.sdg(0); qc.h(0) # Y 기저로 변환
qc.measure(0, 0)
job = simulator.run(qc, shots=SHOTS)
counts = job.result().get_counts()
p0 = counts.get('0', 0) / SHOTS
p1 = counts.get('1', 0) / SHOTS
return p0 - p1 # <P> = p(0) - p(1)
rx = measure_pauli('X')
ry = measure_pauli('Y')
rz = measure_pauli('Z')
# 밀도 행렬 재구성
I = np.eye(2)
X = np.array([[0,1],[1,0]])
Y = np.array([[0,-1j],[1j,0]])
Z = np.array([[1,0],[0,-1]])
rho_est = 0.5 * (I + rx*X + ry*Y + rz*Z)
# 이론값과 충실도 비교
rho_true = DensityMatrix.from_label('+')
fidelity = state_fidelity(rho_est, rho_true.data)
print(f"Bloch 벡터: ({rx:.3f}, {ry:.3f}, {rz:.3f})")
print(f"상태 충실도(Fidelity): {fidelity:.4f}")
실험적 고려 사항
- 샘플 복잡도: 큐비트 수 에 따라 측정 설정 수가 으로 지수 증가하므로, 대규모 시스템에는 압축 센싱(compressed sensing) 기반 QST나 신경망 QST가 활용된다.
- SPAM 오류: 상태 준비(State Preparation) 및 측정(Measurement) 오류가 재구성 정확도에 직접 영향을 미친다. 이를 분리하려면 게이트 집합 단층 촬영(Gate Set Tomography)으로 확장한다.
- 충실도(Fidelity): 재구성된 의 품질은 이론 상태 와의 충실도 으로 정량화한다.
정리
양자 상태 단층 촬영은 밀도 행렬의 개 파라미터를 정보적으로 완비된 측정 집합으로 결정하는 절차다. 선형 역변환은 계산이 간단하지만 물리적 유효성을 보장하지 않으며, MLE는 이 문제를 제약 최적화로 해결한다. 시스템 규모가 커질수록 측정 자원이 지수적으로 증가하므로, 현실적인 대규모 양자 시스템에는 구조적 사전 지식(희소성, 저랭크 등)을 활용하는 효율적 QST 기법이 필수적이다.
연습문제
Q1.단일 큐비트 상태 $\rho$에 대해 Z 기저 측정만 무한히 반복했을 때, $\rho$를 완전히 결정할 수 있는가? 그 이유를 밀도 행렬의 자유도와 연결하여 설명하라.
힌트 보기
단일 큐비트 밀도 행렬의 파라미터 수와 Z 기저 측정이 제공하는 정보량을 비교해보라.
해설 보기
결정할 수 없다. 단일 큐비트 밀도 행렬은 블로흐 벡터 $(r_x, r_y, r_z)$로 기술되는 3개의 실수 자유도를 갖는다. Z 기저 측정은 $\langle Z \rangle = r_z$ 하나만 결정하므로 $r_x$와 $r_y$는 여전히 미지수로 남는다. 상태를 완전히 결정하려면 최소한 X, Y, Z 세 가지 기저 측정이 모두 필요하다.
Q2.2-큐비트 시스템의 QST를 수행하려면 최소 몇 개의 독립 측정 설정이 필요한가? 또한 총 실수 파라미터 수를 유도하라.
해설 보기
2-큐비트 시스템의 힐버트 공간 차원은 $d = 2^2 = 4$이다. 밀도 행렬의 독립 실수 파라미터 수는 $d^2 - 1 = 16 - 1 = 15$이다. 파울리 텐서 곱 기저 $\{I,X,Y,Z\}^{\otimes 2}$에서 항등 연산자를 제외하면 $4^2 - 1 = 15$개의 관측량이 필요하며, 각 관측량에 대해 1개의 측정 설정(기저 변환 후 Z 측정)이 대응하므로 최소 **15개**의 측정 설정이 필요하다. 단, 일부 파울리 연산자는 같은 기저 설정에서 동시 측정이 가능하므로 실제 설정 수는 더 줄어들 수 있다.
Q3.MLE에서 밀도 행렬을 $\rho = T^\dagger T / \text{Tr}(T^\dagger T)$로 파라미터화하는 방식이 양반정치 조건을 자동으로 만족시키는 이유를 설명하라.
해설 보기
임의의 복소 행렬 $T$에 대해 $T^\dagger T$는 항상 양반정치 행렬이다. 임의의 벡터 $|v\rangle$에 대해 $\langle v | T^\dagger T | v \rangle = \|T|v\rangle\|^2 \geq 0$이 항상 성립하기 때문이다. 또한 $\text{Tr}(T^\dagger T) > 0$으로 정규화하면 트레이스가 1이 된다. 따라서 이 파라미터화는 최적화 변수 $T$가 어떤 값을 취하더라도 $\rho$가 $\rho \geq 0$, $\text{Tr}(\rho)=1$을 자동으로 만족하게 해, 제약 없는(unconstrained) 수치 최적화가 가능하다.