手を上げるキュビットくんゆるふわ量子コンピュータ
計算中のキュビットくん

パラメータシフト則をQiskitで実装|量子回路の"勾配"を正確に求める

2026-08-30実践

#Qiskit#パラメータシフト#勾配#変分量子回路#Python#実践

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

  1. 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.

  2. パラメータ M 個の勾配には 2M 回の期待値評価が要る。各評価もショット数ぶんの実行が必要なため、実機では総ショット数が大きくなる。

  3. 生成子の固有値差が2値でないゲートには、複数点を使う一般化パラメータシフト則や確率的シフトが用いられる。任意ゲートに素朴には適用できない点に注意。

🔥 この分野の最新トレンドをチェック →

あわせて読みたい