Problem Statement
順逆拡散過程における画素相関の初期エネルギー変化率
問題文
スマートフォンで撮影した夜景写真から、隣接する二つの画素を取り出す。各画素の平均輝度からのずれを成分とする無次元ベクトルを Xt∈R2 とする。
撮影直後の画素ベクトル X0 は、平均 0、共分散行列 Σ0 の正規分布に従う。画像へ人工的にノイズを加える前向き拡散過程は、伊藤確率微分方程式
dXt=−2βXtdt+βdWt
に従う。ここで、Wt の二成分は独立な標準ウィーナー過程であり、X0 と Wt は独立である。
時刻 t∗ までノイズを加えた画像から、正確な確率密度を用いて時間を逆向きに進める。逆向きの時間を τ=t∗−t、逆拡散中の画素ベクトルを
Yτ=Xt∗−τ
とする。
前向き過程の時刻 t における確率密度を ρt(x) とすると、逆拡散過程は
dYτ=[2βYτ+β∇ylogρt∗−τ(Yτ)]dτ+βdWτ
に従うものとする。
逆拡散開始時の画素ベクトルのノルムを 3 に固定する。すなわち、∥y∥=3 を満たす各初期状態 y から逆拡散過程を開始する。
画素偏差エネルギーを
R(y)=y12+y22
とする。Y0=y から開始した逆拡散過程に関する期待値を Ey と表し、逆拡散を開始した直後の微小時間 Δτ における期待値の変化率を
G(y)=Δτ→+0limΔτEy[R(YΔτ)]−R(y)
と定義する。
∥y∥=3 を満たす画素ベクトルのうち、G(y) を最大にするものを ymax、最小にするものを ymin とする。ただし、各ベクトルは第1成分が正となる向きを選ぶ。
次の無次元比を求めよ。
∣G(ymin)∣G(ymax)
制約
- β=16.0s−1
- t∗=16.0ln16s
- Σ0=(41404041)
入力形式
求めた比を既約分数 qp と表す。入力すべき自然数は 10p+q である。
皆さんはお分かりだろうか?問題文がどこかで見たことがある問題だということに...
解説
問題の構造
逆拡散ドリフトが大きい向きを直接比較するだけでは不十分です。
評価する量は画素ベクトルそのものではなく、
R(y)=∥y∥2
の期待値の初期変化率です。そのため、逆拡散のドリフト項だけでなく、ウィーナー過程の二次変分が生む伊藤補正も含める必要があります。
また、∥y∥=3 という条件のもとで変化率を最大化・最小化するため、最終的には共分散行列の固有方向を判定する必要があります。
前向き拡散後の共分散行列
前向き過程の平均を mt=E[Xt] とすると、
dtdmt=−2βmt
です。
初期平均が 0 なので、
mt=0
となります。
したがって、共分散行列は
Ct=E[XtXtT]
です。
行列値過程 XtXtT に伊藤の積公式を適用すると、
d(XtXtT)=dXtXtT+XtdXtT+dXtdXtT
です。
二成分のウィーナー過程は独立なので、
dWtdWtT=Idt
であり、
dXtdXtT=βIdt
となります。
期待値を取ると、
dtdCt=−βCt+βI
を得ます。
初期条件 C0=Σ0 より、
Ct=e−βtΣ0+(1−e−βt)I
です。
時刻 t∗ では、
e−βt∗=e−ln16=161
なので、
Ct∗=161(41404041)+1615(1001)=(27252527)
となります。
確率密度のスコア
前向き過程は線形であり、初期分布も正規分布なので、Xt∗ は平均 0、共分散行列 Ct∗ の正規分布に従います。
したがって、
∇ylogρt∗(y)=−Ct∗−1y
です。
逆拡散開始時のドリフトベクトルを b(y) とすると、
b(y)=2βy−βCt∗−1y=β(21I−Ct∗−1)y
です。
画素偏差エネルギーに対する伊藤の公式
逆拡散過程を成分表示すると、
dYi=bi(Y)dτ+βdWi
です。
R(Y)=Y12+Y22 に伊藤の公式を適用します。
勾配とヘッセ行列は、
∇R(y)=2y,∇2R(y)=2I
です。
したがって、
dR=2YTb(Y)dτ+2βYTdW+2βdτ
となります。
最後の 2βdτ は、二つの独立なウィーナー成分から生じる伊藤補正です。
期待値を取ると確率積分の項は消えるので、
G(y)=2yTb(y)+2β
です。
ドリフトを代入すると、
G(y)=2βyT(21I−Ct∗−1)y+2β=β[yT(I−2Ct∗−1)y+2]
となります。
最大・最小となる画素パターン
Ct∗ は Σ0 と単位行列の線形結合なので、両者の固有ベクトルは共通です。
まず、Σ0 の固有値を求めます。
det(Σ0−λI)=41−λ404041−λ
より、
0=(41−λ)2−402=(41−λ−40)(41−λ+40)=(1−λ)(81−λ)
です。
したがって、Σ0 の固有値は 81 と 1 です。
Ct∗ の対応する固有値は、
c=161λ+1615
で与えられるため、
c+=1681+1615=6,c−=161+1615=1
です。
Ct∗ の固有値が c である方向では、Ct∗−1 の固有値は 1/c です。
∥y∥=3 より、その方向に沿うベクトルでは、
yT(I−2Ct∗−1)y=9(1−c2)
となります。
関数 1−2/c は c>0 で単調増加するため、G は大きい共分散固有値 c+=6 の方向で最大となり、小さい固有値 c−=1 の方向で最小となります。
固有値 81 に対する固有ベクトルは、
(41404041)(11)=81(11)
なので、
ymax=23(11)
です。
固有値 1 に対する固有ベクトルは、
(41404041)(1−1)=(1−1)
なので、
ymin=23(1−1)
です。
最大値と最小値
c+=6 の方向では、
G(ymax)=β[9(1−62)+2]=β[9(32)+2]=8β
です。
c−=1 の方向では、
G(ymin)=β[9(1−2)+2]=−7β
です。
したがって、
∣G(ymin)∣G(ymax)=7β8β=78
となります。
よって、
p=8,q=7
であり、入力すべき自然数は、
10p+q=10⋅8+7=87
です。