Quantum Machine Learning
양자 머신러닝(QML)은 고전적 최적화 알고리즘을 사용해 매개변수화된 양자 회로와 양자 커널을 학습합니다. 작동 방식과 현재 상황을 살펴봅니다.
양자 머신러닝(QML)은 양자 컴퓨터를 머신러닝 작업에 적용합니다. 가장 흔한 방법은 게이트 각도가 모델 가중치 역할을 하는 파라미터화된 양자 회로를 학습하거나, 양자 프로세서로 커널 기법의 유사도를 계산하는 것입니다. n개 큐비트 레지스터는 2^n개의 복소 진폭으로 표현되므로 작은 회로도 매우 큰 벡터를 변환하지만, 측정 결과는 무작위 비트 문자열 하나뿐입니다. 따라서 모델에 필요한 모든 양은 샷이라고 부르는 반복 실행을 다수 수행해 추정해야 합니다. 이 분야에는 양자 실험에서 얻은 데이터에 고전적 학습을 적용하는 방법도 포함됩니다. Jacob Biamonte, Seth Lloyd와 동료들은 2017년 Nature 리뷰에서 양방향을 모두 개괄했습니다.
변분 양자 회로#
현재 하드웨어에서 수행하는 QML은 대부분 하이브리드 방식입니다. 고전 컴퓨터가 각 입력을 회전 각도로 인코딩하고, 양자 프로세서가 회전 게이트와 얽힘 게이트로 구성된 파라미터화된 회로를 실행합니다. 측정한 기대값은 고전적인 손실 함수에 입력되며, 고전적인 최적화 알고리즘이 이를 최소화합니다. 흔히 일반적인 경사 하강법을 사용합니다. 이 모델은 고전 신경망의 학습 가능한 계층에서 착안해 양자 신경망이라고도 합니다. 같은 루프는 분자 바닥 상태 에너지를 추정하기 위해 2014년에 소개된 변분 양자 고유값 해법(VQE)과 양자 최적화가 대상으로 삼는 조합 문제를 위한 변분 알고리즘 QAOA에도 사용됩니다.
역전파는 양자 프로세서 내부를 들여다볼 수 없으므로, 그래디언트는 파라미터 시프트 규칙으로 구합니다. 회전 게이트의 경우 기대값의 정확한 도함수는 각도를 +π/2와 -π/2만큼 이동해 실행한 결과 간 차이의 절반과 같습니다. NumPy로 2큐비트 분류기를 시뮬레이션하면 전체 루프를 확인할 수 있습니다.
import numpy as np
rng = np.random.default_rng(0)
x = rng.uniform(-np.pi, np.pi, size=(100, 2)) # 100 points with 2 features each
y = np.sign(np.cos(x[:, 0] - 1.0) * np.cos(x[:, 1] + 0.5)) # XOR-like labels
def circuit(features, theta):
"""Simulate RY encoding, trainable RY rotations, and a CNOT on 2 qubits, then return <Z> of qubit 2."""
half = (features + theta) / 2 # RY(theta) after RY(x) is one rotation by x + theta
state = np.kron([np.cos(half[0]), np.sin(half[0])], [np.cos(half[1]), np.sin(half[1])])
state = state[[0, 1, 3, 2]] # CNOT flips qubit 2 when qubit 1 is |1>
return state @ np.diag([1, -1, 1, -1]) @ state
theta = np.zeros(2)
for _ in range(100):
errors = np.array([circuit(xi, theta) for xi in x]) - y
for i in range(2): # parameter-shift rule: an exact gradient from two extra circuit runs
shift = np.eye(2)[i] * np.pi / 2
slopes = np.array([(circuit(xi, theta + shift) - circuit(xi, theta - shift)) / 2 for xi in x])
theta[i] -= 0.5 * np.mean(errors * slopes)
accuracy = np.mean([np.sign(circuit(xi, theta)) == yi for xi, yi in zip(x, y)])
print(f"theta = {theta.round(2)}, accuracy = {accuracy:.2f}")코드는 theta = [-0.99 0.4 ], accuracy = 0.97을 출력합니다. 회로는 라벨 생성에 사용된 -1.0과 0.5에 가까운 각도 오프셋을 학습하고 점의 97%를 올바르게 분류합니다. CNOT은 두 번째 큐비트의 기대값을 인코딩된 두 코사인의 곱으로 만듭니다. 이 게이트가 없으면 해당 큐비트는 두 번째 특징만 처리합니다. 실제 하드웨어에서는 각 기대값을 수천 회 샷의 평균으로 계산합니다. PennyLane, Qiskit Machine Learning, TensorFlow Quantum은 시뮬레이터와 실제 양자 프로세서 접근 기능을 통해 동일한 빌딩 블록을 제공합니다.
양자 커널과 하이브리드 모델#
양자 커널은 고정된 인코딩 회로를 사용해 두 입력을 양자 상태로 매핑하고 중첩도를 추정한 다음, 이를 고전 서포트 벡터 머신(SVM)의 유사도로 사용합니다. IBM의 Vojtěch Havlíček와 동료들은 2019년 Nature 논문에서 초전도 프로세서를 사용해 이 방식을 시연했습니다. 실제 데이터는 사용 가능한 큐비트보다 훨씬 많은 특징을 가지므로, 파이프라인은 먼저 주성분 분석(PCA)이나 사전 학습된 네트워크로 입력을 압축합니다. Xanadu의 Andrea Mari와 동료들은 2020년에 이러한 전이 학습 방식을 사용해 사전 학습된 ResNet-18의 특징을 4큐비트 변분 회로에 전달하여 이미지 분류를 수행했습니다.
양자 우위의 현황#
가장 명확한 이점은 양자 데이터에서 나타납니다. 2022년 Caltech와 Google Quantum AI의 Hsin-Yuan Huang과 동료들은 Google Sycamore 프로세서에서 최대 40개의 초전도 큐비트와 1,300개의 양자 게이트를 사용했습니다. 이들은 양자 상태를 저장하고 양자 컴퓨터에서 처리하는 학습기가 각 사본을 개별적으로 측정하는 학습기보다 훨씬 적은 실험으로 양자 시스템의 특성을 학습할 수 있음을 보였습니다.
고전 데이터에서의 속도 향상은 아직 확실히 정립되지 않았습니다. 초기 제안은 선형 시스템을 위한 2009년 HHL 알고리즘을 기반으로 했으며, 이 알고리즘은 양자 메모리에 이미 저장된 희소하고 조건수가 양호한 입력을 필요로 하고, 2018년 Ewin Tang은 양자 추천 시스템에서 주장되었던 지수적 속도 향상을 무효화하는 양자에서 영감을 얻은 고전 알고리즘을 발견했습니다. 학습 과정에서는 2018년 Jarrod McClean과 동료들이 규명한 배런 플래토 현상이 나타납니다: 무작위로 초기화된 많은 회로에서 큐비트 수가 증가함에 따라 그래디언트가 지수적으로 감소하며, 이는 기울기 소실 문제의 양자적 대응 현상으로 필요한 샷 수도 지수적으로 증가합니다. 오늘날의 프로세서는 John Preskill이 2018년에 잡음이 있는 중간 규모 양자(NISQ) 장치라고 부른 기기로, 게이트 오류가 회로 깊이를 제한합니다.
데이터 로딩도 추가적인 병목입니다. Ultralytics YOLO26의 기본 입력 크기인 640 x 640 RGB 이미지 하나에는 값이 1,228,800개 포함됩니다. 진폭 인코딩을 사용하면 이를 21큐비트에 담을 수 있지만, 임의의 21큐비트 상태를 준비하려면 2²¹에 따라 증가하는 수의 게이트가 필요합니다. 이는 CPU가 픽셀을 읽는 데 필요한 연산량과 비슷합니다.










