
パラメータシフト則をQiskitで実装|量子回路の"勾配"を正確に求める
2026-08-30 ・ 実践
VQEやQAOA、量子機械学習は「パラメータ付き回路を最適化」します。その学習には**勾配(微分)**が必要ですが、量子回路には嬉しい性質があります——パラメータシフト則で勾配を"厳密に"求められるのです。この記事でQiskitに実装し、数値微分と比べて確かめます。
パラメータシフト則とは
回転ゲートのパラメータ θ に対する期待値の勾配は、θを ±π/2 ずらした2点の期待値の差で正確に求まります。
∂⟨H⟩/∂θ = ( ⟨H⟩(θ+π/2) − ⟨H⟩(θ−π/2) ) / 2
数値微分(有限差分)と違い、これは近似ではなく厳密なのがポイントです。
準備
pip install qiskit numpy
① 期待値を計算する関数
Ry(θ)をかけた1量子ビットで、観測量 Z の期待値を測ります(理論値は cos θ)。
import numpy as np
from qiskit import QuantumCircuit
from qiskit.quantum_info import Statevector, Pauli
def expectation(theta):
qc = QuantumCircuit(1)
qc.ry(theta, 0)
psi = Statevector(qc)
return np.real(psi.expectation_value(Pauli("Z")))
② パラメータシフト則 vs 数値微分
def grad_shift(theta):
return (expectation(theta + np.pi/2) - expectation(theta - np.pi/2)) / 2
def grad_numeric(theta, eps=1e-5):
return (expectation(theta + eps) - expectation(theta - eps)) / (2 * eps)
theta = 0.9
print("パラメータシフト:", round(grad_shift(theta), 6))
print("数値微分 :", round(grad_numeric(theta), 6))
print("厳密解 -sin(θ) :", round(-np.sin(theta), 6))
出力:
パラメータシフト: -0.783327
数値微分 : -0.783327
厳密解 -sin(θ) : -0.783327
期待値は cos θ なので勾配は −sin θ。パラメータシフト則は厳密解にピタリ一致します。数値微分も近いですが、こちらは刻み幅 eps に依存する近似です。
なぜ実機で重要か
数値微分は「わずかにずらす」ため、実機のノイズに埋もれて不安定になりがち。パラメータシフト則は ±π/2 という大きなずらしで済むので、ノイズに強く実機向き。だから変分量子アルゴリズムの標準手法です。
③ 勾配降下で最小化してみる
勾配がわかれば最適化できます。期待値 cos θ を最小(θ=π)に持っていきます。
theta = 0.3
for _ in range(50):
theta -= 0.5 * grad_shift(theta) # 勾配降下
print("最適 θ:", round(theta, 3), "(目標 π≈3.14)")
print("最小の期待値:", round(expectation(theta), 3))
θ が π に近づき、期待値が −1(最小)へ収束します。これが変分量子アルゴリズムの学習の中身です。
まとめ
- パラメータシフト則:勾配 = (θ+π/2 と θ−π/2 の期待値の差)/2
- 数値微分と違い厳密で、刻み幅に依存しない
- ±π/2 の大きなずらしなのでノイズに強く実機向き
- VQE・QAOA・量子機械学習の学習を支える基本手法
もう少し詳しく(背景と理論)
パラメータシフト則は Mitarai et al. (2018) と Schuld et al. (2019) が確立した、量子回路の勾配を厳密に求める公式です1。回転ゲート exp(−iθP/2)(P はパウリで固有値 ±1)に対し、勾配は θ を ±π/2 ずらした2つの期待値の差の半分になります。数値微分と違い刻み幅に依存しない一方、勾配1成分ごとに2回の回路評価が必要で、パラメータ数に比例して測定コストが増えます2。ゲートの生成子が固有値2値でない場合は、より一般化されたシフト則が必要になります3。これらは VQE・QAOA・量子機械学習の学習を支える基盤技術です。
次の一歩 🌸
これを使うVQE入門、最適化のQAOAは量子アルゴリズム入門、状態の可視化はブロッホ球へどうぞ。
Footnotes
-
Mitarai, K. et al. (2018). "Quantum circuit learning." Phys. Rev. A, 98, 032309; Schuld, M. et al. (2019). "Evaluating analytic gradients on quantum hardware." Phys. Rev. A, 99, 032331. ↩
-
パラメータ M 個の勾配には 2M 回の期待値評価が要る。各評価もショット数ぶんの実行が必要なため、実機では総ショット数が大きくなる。 ↩
-
生成子の固有値差が2値でないゲートには、複数点を使う一般化パラメータシフト則や確率的シフトが用いられる。任意ゲートに素朴には適用できない点に注意。 ↩