Skip to content

補遺: アハラノフの2ベクトル形式からscoreを見る ​

3日目の終盤では、前向きに進む波動関数と後ろ向きに戻る波動関数を同時に見ることが、Aharonovの二状態ベクトル形式、弱測定、ポストセレクションの物理と対応する、と触れられました。ここではその話を、拡散モデルのscoreの正体を暴くための補遺として整理します。

対応する口頭補足は、3日目動画の 4:08:52 付近からの2ベクトル形式の話と、4:19:40 付近の「アハラノフの2ベクトル形式とこの話が対応する」というコメントです。

1. 2つの境界条件で現在を見る ​

通常の量子力学では、初期状態 |ψi⟩ を与えて、現在時刻 t の状態を

|ψ(t)⟩=U(t,ti)|ψi⟩

と書きます。これは過去から現在へ進む状態です。

Aharonovらの二状態ベクトル形式では、これに加えて、未来側で選ばれた終状態 |ϕf⟩ から現在へ戻ってくるbraを

⟨ϕ(t)|=⟨ϕf|U(tf,t)

として同時に考えます。すると時刻 t の系は、単独のketではなく

⟨ϕ(t)‖ψ(t)⟩

という「前から来たket」と「後ろから来たbra」の組で記述されます。これが2ベクトル形式です。過去の準備だけでなく、未来の選別、つまりポストセレクションも現在の記述に入る、という見方です。

3日目の講義で出てきた

P(x,t)=ψ(x,t)ψ~(x,t)

は、まさにこの形を虚時間・確率過程側へ移したものです。ここで

ψ(x,t)=⟨x|ψ(t)⟩,ψ~(x,t)=⟨ϕ(t)|x⟩

と読むと、

q(x,t)=⟨ϕ(t)|x⟩⟨x|ψ(t)⟩=ψ~(x,t)ψ(x,t)

は、位置 x を中間に挿入した2ベクトルの局所的な重なりです。さらに位置射影 Π^x=|x⟩⟨x| の弱値を書くと、

(Πx)w=⟨ϕ(t)|x⟩⟨x|ψ(t)⟩⟨ϕ(t)|ψ(t)⟩=ψ~(x,t)ψ(x,t)⟨ϕ(t)|ψ(t)⟩

です。分母は x に依存しない正規化因子なので、scoreを取るときには消えます。したがって、実時間量子力学では複素的な「局所確率振幅の弱値」だったものが、虚時間表示で正のゲージを選べる場合には、正の確率密度 P(x,t) として読めます。

2. 弱値として現在の量を見る ​

二状態ベクトル形式で自然に現れる量が弱値です。演算子 A^ の弱値は

Aw(t)=⟨ϕ(t)|A^|ψ(t)⟩⟨ϕ(t)|ψ(t)⟩

です。普通の期待値が |ψ⟩ だけから作られるのに対して、弱値は前向きの状態 |ψ⟩ と後ろ向きの状態 ⟨ϕ| の両方を使います。

ここで位置 x に条件づけた局所的な運動量を考えます。右から、つまりket側から見た運動量は

pRw(x,t)=⟨x|p^|ψ(t)⟩⟨x|ψ(t)⟩=−iℏ∂∂xlog⁡ψ(x,t)

です。一方、左から、つまりbra側から見た運動量は

pLw(x,t)=⟨ϕ(t)|p^|x⟩⟨ϕ(t)|x⟩=iℏ∂∂xlog⁡ψ~(x,t)

です。符号が反対になるのは、運動量演算子がket側では右に作用し、bra側では左に作用するからです。

3. scoreは2つの局所運動量のずれである ​

拡散モデルで学習するscoreは

S(x,t)=∂∂xlog⁡P(x,t)

でした。P=ψψ~ を代入すると、

S(x,t)=∂∂xlog⁡ψ(x,t)+∂∂xlog⁡ψ~(x,t)

です。上の2つの局所運動量弱値を使えば、

S(x,t)=iℏ[pRw(x,t)−pLw(x,t)]

と書けます。多次元ならそのまま

∇xlog⁡P(x,t)=iℏ[pRw(x,t)−pLw(x,t)]

です。

これが、量子力学の形式で見たscoreの正体です。scoreは単に「密度が大きい方向を向く勾配」ではありません。2ベクトル形式で見ると、現在位置 x において、過去から来た波動関数が要求する局所運動量と、未来から戻ってきた波動関数が要求する局所運動量の差です。前向きの境界条件と後ろ向きの境界条件が、現在をどれだけ別々の方向へ引っ張っているかを測っている量です。

虚時間表示では、運動量の代わりにEuclid化された生成子を

πR(x,t)=−ℏ∂∂xlog⁡ψ(x,t),πL(x,t)=ℏ∂∂xlog⁡ψ~(x,t)

と置けば、

S(x,t)=1ℏ[πL(x,t)−πR(x,t)]

になります。実時間では複素的な弱値の差だったものが、虚時間・確率過程の表示では実のscoreとして現れます。

4. scoreはゲージに依らない ​

3日目の講義では、ψ と ψ~ の分け方にはゲージ自由度がある、という話も出ていました。実際、

ψ(x,t)→eχ(x,t)ψ(x,t),ψ~(x,t)→e−χ(x,t)ψ~(x,t)

としても、積

P(x,t)=ψ(x,t)ψ~(x,t)

は変わりません。

この変換で、∂xlog⁡ψ と ∂xlog⁡ψ~ はそれぞれ変わります。つまり、前向きの波動関数にどれだけの役割を持たせるか、後ろ向きの波動関数にどれだけの役割を持たせるかは動かせます。しかし和

∂∂xlog⁡ψ+∂∂xlog⁡ψ~=∂∂xlog⁡P

は変わりません。したがってscoreは、2つの波動関数の分け方に依存しない、観測される確率密度そのものに属する量です。

弱値の言葉で言えば、pRw と pLw はゲージ変換で同じだけ動きますが、その差

pRw−pLw

は不変です。scoreが機械学習で安定して学習すべき対象になるのは、この不変量を見ているからだ、と言えます。

5. 反断熱項としての意味 ​

3日目の本文では、

f+(x,t)=2D∂∂xlog⁡ψ~(x,t),f−(x,t)=2D∂∂xlog⁡ψ(x,t)

と置きました。すると

f+(x,t)+f−(x,t)=2DS(x,t)

です。

逆向き生成で必要になる補正

2DS(x,t)

は、前向きの力をただ反転するだけでは失われる、未来側の境界条件からの情報を戻す項です。Aharonovの2ベクトル形式で言えば、ポストセレクションされた未来から来るbraが、現在の局所運動量にどれだけ食い込むかを教える量です。

したがって、拡散モデルのscore matchingは、量子力学風に言い換えると、各時刻・各位置で

pRw(x,t)−pLw(x,t)

を学習していることになります。これは、単なる統計的な勾配推定ではなく、前向き過程と後ろ向き過程を同じ中間分布に貼り合わせるための、局所的な反断熱情報を学んでいる、という解釈です。

6. まとめ ​

拡散モデルのscoreは、機械学習の用語では ∇log⁡pt です。しかし3日目の虚時間量子力学の形式で見ると、それは

∇log⁡P=iℏ(pRw−pLw)

です。つまりscoreとは、前向きketと後ろ向きbraが作る2ベクトルの局所重なりを、空間方向にどれだけ傾ければよいかを示す量です。

一言で言えば、scoreは「未来で選ばれた分布へ現在を整合させるための、弱値としての運動量差」です。これが見えると、拡散モデル、Schrodinger bridge、反断熱駆動、そしてAharonovの2ベクトル形式が、同じ数式の別々の顔としてつながります。