コンテンツにスキップ

Markov 連鎖 Monte Carlo:提案の設計・Peskun の順序・混合時間

対象読者: 本テーマ第 3 章までの内容と、有限状態の Markov 連鎖(定常分布・エルゴード定理)、対称行列のスペクトル定理を学んだ人。MCMC の理論は仮定しません。

前提となる記事:Monte Carlo 積分と分散低減:重点サンプリング・制御変量・層別、Markov 連鎖と Poisson 過程:Doeblin のエルゴード定理から正準経路の比較まで、スペクトル定理:対称行列はなぜ「回転だけ」で対角化できるのか

生 Markdown

複雑な確率分布から「くじ」を直接引くことができないとき、サイコロを振るように少しずつ状態を動かしていき、その軌跡の平均から答えを求める方法があります。この記事は、その方法がなぜ正しい値に近づくのか、どれくらい待てばよいのか、どんな動かし方が速いのかを、証明つきで調べます。読み終えると、動かし方の良し悪しを数や不等式で比べられるようになります。

  • 目標の分布 π\pi から独立な標本が作れなくても、π\pi を定常分布にもつ Markov 連鎖の時間平均は π\pi についての期待値に概収束します(確率 11 で収束する、という意味です)。有限で既約な連鎖なら、周期的でも成り立ちます(定理 3.2)。
  • 可逆な連鎖では、分布の収束の速さは絶対スペクトルギャップ γ∗\gamma^*(遷移行列の固有値から決まる、収束の速さの目安)で決まります。∥Pt(x,⋅)−π∥TV≤12(1−π(x))/π(x) (1−γ∗)t\|P^t(x,\cdot) - \pi\|_{\mathrm{TV}} \le \frac12\sqrt{(1-\pi(x))/\pi(x)}\,(1 - \gamma^*)^t で、混合時間は 1/γ∗1/\gamma^* の程度です(定理 4.3)。
  • 定常な時間平均の漸近分散は σf2=∑j≥2⟨f,φj⟩π21+λj1−λj≤(2/γ−1)Varπ(f)\sigma_f^2 = \sum_{j\ge2}\langle f, \varphi_j\rangle_\pi^2\frac{1+\lambda_j}{1-\lambda_j} \le (2/\gamma - 1)\mathrm{Var}_\pi(f) です。独立な標本に比べて、誤差の二乗は高々 (2/γ−1)(2/\gamma - 1) 倍です(定理 5.2)。
  • 同じ定常分布をもつ 2 つの可逆な連鎖で、よく動くほう(非対角成分が大きいほう)の漸近分散は、すべての ff について小さくなります(Peskun の順序。定理 5.4)。同じ提案に対する採択関数の中では Metropolis の min⁡(1,r)\min(1, r) が最良です(系 5.5)。
  • スペクトルギャップは、状態空間を 2 つに切ったときの流量の比(ボトルネック比 Φ∗\Phi_*)で Φ∗2/2≤γ≤2Φ∗\Phi_*^2/2 \le \gamma \le 2\Phi_* と挟まれます(定理 6.2)。2 つの山をもつ分布での局所的な更新は、山の間の確率に比例して遅くなります(命題 6.3)。
  • 2 つの連鎖を同じ乱数で動かして合流させるカップリングは、固有値を求めずに混合時間の上界を与えます(定理 7.2)。

前章の方法はどれも、目標の分布(または提案分布)から独立な標本を作れることを前提にしていました。ところが、統計力学の Boltzmann 分布 π(x)∝e−βH(x)\pi(x) \propto e^{-\beta H(x)} や Bayes 統計の事後分布では、状態 xx は数百から数百万の成分をもち、正規化定数は計算できず、標本抽出の章の逆関数法も棄却法も使えません(高次元では棄却法の採択率が指数的に小さくなります)。

Markov 連鎖 Monte Carlo 法(MCMC)は、独立性をあきらめます。π\pi を定常分布にもつ Markov 連鎖 X0,X1,X2,…X_0, X_1, X_2, \ldots を作り、その時間平均 1N∑k<Nf(Xk)\frac1N\sum_{k<N}f(X_k) で π(f)=∑xπ(x)f(x)\pi(f) = \sum_x\pi(x)f(x) を推定します。連鎖の 1 歩は、現在の状態を少し変える提案と、π\pi の比だけを使う採択の判定からなるので、正規化定数は要りません。

独立性を捨てた代償は 2 つあります。連鎖の分布が π\pi に近づくまでに時間がかかること(混合)と、隣り合う標本が相関するために時間平均の分散が独立な場合より大きくなること(漸近分散)です。この章では、状態空間を有限集合に限って、この 2 つを遷移行列の固有値で定量的に評価します。そのうえで、「どの連鎖がよいか」を比べる道具(Peskun の順序)と、固有値が計算できないときに混合の速さを評価する 2 つの方法(ボトルネック比とカップリング)を証明します。

Metropolis–Hastings 法と熱浴法の定義と詳細つり合いは、格子場の理論の章(定義 3.1[格子場のモンテカルロ法]、定理 3.2[格子場のモンテカルロ法]、定義 3.3[格子場のモンテカルロ法]、命題 3.4[格子場のモンテカルロ法])で一般の状態空間について扱われています。この章で使う有限状態の場合は、§2 で定義と証明を述べ直します。

2. 準備:有限状態の可逆な連鎖

Section titled “2. 準備:有限状態の可逆な連鎖”

SS を有限集合とします。遷移行列・Markov 連鎖・定常分布・可逆性(詳細つり合い)の定義はMarkov 連鎖と Poisson 過程(定義 2.1[Markov 連鎖と Poisson 過程]、定義 2.4[Markov 連鎖と Poisson 過程])に従います。詳細つり合い π(x)P(x,y)=π(y)P(y,x)\pi(x)P(x,y) = \pi(y)P(y,x) を満たせば π\pi は定常分布です(命題 2.5[Markov 連鎖と Poisson 過程])。

初期分布 μ\mu の連鎖についての確率と期待値を Pμ\mathbb{P}_\mu、Eμ\mathbb{E}_\mu、1 点 xx から出発する場合を Px\mathbb{P}_x、Ex\mathbb{E}_x と書きます。Markov 連鎖の定義の条件付き確率を順に掛け合わせると、道の確率の公式

Pμ(X0=x0,X1=x1,…,Xk=xk)=μ(x0)P(x0,x1)⋯P(xk−1,xk)\mathbb{P}_\mu(X_0 = x_0, X_1 = x_1, \ldots, X_k = x_k) = \mu(x_0)P(x_0, x_1)\cdots P(x_{k-1}, x_k)

が得られます(kk についての帰納法。途中の確率が 00 なら両辺とも 00 です)。kk 歩の遷移確率は行列の冪 Pk(x,y)P^k(x, y) です(命題 2.3[Markov 連鎖と Poisson 過程])。

定義 2.1(既約・非周期)↗

遷移行列 PP が既約であるとは、任意の x,y∈Sx, y \in S に対して、ある k≥1k \ge 1 で Pk(x,y)>0P^k(x, y) > 0 となることをいう。既約な PP が非周期的であるとは、ある m≥1m \ge 1 で PmP^m のすべての成分が正であることをいう。

既約で、ある状態に自己ループ P(x∗,x∗)>0P(x_*, x_*) > 0 があれば非周期的です(系 3.3[Markov 連鎖と Poisson 過程])。非周期性は、通常は「戻り時刻の最大公約数が 11」と定義されます。有限で既約な連鎖ではこの定義と同値であることが知られていますが、この章では上の形を定義として使います。

補題 2.2(既約な連鎖の定常分布)✓

有限集合 SS 上の既約な遷移行列 PP は定常分布 π\pi をもち、すべての xx で π(x)>0\pi(x) > 0 である。

証明(補題 2.2)

PL=12(I+P)P_L = \frac12(I + P) と置きます。PLP_L は遷移行列で、PLk(x,y)≥2−kPk(x,y)P_L^k(x,y) \ge 2^{-k}P^k(x,y) から既約、PL(x,x)≥12>0P_L(x,x) \ge \frac12 > 0 です。系 3.3[Markov 連鎖と Poisson 過程] から PLP_L は定常分布 π\pi をもちます。πPL=π\pi P_L = \pi は πP=π\pi P = \pi と同値なので、π\pi は PP の定常分布です。π(x0)>0\pi(x_0) > 0 となる x0x_0 を取ります。任意の yy に対して Pk(x0,y)>0P^k(x_0, y) > 0 となる kk があり、π=πPk\pi = \pi P^k から π(y)≥π(x0)Pk(x0,y)>0\pi(y) \ge \pi(x_0)P^k(x_0, y) > 0 です。

定常分布の一意性は 定理 3.2 から従います。

MCMC で使う連鎖の作り方を、有限状態の場合に述べます。

定義 2.3(Metropolis–Hastings 型の連鎖と採択関数)↗

π\pi を SS 上の正の確率分布、QQ を SS 上の遷移行列(提案)とする。x≠yx \ne y、Q(x,y)>0Q(x,y) > 0 となる組について

r(x,y)=π(y)Q(y,x)π(x)Q(x,y)∈[0,∞)r(x, y) = \frac{\pi(y)Q(y,x)}{\pi(x)Q(x,y)} \in [0, \infty)

と置く。関数 a(x,y)∈[0,1]a(x,y) \in [0,1](採択関数)が、x≠yx \ne y なるすべての組で

π(x)Q(x,y) a(x,y)=π(y)Q(y,x) a(y,x)\pi(x)Q(x,y)\,a(x,y) = \pi(y)Q(y,x)\,a(y,x)

を満たすとき、遷移行列

Pa(x,y)=Q(x,y) a(x,y)(x≠y),Pa(x,x)=1−∑y≠xQ(x,y) a(x,y)P_a(x,y) = Q(x,y)\,a(x,y) \quad (x \ne y), \qquad P_a(x,x) = 1 - \sum_{y \ne x}Q(x,y)\,a(x,y)

を、提案 QQ と採択関数 aa による Metropolis–Hastings 型の連鎖という。「xx から Q(x,⋅)Q(x,\cdot) に従って yy を提案し、確率 a(x,y)a(x,y) で yy に移り、そうでなければ xx にとどまる」連鎖である。次の 2 つが代表的である。

  • Metropolis–Hastings の採択関数: aMH(x,y)=min⁡(1,r(x,y))a_{\mathrm{MH}}(x,y) = \min(1, r(x,y))。
  • Barker の採択関数: aB(x,y)=r(x,y)1+r(x,y)=π(y)Q(y,x)π(x)Q(x,y)+π(y)Q(y,x)a_{\mathrm{B}}(x,y) = \dfrac{r(x,y)}{1 + r(x,y)} = \dfrac{\pi(y)Q(y,x)}{\pi(x)Q(x,y) + \pi(y)Q(y,x)}。

(Q(x,y)=0Q(x,y) = 0 の組では a(x,y)a(x,y) の値は PaP_a に影響しない。)

命題 2.4(採択関数の族の可逆性と上限)✓

定義 2.3 の設定で次が成り立つ。

  1. PaP_a は π\pi について可逆である。したがって π\pi は PaP_a の定常分布である。
  2. aMHa_{\mathrm{MH}} と aBa_{\mathrm{B}} は採択関数の条件を満たす。
  3. 任意の採択関数 aa と、x≠yx \ne y、Q(x,y)>0Q(x,y) > 0 なる組について a(x,y)≤aMH(x,y)a(x,y) \le a_{\mathrm{MH}}(x,y)。したがって x≠yx \ne y で Pa(x,y)≤PaMH(x,y)P_a(x,y) \le P_{a_{\mathrm{MH}}}(x,y)。
証明(命題 2.4)

1. x≠yx \ne y について π(x)Pa(x,y)=π(x)Q(x,y)a(x,y)=π(y)Q(y,x)a(y,x)=π(y)Pa(y,x)\pi(x)P_a(x,y) = \pi(x)Q(x,y)a(x,y) = \pi(y)Q(y,x)a(y,x) = \pi(y)P_a(y,x) です。x=yx = y では自明です。定常性は 命題 2.5[Markov 連鎖と Poisson 過程] です。

2. u=π(x)Q(x,y)u = \pi(x)Q(x,y)、v=π(y)Q(y,x)v = \pi(y)Q(y,x) と置きます。u,v>0u, v > 0 のとき r(x,y)=v/ur(x,y) = v/u、r(y,x)=u/vr(y,x) = u/v で、umin⁡(1,v/u)=min⁡(u,v)=vmin⁡(1,u/v)u\min(1, v/u) = \min(u, v) = v\min(1, u/v)、また u⋅vu+v=v⋅uu+vu\cdot\frac{v}{u+v} = v\cdot\frac{u}{u+v} です。u>0=vu > 0 = v のときは r(x,y)=0r(x,y) = 0 から a(x,y)=0a(x,y) = 0 で、両辺とも 00 です(u=0u = 0 の側の値は何でも構いません)。u=v=0u = v = 0 のときも両辺 00 です。どちらの採択関数も [0,1][0,1] に値を取ります。

3. 条件から u a(x,y)=v a(y,x)≤vu\,a(x,y) = v\,a(y,x) \le v なので a(x,y)≤v/u=r(x,y)a(x,y) \le v/u = r(x,y)、また a(x,y)≤1a(x,y) \le 1 です。よって a(x,y)≤min⁡(1,r(x,y))a(x,y) \le \min(1, r(x,y)) です。

QQ が対称(Q(x,y)=Q(y,x)Q(x,y) = Q(y,x))なら r(x,y)=π(y)/π(x)r(x,y) = \pi(y)/\pi(x) で、π(x)∝e−βH(x)\pi(x) \propto e^{-\beta H(x)} のとき aMH=min⁡(1,e−β(H(y)−H(x)))a_{\mathrm{MH}} = \min(1, e^{-\beta(H(y) - H(x))}) です。これが本来の Metropolis 法です。どの採択関数も π\pi の比しか使わないので、正規化定数は不要です。3 は、採択関数の条件を満たす範囲で Metropolis–Hastings の採択確率が最大であることを述べています。それが推定の精度の意味でも最良であることが、§5 の主題です。

定義 2.5(熱浴法と走査の順序)↗

S=S1×⋯×SnS = S_1 \times \cdots \times S_n(各 SiS_i は有限集合)、π\pi を SS 上の正の確率分布とする。x∈Sx \in S の第 ii 成分だけを s∈Sis \in S_i に替えた状態を xi→sx^{i \to s} と書く。遷移行列

Pi(x,y)=π(y)∑s∈Siπ(xi→s)(y は x と第 i 成分以外で一致),Pi(x,y)=0(それ以外)P_i(x, y) = \frac{\pi(y)}{\sum_{s \in S_i}\pi(x^{i\to s})} \quad (y \text{ は } x \text{ と第 } i \text{ 成分以外で一致}), \qquad P_i(x,y) = 0 \quad (\text{それ以外})

を成分 ii の熱浴更新(Gibbs 更新)という。他の成分を固定したときの π\pi の条件付き分布から、第 ii 成分を引き直す操作である。PRS=1n∑i=1nPiP_{\mathrm{RS}} = \frac1n\sum_{i=1}^nP_i を無作為走査、PSS=P1P2⋯PnP_{\mathrm{SS}} = P_1P_2\cdots P_n を系統走査の熱浴法という。

熱浴更新は、提案を「第 ii 成分を条件付き分布から引く」とした Metropolis–Hastings 法で、採択確率が常に 11 になる場合にあたります。走査の順序による違いは §8 で調べます。

SS 上の実数値関数 f,gf, g に対して、π\pi で重みを付けた内積と、平均・分散を

⟨f,g⟩π=∑xπ(x)f(x)g(x),π(f)=⟨f,1⟩π,Varπ(f)=⟨f,f⟩π−π(f)2\langle f, g\rangle_\pi = \sum_x\pi(x)f(x)g(x), \qquad \pi(f) = \langle f, \mathbf{1}\rangle_\pi, \qquad \mathrm{Var}_\pi(f) = \langle f, f\rangle_\pi - \pi(f)^2

と書きます。この内積を入れた関数の空間を ℓ2(π)\ell^2(\pi) と書きます。ここでの狙いは、重み π\pi を内積に取り込むと、可逆な遷移行列が「対称行列」と同じ扱いになり、スペクトル定理(実対称行列は正規直交な固有ベクトルで対角化できる)が使える、という点です。遷移行列は関数に (Pf)(x)=∑yP(x,y)f(y)(Pf)(x) = \sum_yP(x,y)f(y) で作用します。PP が π\pi について可逆であることは、⟨f,Pg⟩π=⟨Pf,g⟩π\langle f, Pg\rangle_\pi = \langle Pf, g\rangle_\pi、すなわち PP が ℓ2(π)\ell^2(\pi) の自己共役作用素であることと同値です(両辺を書き下すと ∑x,yπ(x)P(x,y)f(x)g(y)\sum_{x,y}\pi(x)P(x,y)f(x)g(y) と ∑x,yπ(y)P(y,x)f(x)g(y)\sum_{x,y}\pi(y)P(y,x)f(x)g(y) です)。

補題 2.6(可逆な連鎖のスペクトル分解)✓

PP を、正の確率分布 π\pi について可逆な SS 上の遷移行列とし、d=∣S∣d = |S| とする。

  1. 実数 1=λ1≥λ2≥⋯≥λd≥−11 = \lambda_1 \ge \lambda_2 \ge \cdots \ge \lambda_d \ge -1 と SS 上の実数値関数 φ1=1,φ2,…,φd\varphi_1 = \mathbf{1}, \varphi_2, \ldots, \varphi_d で、Pφj=λjφjP\varphi_j = \lambda_j\varphi_j、⟨φi,φj⟩π=δij\langle\varphi_i, \varphi_j\rangle_\pi = \delta_{ij} を満たすものが存在する。
  2. 任意の ff について f=∑j⟨f,φj⟩πφjf = \sum_j\langle f, \varphi_j\rangle_\pi\varphi_j、⟨f,f⟩π=∑j⟨f,φj⟩π2\langle f, f\rangle_\pi = \sum_j\langle f, \varphi_j\rangle_\pi^2、Varπ(f)=∑j≥2⟨f,φj⟩π2\mathrm{Var}_\pi(f) = \sum_{j \ge 2}\langle f, \varphi_j\rangle_\pi^2 であり、すべての t≥0t \ge 0 と x,y∈Sx, y \in S について Pt(x,y)=π(y)∑j=1dλjt φj(x)φj(y).P^t(x, y) = \pi(y)\sum_{j=1}^d\lambda_j^t\,\varphi_j(x)\varphi_j(y). 特に ∑j=1dφj(x)2=1/π(x)\sum_{j=1}^d\varphi_j(x)^2 = 1/\pi(x) である。
  3. PP が既約ならば λ2<1\lambda_2 < 1。さらに非周期的ならば λd>−1\lambda_d > -1。
証明(補題 2.6)

1. D=diag(π)D = \mathrm{diag}(\pi) とし、A=D1/2PD−1/2A = D^{1/2}PD^{-1/2}、すなわち A(x,y)=π(x)P(x,y)/π(x)π(y)A(x,y) = \pi(x)P(x,y)/\sqrt{\pi(x)\pi(y)} と置きます。可逆性から AA は実対称行列なので、実の固有値 λ1≥⋯≥λd\lambda_1 \ge \cdots \ge \lambda_d と、Rd\mathbb{R}^d の正規直交基底をなす固有ベクトル v1,…,vdv_1, \ldots, v_d があります(系 4.3[スペクトル定理])。φj=D−1/2vj\varphi_j = D^{-1/2}v_j と置くと、Pφj=D−1/2Avj=λjφjP\varphi_j = D^{-1/2}Av_j = \lambda_j\varphi_j、⟨φi,φj⟩π=∑xvi(x)vj(x)=δij\langle\varphi_i, \varphi_j\rangle_\pi = \sum_x v_i(x)v_j(x) = \delta_{ij} です。

∣λj∣≤1|\lambda_j| \le 1 を示します。∣φj(x)∣|\varphi_j(x)| が最大になる x∗x^* を取ると、∣λj∣∣φj(x∗)∣=∣∑yP(x∗,y)φj(y)∣≤∑yP(x∗,y)∣φj(x∗)∣=∣φj(x∗)∣|\lambda_j||\varphi_j(x^*)| = |\sum_yP(x^*,y)\varphi_j(y)| \le \sum_yP(x^*,y)|\varphi_j(x^*)| = |\varphi_j(x^*)| で、φj(x∗)≠0\varphi_j(x^*) \ne 0 なので ∣λj∣≤1|\lambda_j| \le 1 です。P1=1P\mathbf{1} = \mathbf{1} なので 11 は固有値で、最大の固有値は λ1=1\lambda_1 = 1 です。⟨1,1⟩π=1\langle\mathbf{1}, \mathbf{1}\rangle_\pi = 1 なので、固有値 11 の固有空間の正規直交基底を 1\mathbf{1} を含むように取り直して φ1=1\varphi_1 = \mathbf{1} とできます。

2. (φj)(\varphi_j) は ℓ2(π)\ell^2(\pi) の正規直交基底なので、展開と ⟨f,f⟩π=∑j⟨f,φj⟩π2\langle f, f\rangle_\pi = \sum_j\langle f, \varphi_j\rangle_\pi^2 が成り立ちます。⟨f,φ1⟩π=π(f)\langle f, \varphi_1\rangle_\pi = \pi(f) を引いて分散の式を得ます。Ptf=∑jλjt⟨f,φj⟩πφjP^tf = \sum_j\lambda_j^t\langle f, \varphi_j\rangle_\pi\varphi_j を、yy の指示関数 f=1{y}f = \mathbf{1}_{\{y\}} に使うと、⟨1{y},φj⟩π=π(y)φj(y)\langle\mathbf{1}_{\{y\}}, \varphi_j\rangle_\pi = \pi(y)\varphi_j(y)、(Pt1{y})(x)=Pt(x,y)(P^t\mathbf{1}_{\{y\}})(x) = P^t(x,y) から主張の式になります。t=0t = 0、y=xy = x とすると 1=π(x)∑jφj(x)21 = \pi(x)\sum_j\varphi_j(x)^2 です。

3. Pf=fPf = f とします。Dirichlet 形式の表示(定義 6.1[Markov 連鎖と Poisson 過程])から

0=⟨f,(I−P)f⟩π=12∑x,yπ(x)P(x,y)(f(x)−f(y))20 = \langle f, (I - P)f\rangle_\pi = \frac12\sum_{x,y}\pi(x)P(x,y)\bigl(f(x) - f(y)\bigr)^2

なので、P(x,y)>0P(x,y) > 0 なら f(x)=f(y)f(x) = f(y) です。既約性から任意の 2 点は正の確率の道でつながるので、ff は定数です。固有値 11 の固有空間は 1 次元で、λ2<1\lambda_2 < 1 です。

非周期的とし、Pf=−fPf = -f とします。P2f=fP^2f = f です。P2P^2 は π\pi について可逆な遷移行列で、ある mm で (P2)m=PmPm(P^2)^m = P^mP^m の全成分が正なので既約です。前半を P2P^2 に使うと ff は定数で、Pf=fPf = f です。f=−ff = -f から f=0f = 0 となり、−1-1 は固有値ではありません。

定義 2.7(スペクトルギャップ・緩和時間・怠惰な連鎖)↗

補題 2.6 の記号で、

γ=1−λ2,λ∗=max⁡{∣λ2∣,∣λd∣},γ∗=1−λ∗\gamma = 1 - \lambda_2, \qquad \lambda_* = \max\{|\lambda_2|, |\lambda_d|\}, \qquad \gamma^* = 1 - \lambda_*

を、それぞれスペクトルギャップ、第 2 固有値の絶対値、絶対スペクトルギャップという(d=1d = 1 のときは λ∗=0\lambda_* = 0 とする)。γ∗>0\gamma^* > 0 のとき trel=1/γ∗t_{\mathrm{rel}} = 1/\gamma^* を緩和時間という。遷移行列 PL=12(I+P)P_L = \frac12(I + P) を PP の怠惰な連鎖という。

γ\gamma は Dirichlet 形式による定義 λ(P)=min⁡EP(f,f)/Varπ(f)\lambda(P) = \min\mathcal{E}_P(f,f)/\mathrm{Var}_\pi(f) と一致します(命題 6.2[Markov 連鎖と Poisson 過程] の 1)。怠惰な連鎖の固有値は 12(1+λj)≥0\frac12(1 + \lambda_j) \ge 0 なので、負の固有値がなくなり、γ∗(PL)=γ(PL)=γ(P)/2\gamma^*(P_L) = \gamma(P_L) = \gamma(P)/2 です。周期性や負の固有値を避けるために、理論ではしばしば怠惰な連鎖を使います。

MCMC の推定量は時間平均です。その収束は、分布の収束(§4)とは別の、より弱い仮定で成り立ちます。

次の補題と定理の方針は、連鎖が状態 oo に戻るたびに連鎖を区切る、というものです。区切られた各区間は互いに独立で同じ分布に従うので、独立な標本に対する大数の法則が使えます。補題は、oo に必ず戻ってくること(しかも戻るまでの時間の平均が有限であること)を保証します。

補題 3.1(戻り時刻の裾)✓

PP を有限集合 SS 上の既約な遷移行列、o∈So \in S とし、To=min⁡{k≥1:Xk=o}T_o = \min\{k \ge 1 : X_k = o\}(そのような kk がなければ ∞\infty)と置く。このとき整数 m≥1m \ge 1 と ε>0\varepsilon > 0 があって、すべての y∈Sy \in S と k≥0k \ge 0 について

Py(To>km)≤(1−ε)k\mathbb{P}_y(T_o > km) \le (1 - \varepsilon)^k

である。特に、任意の初期分布について確率 11 で To<∞T_o < \infty であり、Ey[To]≤m/ε\mathbb{E}_y[T_o] \le m/\varepsilon である。

証明(補題 3.1)

各 yy について、Pky(y,o)>0P^{k_y}(y, o) > 0 となる ky≥1k_y \ge 1 を選び、m=max⁡ykym = \max_yk_y、ε=min⁡yPky(y,o)>0\varepsilon = \min_yP^{k_y}(y, o) > 0 と置きます。Py(To≤m)≥Py(Xky=o)=Pky(y,o)≥ε\mathbb{P}_y(T_o \le m) \ge \mathbb{P}_y(X_{k_y} = o) = P^{k_y}(y, o) \ge \varepsilon なので、すべての yy で Py(To>m)≤1−ε\mathbb{P}_y(T_o > m) \le 1 - \varepsilon です。

道の確率の公式から、Py(To>(k+1)m)\mathbb{P}_y(T_o > (k+1)m) は、yy から出発して (k+1)m(k+1)m 歩の間 oo を踏まない道の確率の和です。最初の kmkm 歩(oo を踏まず、zz で終わる)と残りの mm 歩(zz から出発して oo を踏まない)に分けると、

Py(To>(k+1)m)=∑zPy(To>km, Xkm=z) Pz(To>m)≤(1−ε) Py(To>km)\mathbb{P}_y(T_o > (k+1)m) = \sum_z\mathbb{P}_y(T_o > km,\ X_{km} = z)\,\mathbb{P}_z(T_o > m) \le (1 - \varepsilon)\,\mathbb{P}_y(T_o > km)

です。帰納法で主張を得ます。k→∞k \to \infty として Py(To=∞)=0\mathbb{P}_y(T_o = \infty) = 0、また Ey[To]=∑j≥0Py(To>j)≤m∑k≥0(1−ε)k=m/ε\mathbb{E}_y[T_o] = \sum_{j \ge 0}\mathbb{P}_y(T_o > j) \le m\sum_{k \ge 0}(1 - \varepsilon)^k = m/\varepsilon です(Py(To>j)\mathbb{P}_y(T_o > j) は jj について減少するので、km≤j<(k+1)mkm \le j < (k+1)m の mm 個の項をそれぞれ (1−ε)k(1-\varepsilon)^k で抑えました)。

定理 3.2(時間平均の概収束)✓

PP を有限集合 SS 上の既約な遷移行列、π\pi をその定常分布とする。任意の初期分布 μ\mu と任意の f:S→Rf : S \to \mathbb{R} について、

Pμ(lim⁡N→∞1N∑k=0N−1f(Xk)=π(f))=1\mathbb{P}_\mu\Bigl(\lim_{N\to\infty}\frac1N\sum_{k=0}^{N-1}f(X_k) = \pi(f)\Bigr) = 1

である。特に、定常分布は一意である。非周期性は仮定しない。

証明(定理 3.2)

状態 o∈So \in S を 1 つ固定します。

区間への分割。 oo への到達時刻を τ0=min⁡{k≥0:Xk=o}\tau_0 = \min\{k \ge 0 : X_k = o\}、τj+1=min⁡{k>τj:Xk=o}\tau_{j+1} = \min\{k > \tau_j : X_k = o\} と定めます。oo から始まり、途中で oo を踏まない有限の語 w=(o,z1,…,zl−1)w = (o, z_1, \ldots, z_{l-1})(l≥1l \ge 1、zi≠oz_i \ne o)の全体を W\mathcal{W} とし、

p(w)=P(o,z1)P(z1,z2)⋯P(zl−1,o)p(w) = P(o, z_1)P(z_1, z_2)\cdots P(z_{l-1}, o)

と置きます(l=1l = 1 のときは p(w)=P(o,o)p(w) = P(o,o))。p(w)p(w) は、oo から出発した連鎖が ww をたどって時刻 ll にはじめて oo に戻る確率なので、補題 3.1 から ∑w∈Wp(w)=Po(To<∞)=1\sum_{w \in \mathcal{W}}p(w) = \mathbb{P}_o(T_o < \infty) = 1 です。連鎖の第 jj 区間を Wj=(Xτj,…,Xτj+1−1)W_j = (X_{\tau_j}, \ldots, X_{\tau_{j+1}-1}) とします。

oo を含まない語 a=(a0,…,ak−1)a = (a_0, \ldots, a_{k-1})(k≥0k \ge 0)と w0,…,wj∈Ww_0, \ldots, w_j \in \mathcal{W} に対して、事象「(X0,…,Xτ0−1)=a(X_0, \ldots, X_{\tau_0 - 1}) = a かつ W0=w0,…,Wj=wjW_0 = w_0, \ldots, W_j = w_j」は、連鎖の最初の部分が a,w0,…,wja, w_0, \ldots, w_j をつなげた語で、その次が oo であることと同じです。道の確率の公式から、その確率は

q(a) p(w0)⋯p(wj),q(a)=μ(a0)P(a0,a1)⋯P(ak−1,o)q(a)\,p(w_0)\cdots p(w_j), \qquad q(a) = \mu(a_0)P(a_0, a_1)\cdots P(a_{k-1}, o)

です(k=0k = 0 のときは q(a)=μ(o)q(a) = \mu(o))。∑aq(a)=Pμ(τ0<∞)=1\sum_aq(a) = \mathbb{P}_\mu(\tau_0 < \infty) = 1 なので(補題 3.1。X0=oX_0 = o なら τ0=0\tau_0 = 0、そうでなければ τ0=To\tau_0 = T_o)、aa について和を取ると

Pμ(W0=w0,…,Wj=wj)=p(w0)⋯p(wj)\mathbb{P}_\mu(W_0 = w_0, \ldots, W_j = w_j) = p(w_0)\cdots p(w_j)

です。すなわち、区間 W0,W1,…W_0, W_1, \ldots は独立で、どれも分布 pp に従います。また確率 11 ですべての τj\tau_j は有限です。

大数の法則。 語 ww の長さを ℓ(w)\ell(w)、ww に沿った ff の和を B(w)B(w) と書き、ℓj=ℓ(Wj)=τj+1−τj\ell_j = \ell(W_j) = \tau_{j+1} - \tau_j、Bj=B(Wj)B_j = B(W_j) と置きます。(ℓj)(\ell_j) と (Bj)(B_j) はそれぞれ独立同分布の列で、E[ℓ0]=Eo[To]<∞\mathbb{E}[\ell_0] = \mathbb{E}_o[T_o] < \infty(補題 3.1)、∣Bj∣≤∥f∥∞ℓj|B_j| \le \|f\|_\infty\ell_j(∥f∥∞=max⁡∣f∣\|f\|_\infty = \max|f|)から BjB_j も可積分です。大数の強法則(定理 4.5[大数の法則と中心極限定理])から、確率 11 で

1J∑j<Jℓj→E[ℓ0],1J∑j<JBj→E[B0],ℓJJ→0\frac1J\sum_{j<J}\ell_j \to \mathbb{E}[\ell_0], \qquad \frac1J\sum_{j<J}B_j \to \mathbb{E}[B_0], \qquad \frac{\ell_J}{J} \to 0

です(最後は、1J∑j≤Jℓj\frac1J\sum_{j \le J}\ell_j と 1J∑j<Jℓj\frac1J\sum_{j<J}\ell_j が同じ極限をもつことから)。

時間平均。 N≥1N \ge 1 に対し、時刻 NN までに完了した区間の個数を JN=#{j≥0:τj+1≤N}J_N = \#\{j \ge 0 : \tau_{j+1} \le N\} とします。τj\tau_j はすべて有限なので、N→∞N \to \infty で JN→∞J_N \to \infty です。JN≥1J_N \ge 1 のとき τJN≤N<τJN+1\tau_{J_N} \le N < \tau_{J_N+1} で、

∑k=0N−1f(Xk)=∑k<τ0f(Xk)+∑j<JNBj+∑k=τJNN−1f(Xk)\sum_{k=0}^{N-1}f(X_k) = \sum_{k<\tau_0}f(X_k) + \sum_{j<J_N}B_j + \sum_{k=\tau_{J_N}}^{N-1}f(X_k)

です。第 1 項の絶対値は ∥f∥∞τ0\|f\|_\infty\tau_0、第 3 項は ∥f∥∞ℓJN\|f\|_\infty\ell_{J_N} 以下です。また τJ=τ0+∑j<Jℓj\tau_{J} = \tau_0 + \sum_{j<J}\ell_j から τJ/J→E[ℓ0]\tau_J/J \to \mathbb{E}[\ell_0] で、τJN/JN≤N/JN<τJN+1/JN\tau_{J_N}/J_N \le N/J_N < \tau_{J_N+1}/J_N の両端が同じ極限をもつので N/JN→E[ℓ0]N/J_N \to \mathbb{E}[\ell_0] です。JNJ_N で割って極限を取ると

1N∑k=0N−1f(Xk)=JNN(1JN∑j<JNBj+O(τ0+ℓJN)JN)→E[B0]E[ℓ0]=:c(f)\frac1N\sum_{k=0}^{N-1}f(X_k) = \frac{J_N}{N}\Bigl(\frac{1}{J_N}\sum_{j<J_N}B_j + \frac{O(\tau_0 + \ell_{J_N})}{J_N}\Bigr) \to \frac{\mathbb{E}[B_0]}{\mathbb{E}[\ell_0]} =: c(f)

が確率 11 で成り立ちます。c(f)c(f) は PP、oo、ff だけで決まり、μ\mu によりません。

極限の同定。 μ=π\mu = \pi とします。定常性から Pπ(Xk=x)=(πPk)(x)=π(x)\mathbb{P}_\pi(X_k = x) = (\pi P^k)(x) = \pi(x) なので、すべての NN で Eπ[1N∑k<Nf(Xk)]=π(f)\mathbb{E}_\pi\bigl[\frac1N\sum_{k<N}f(X_k)\bigr] = \pi(f) です。時間平均は絶対値が ∥f∥∞\|f\|_\infty 以下で c(f)c(f) に概収束するので、優収束定理(定理 7.3[ルベーグ積分の定義と収束定理]。優関数は定数 ∥f∥∞\|f\|_\infty)から期待値も c(f)c(f) に収束し、c(f)=π(f)c(f) = \pi(f) です。

定常分布が π,π′\pi, \pi' の 2 つあれば、どちらについても π(f)=c(f)=π′(f)\pi(f) = c(f) = \pi'(f) がすべての ff で成り立つので、π=π′\pi = \pi' です。

この定理は、MCMC の推定量が一致性をもつことを保証します。初期状態は何でもよく、連鎖が周期的でも構いません(周期的な連鎖では XNX_N の分布は収束しませんが、時間平均は収束します)。必要なのは、既約性と、π\pi が定常分布であることだけです。ただし、定理は収束の速さについて何も言いません。有限の NN での誤差を評価するには、次の 2 つの節の定量的な結果が要ります。

定義 4.1(全変動距離と混合時間)↗

SS 上の確率分布 μ,ν\mu, \nu の全変動距離を ∥μ−ν∥TV=12∑x∣μ(x)−ν(x)∣\|\mu - \nu\|_{\mathrm{TV}} = \frac12\sum_x|\mu(x) - \nu(x)| と定める。定常分布 π\pi をもつ遷移行列 PP について

d(t)=max⁡x∈S∥Pt(x,⋅)−π∥TV,tmix(ε)=min⁡{t≥0:d(t)≤ε}d(t) = \max_{x \in S}\|P^t(x, \cdot) - \pi\|_{\mathrm{TV}}, \qquad t_{\mathrm{mix}}(\varepsilon) = \min\{t \ge 0 : d(t) \le \varepsilon\}

と置き、tmix(ε)t_{\mathrm{mix}}(\varepsilon) を混合時間という(そのような tt がなければ ∞\infty)。

補題 4.2(全変動距離の基本性質)✓

  1. ∥μ−ν∥TV=max⁡A⊆S(μ(A)−ν(A))\|\mu - \nu\|_{\mathrm{TV}} = \max_{A \subseteq S}\bigl(\mu(A) - \nu(A)\bigr)。
  2. 遷移行列 PP について ∥μP−νP∥TV≤∥μ−ν∥TV\|\mu P - \nu P\|_{\mathrm{TV}} \le \|\mu - \nu\|_{\mathrm{TV}}。したがって d(t)d(t) は tt について単調非増加である。
  3. d(t)≤max⁡x,y∥Pt(x,⋅)−Pt(y,⋅)∥TVd(t) \le \max_{x,y}\|P^t(x,\cdot) - P^t(y,\cdot)\|_{\mathrm{TV}}。
証明(補題 4.2)

1. B={x:μ(x)>ν(x)}B = \{x : \mu(x) > \nu(x)\} と置きます。∑x(μ(x)−ν(x))=0\sum_x(\mu(x) - \nu(x)) = 0 から ∑x∈B(μ−ν)(x)=∑x∉B(ν−μ)(x)\sum_{x \in B}(\mu - \nu)(x) = \sum_{x \notin B}(\nu - \mu)(x) で、両者の和が ∑x∣μ(x)−ν(x)∣\sum_x|\mu(x) - \nu(x)| なので、μ(B)−ν(B)=∥μ−ν∥TV\mu(B) - \nu(B) = \|\mu - \nu\|_{\mathrm{TV}} です。任意の AA について μ(A)−ν(A)=∑x∈A(μ−ν)(x)≤∑x∈A∩B(μ−ν)(x)≤μ(B)−ν(B)\mu(A) - \nu(A) = \sum_{x\in A}(\mu - \nu)(x) \le \sum_{x \in A \cap B}(\mu-\nu)(x) \le \mu(B) - \nu(B) です。

2. ∑y∣∑x(μ−ν)(x)P(x,y)∣≤∑x∣μ−ν∣(x)∑yP(x,y)=∑x∣μ(x)−ν(x)∣\sum_y|\sum_x(\mu - \nu)(x)P(x,y)| \le \sum_x|\mu - \nu|(x)\sum_yP(x,y) = \sum_x|\mu(x) - \nu(x)| です。μ=Pt(x,⋅)\mu = P^t(x,\cdot)、ν=π=πP\nu = \pi = \pi P とすると ∥Pt+1(x,⋅)−π∥TV≤∥Pt(x,⋅)−π∥TV\|P^{t+1}(x,\cdot) - \pi\|_{\mathrm{TV}} \le \|P^t(x,\cdot) - \pi\|_{\mathrm{TV}} です。

3. π=πPt\pi = \pi P^t から Pt(x,⋅)−π=∑yπ(y)(Pt(x,⋅)−Pt(y,⋅))P^t(x, \cdot) - \pi = \sum_y\pi(y)\bigl(P^t(x,\cdot) - P^t(y,\cdot)\bigr) です。三角不等式と ∑yπ(y)=1\sum_y\pi(y) = 1 から従います。

定理 4.3(スペクトルギャップによる混合の評価)✓

PP を、正の確率分布 π\pi について可逆で既約な SS 上の遷移行列とし、πmin⁡=min⁡xπ(x)\pi_{\min} = \min_x\pi(x) と置く。定義 2.7 の記号を使う。

  1. すべての x∈Sx \in S と t≥0t \ge 0 について ∥Pt(x,⋅)−π∥TV≤121−π(x)π(x) (1−γ∗)t.\|P^t(x, \cdot) - \pi\|_{\mathrm{TV}} \le \frac12\sqrt{\frac{1 - \pi(x)}{\pi(x)}}\,(1 - \gamma^*)^t.
  2. γ∗>0\gamma^* > 0 ならば、0<ε<10 < \varepsilon < 1 について tmix(ε)≤max⁡{0, ⌈1γ∗ln⁡12επmin⁡⌉}.t_{\mathrm{mix}}(\varepsilon) \le \max\Bigl\{0,\ \Bigl\lceil\frac{1}{\gamma^*}\ln\frac{1}{2\varepsilon\sqrt{\pi_{\min}}}\Bigr\rceil\Bigr\}.
  3. すべての t≥0t \ge 0 で λ∗t≤2d(t)\lambda_*^t \le 2d(t) である。したがって 0<γ∗<10 < \gamma^* < 1、0<ε<120 < \varepsilon < \frac12 ならば tmix(ε)≥(1γ∗−1)ln⁡12ε.t_{\mathrm{mix}}(\varepsilon) \ge \Bigl(\frac{1}{\gamma^*} - 1\Bigr)\ln\frac{1}{2\varepsilon}.
証明(定理 4.3)

補題 2.6 の λj,φj\lambda_j, \varphi_j を使います。

1. xx を固定し、h(y)=Pt(x,y)/π(y)−1h(y) = P^t(x,y)/\pi(y) - 1 と置きます。補題 2.6 の 2 と λ1=1\lambda_1 = 1、φ1=1\varphi_1 = \mathbf{1} から h=∑j≥2λjtφj(x) φjh = \sum_{j \ge 2}\lambda_j^t\varphi_j(x)\,\varphi_j で、正規直交性から ⟨h,h⟩π=∑j≥2λj2tφj(x)2\langle h, h\rangle_\pi = \sum_{j\ge2}\lambda_j^{2t}\varphi_j(x)^2 です。Cauchy–Schwarz の不等式(ℓ2(π)\ell^2(\pi) での ∣h∣|h| と 1\mathbf{1} の内積)から

4∥Pt(x,⋅)−π∥TV2=(∑yπ(y)∣h(y)∣)2≤⟨h,h⟩π=∑j≥2λj2tφj(x)2≤λ∗2t∑j≥2φj(x)24\|P^t(x,\cdot) - \pi\|_{\mathrm{TV}}^2 = \Bigl(\sum_y\pi(y)|h(y)|\Bigr)^2 \le \langle h, h\rangle_\pi = \sum_{j \ge 2}\lambda_j^{2t}\varphi_j(x)^2 \le \lambda_*^{2t}\sum_{j \ge 2}\varphi_j(x)^2

です。∑j≥1φj(x)2=1/π(x)\sum_{j\ge1}\varphi_j(x)^2 = 1/\pi(x) と φ1(x)2=1\varphi_1(x)^2 = 1 から ∑j≥2φj(x)2=(1−π(x))/π(x)\sum_{j\ge2}\varphi_j(x)^2 = (1 - \pi(x))/\pi(x) です。平方根を取り、λ∗=1−γ∗\lambda_* = 1 - \gamma^* を代入します。

2. 1−γ∗≤e−γ∗1 - \gamma^* \le e^{-\gamma^*} と 1 から d(t)≤12πmin⁡e−γ∗td(t) \le \frac{1}{2\sqrt{\pi_{\min}}}e^{-\gamma^*t} です。右辺が ε\varepsilon 以下になるのは t≥1γ∗ln⁡12επmin⁡t \ge \frac{1}{\gamma^*}\ln\frac{1}{2\varepsilon\sqrt{\pi_{\min}}} のときです。tt は 00 以上の整数なので、この値が負のとき(2επmin⁡>12\varepsilon\sqrt{\pi_{\min}} > 1。状態数が 3 以下の場合にしか起きません)は t=0t = 0 で既に成り立ち、tmix(ε)=0t_{\mathrm{mix}}(\varepsilon) = 0 です。

3. d=1d = 1 なら λ∗=0\lambda_* = 0 で自明なので d≥2d \ge 2 とし、∣λj∣=λ∗|\lambda_j| = \lambda_* となる j≥2j \ge 2 を取ります。φj\varphi_j は φ1=1\varphi_1 = \mathbf{1} と直交するので ∑yπ(y)φj(y)=0\sum_y\pi(y)\varphi_j(y) = 0 です。よって任意の xx で

λjtφj(x)=(Ptφj)(x)=∑y(Pt(x,y)−π(y))φj(y)\lambda_j^t\varphi_j(x) = (P^t\varphi_j)(x) = \sum_y\bigl(P^t(x,y) - \pi(y)\bigr)\varphi_j(y)

で、絶対値を取ると λ∗t∣φj(x)∣≤∥φj∥∞∑y∣Pt(x,y)−π(y)∣≤2d(t)∥φj∥∞\lambda_*^t|\varphi_j(x)| \le \|\varphi_j\|_\infty\sum_y|P^t(x,y) - \pi(y)| \le 2d(t)\|\varphi_j\|_\infty です。∣φj(x)∣=∥φj∥∞>0|\varphi_j(x)| = \|\varphi_j\|_\infty > 0 となる xx を取って λ∗t≤2d(t)\lambda_*^t \le 2d(t) です。

t=tmix(ε)t = t_{\mathrm{mix}}(\varepsilon)(有限としてよい)では λ∗t≤2ε\lambda_*^t \le 2\varepsilon なので、tln⁡(1/λ∗)≥ln⁡(1/(2ε))t\ln(1/\lambda_*) \ge \ln(1/(2\varepsilon)) です。ln⁡u≤u−1\ln u \le u - 1 を u=1/λ∗u = 1/\lambda_* に使うと ln⁡(1/λ∗)≤1λ∗−1=γ∗1−γ∗\ln(1/\lambda_*) \le \frac{1}{\lambda_*} - 1 = \frac{\gamma^*}{1 - \gamma^*} なので、t≥1−γ∗γ∗ln⁡12εt \ge \frac{1-\gamma^*}{\gamma^*}\ln\frac{1}{2\varepsilon} です。

1 と 3 を合わせると、混合時間は緩和時間 trel=1/γ∗t_{\mathrm{rel}} = 1/\gamma^* で上下から挟まれます。上界には ln⁡(1/πmin⁡)\ln(1/\pi_{\min}) の因子が付きます。これは、最悪の初期状態(確率の小さい 1 点)から出発することの代価で、状態数が指数的に大きい系では無視できない大きさです({0,1}n\{0,1\}^n なら ln⁡(1/πmin⁡)=nln⁡2\ln(1/\pi_{\min}) = n\ln2)。

例 4.4(2 状態の連鎖)

S={1,2}S = \{1, 2\}、P=(1−aab1−b)P = \begin{pmatrix}1-a & a\\ b & 1-b\end{pmatrix}(0<a,b≤10 < a, b \le 1)は π=(ba+b,aa+b)\pi = (\frac{b}{a+b}, \frac{a}{a+b}) について可逆で、固有値は 11 と λ2=1−a−b\lambda_2 = 1 - a - b です。φ2=(a/b,−b/a)\varphi_2 = (\sqrt{a/b}, -\sqrt{b/a}) が ℓ2(π)\ell^2(\pi) で正規化された固有関数で(π(φ2)=0\pi(\varphi_2) = 0、π(φ22)=ba+b⋅ab+aa+b⋅ba=1\pi(\varphi_2^2) = \frac{b}{a+b}\cdot\frac ab + \frac{a}{a+b}\cdot\frac ba = 1)、補題 2.6 の 2 から

Pt(1,2)−π(2)=π(2)λ2tφ2(1)φ2(2)=−aa+bλ2t,∥Pt(1,⋅)−π∥TV=aa+b∣λ2∣tP^t(1, 2) - \pi(2) = \pi(2)\lambda_2^t\varphi_2(1)\varphi_2(2) = -\frac{a}{a+b}\lambda_2^t, \qquad \|P^t(1,\cdot) - \pi\|_{\mathrm{TV}} = \frac{a}{a+b}|\lambda_2|^t

です。定理 4.3 の 1 の右辺は 12a/b ∣λ2∣t\frac12\sqrt{a/b}\,|\lambda_2|^t です。相加・相乗平均の不等式から aa+b≤a2ab=12a/b\frac{a}{a+b} \le \frac{a}{2\sqrt{ab}} = \frac12\sqrt{a/b} で、a=ba = b のとき等号が成り立ちます。対称な 2 状態の連鎖では、定理の評価はこれ以上改善できません。a+b=1a + b = 1 のときは λ2=0\lambda_2 = 0 で、1 歩で定常分布に達します(独立な標本です)。a=b=1a = b = 1 のときは λ2=−1\lambda_2 = -1、γ∗=0\gamma^* = 0 で、連鎖は周期 2 で分布は収束しません。

例 4.5(完全グラフ・円周・超立方体のスペクトルギャップ)

  • 完全グラフ。 P(x,y)=1/dP(x,y) = 1/d(すべての x,yx, y)では P2=PP^2 = P で、固有値は 11 と 00 だけです。γ=γ∗=1\gamma = \gamma^* = 1 で、1 歩で混合します。
  • 円周。 Z/n\mathbb{Z}/n 上の単純ランダムウォーク(nn は奇数)では γ=1−cos⁡(2π/n)≈2π2/n2\gamma = 1 - \cos(2\pi/n) \approx 2\pi^2/n^2 です(例 6.4[Markov 連鎖と Poisson 過程])。拡散的な動きでは、端から端までの距離の 2 乗に比例する時間がかかります。
  • 超立方体。 S={0,1}nS = \{0,1\}^n の上で、「座標 ii を一様に選び、その成分を一様な乱数ビットで置き換える」連鎖(12\frac12 の確率でとどまる怠惰なランダムウォーク)を考えます。π\pi は一様分布です。u∈{0,1}nu \in \{0,1\}^n に対して χu(x)=(−1)⟨u,x⟩\chi_u(x) = (-1)^{\langle u, x\rangle} と置くと、選ばれた座標 ii が ui=0u_i = 0 なら χu\chi_u の値は変わらず、ui=1u_i = 1 なら新しいビットについての平均が 00 なので、 (Pχu)(x)=(1−∣u∣n)χu(x),∣u∣=u1+⋯+un(P\chi_u)(x) = \Bigl(1 - \frac{|u|}{n}\Bigr)\chi_u(x), \qquad |u| = u_1 + \cdots + u_n です。2n2^n 個の χu\chi_u は ℓ2(π)\ell^2(\pi) の正規直交基底なので、固有値は 1−k/n1 - k/n(k=0,…,nk = 0, \ldots, n、重複度 (nk)\binom nk)で尽きます。γ=γ∗=1/n\gamma = \gamma^* = 1/n です。定理 4.3 の 2 は tmix(ε)≤⌈n(n2ln⁡2+ln⁡12ε)⌉t_{\mathrm{mix}}(\varepsilon) \le \lceil n(\frac n2\ln2 + \ln\frac{1}{2\varepsilon})\rceil を与えますが、これは n2n^2 の程度で、真の大きさ nln⁡nn\ln n の程度(§7)より粗い評価です。

定義 5.1(漸近分散)↗

π\pi を定常分布にもつ連鎖を X0∼πX_0 \sim \pi から出発させる。f:S→Rf : S \to \mathbb{R} に対して、極限

σf2=lim⁡N→∞N Varπ(1N∑k=0N−1f(Xk))\sigma_f^2 = \lim_{N\to\infty}N\,\mathrm{Var}_\pi\Bigl(\frac1N\sum_{k=0}^{N-1}f(X_k)\Bigr)

が存在するとき、これを ff の漸近分散という(Varπ\mathrm{Var}_\pi の添字は、ここでは初期分布が π\pi であることを表す)。

独立な標本なら σf2=Varπ(f)\sigma_f^2 = \mathrm{Var}_\pi(f) です(定理 2.2[Monte Carlo 積分と分散低減] の 2)。比 σf2/Varπ(f)\sigma_f^2/\mathrm{Var}_\pi(f) は、「連鎖の何歩が独立な標本 1 個に相当するか」を表します。

定理 5.2(可逆な連鎖の漸近分散)✓

PP を、正の確率分布 π\pi について可逆で既約な SS 上の遷移行列とする。任意の f:S→Rf : S \to \mathbb{R} について漸近分散が存在し、補題 2.6 の記号で

σf2=∑j=2d⟨f,φj⟩π2 1+λj1−λj≤(2γ−1)Varπ(f)\sigma_f^2 = \sum_{j=2}^{d}\langle f, \varphi_j\rangle_\pi^2\,\frac{1 + \lambda_j}{1 - \lambda_j} \le \Bigl(\frac{2}{\gamma} - 1\Bigr)\mathrm{Var}_\pi(f)

である。ff が λ2\lambda_2 の固有関数のとき等号が成り立つ。

証明(定理 5.2)

aj=⟨f,φj⟩πa_j = \langle f, \varphi_j\rangle_\pi と置きます。X0∼πX_0 \sim \pi のとき、Eπ[f(X0)f(Xk)]=∑xπ(x)f(x)(Pkf)(x)=⟨f,Pkf⟩π=∑jλjkaj2\mathbb{E}_\pi[f(X_0)f(X_k)] = \sum_x\pi(x)f(x)(P^kf)(x) = \langle f, P^kf\rangle_\pi = \sum_j\lambda_j^ka_j^2(補題 2.6 の 2)、Eπ[f(Xk)]=π(f)=a1\mathbb{E}_\pi[f(X_k)] = \pi(f) = a_1 なので、自己共分散は

C(k):=Covπ(f(X0),f(Xk))=∑j≥2aj2λjkC(k) := \mathrm{Cov}_\pi\bigl(f(X_0), f(X_k)\bigr) = \sum_{j \ge 2}a_j^2\lambda_j^k

です。定常性から Covπ(f(Xi),f(Xi+k))=C(k)\mathrm{Cov}_\pi(f(X_i), f(X_{i+k})) = C(k) で、分散の和の公式(命題 5.3[確率変数と期待値] の 4)から

N Varπ(1N∑k<Nf(Xk))=C(0)+2∑k=1N−1(1−kN)C(k)=∑j≥2aj2(1+2∑k=1N−1(1−kN)λjk)N\,\mathrm{Var}_\pi\Bigl(\frac1N\sum_{k<N}f(X_k)\Bigr) = C(0) + 2\sum_{k=1}^{N-1}\Bigl(1 - \frac kN\Bigr)C(k) = \sum_{j \ge 2}a_j^2\Bigl(1 + 2\sum_{k=1}^{N-1}\Bigl(1 - \frac kN\Bigr)\lambda_j^k\Bigr)

です。既約性から j≥2j \ge 2 では −1≤λj<1-1 \le \lambda_j < 1 です(補題 2.6 の 3)。λ∈[−1,1)\lambda \in [-1, 1) について、部分和 sm=∑k=1mλk=λ(1−λm)/(1−λ)s_m = \sum_{k=1}^m\lambda^k = \lambda(1 - \lambda^m)/(1 - \lambda) を使うと

∑k=1N−1(1−kN)λk=1N∑m=1N−1sm=λ1−λ(N−1N−1N∑m=1N−1λm)\sum_{k=1}^{N-1}\Bigl(1 - \frac kN\Bigr)\lambda^k = \frac1N\sum_{m=1}^{N-1}s_m = \frac{\lambda}{1-\lambda}\Bigl(\frac{N-1}{N} - \frac1N\sum_{m=1}^{N-1}\lambda^m\Bigr)

です(最初の等号は、λk\lambda^k が sk,sk+1,…,sN−1s_k, s_{k+1}, \ldots, s_{N-1} の N−kN - k 個に現れることから)。∣λ∣<1|\lambda| < 1 なら ∑mλm\sum_m\lambda^m は有界、λ=−1\lambda = -1 なら ∑m=1N−1(−1)m∈{−1,0}\sum_{m=1}^{N-1}(-1)^m \in \{-1, 0\} なので、どちらの場合も 1N∑m<Nλm→0\frac1N\sum_{m<N}\lambda^m \to 0 です。よって極限は λ/(1−λ)\lambda/(1-\lambda) で、

σf2=∑j≥2aj2(1+2λj1−λj)=∑j≥2aj2 1+λj1−λj\sigma_f^2 = \sum_{j \ge 2}a_j^2\Bigl(1 + \frac{2\lambda_j}{1 - \lambda_j}\Bigr) = \sum_{j \ge 2}a_j^2\,\frac{1 + \lambda_j}{1 - \lambda_j}

です。λ↦(1+λ)/(1−λ)\lambda \mapsto (1+\lambda)/(1-\lambda) は [−1,1)[-1, 1) で単調増加なので、各項の係数は (1+λ2)/(1−λ2)=(2−γ)/γ(1 + \lambda_2)/(1 - \lambda_2) = (2 - \gamma)/\gamma 以下で、∑j≥2aj2=Varπ(f)\sum_{j\ge2}a_j^2 = \mathrm{Var}_\pi(f) から不等式を得ます。f=φ2f = \varphi_2 なら a2=1a_2 = 1、他は 00 で等号です。

式の形から 3 つのことが読み取れます。第一に、λj\lambda_j が 11 に近い成分(ゆっくり緩和するモード)が分散を支配します。第二に、負の固有値は分散を減らします。λj<0\lambda_j < 0 の成分の係数は 11 より小さく、独立な標本より精度がよくなります(隣り合う標本が負に相関する、対称変量と同じ効果です)。分布の収束(定理 4.3)では ∣λj∣|\lambda_j| が効くので負の固有値は害ですが、時間平均の精度では益です。第三に、上界に現れるのは絶対ギャップ γ∗\gamma^* ではなく γ\gamma です。2 状態の連鎖(例 4.4)では j=2j = 2 しかないので、すべての ff で σf2=(2γ−1)Varπ(f)\sigma_f^2 = (\frac2\gamma - 1)\mathrm{Var}_\pi(f) と等号が成り立ちます。

同じ π\pi を定常分布にもつ連鎖は無数にあります。どれを使うべきかを決める一般的な原理が、次の定理です。準備として、正定値な作用素の逆についての補題を示します。漸近分散は、§5.1 の式の書き換えで (I−P)(I - P) の逆を含む形になります。そのため、「I−PI - P が大きいほど逆は小さい」という大小関係が、連鎖の比較に必要になります。

補題 5.3(逆作用素の単調性)✓

VV を有限次元の実内積空間、A,BA, B を VV 上の自己共役な線形写像とし、すべての g≠0g \ne 0 で ⟨g,Ag⟩≥⟨g,Bg⟩>0\langle g, Ag\rangle \ge \langle g, Bg\rangle > 0 とする。このとき A,BA, B は可逆で、すべての f∈Vf \in V について

⟨f,A−1f⟩≤⟨f,B−1f⟩.\langle f, A^{-1}f\rangle \le \langle f, B^{-1}f\rangle.
証明(補題 5.3)

Bg=0Bg = 0 なら ⟨g,Bg⟩=0\langle g, Bg\rangle = 0 から g=0g = 0 なので、BB は単射で、有限次元なので可逆です。AA も同様です。BB が自己共役で B−1B^{-1} もそうであることを使うと、任意の f,gf, g について

⟨g−B−1f, B(g−B−1f)⟩=⟨g,Bg⟩−2⟨f,g⟩+⟨f,B−1f⟩≥0\bigl\langle g - B^{-1}f,\ B(g - B^{-1}f)\bigr\rangle = \langle g, Bg\rangle - 2\langle f, g\rangle + \langle f, B^{-1}f\rangle \ge 0

で、等号は g=B−1fg = B^{-1}f のときです。すなわち

⟨f,B−1f⟩=max⁡g∈V(2⟨f,g⟩−⟨g,Bg⟩)\langle f, B^{-1}f\rangle = \max_{g \in V}\bigl(2\langle f, g\rangle - \langle g, Bg\rangle\bigr)

です。AA についても同じ式が成り立ちます。仮定から、各 gg で 2⟨f,g⟩−⟨g,Ag⟩≤2⟨f,g⟩−⟨g,Bg⟩2\langle f, g\rangle - \langle g, Ag\rangle \le 2\langle f, g\rangle - \langle g, Bg\rangle なので、最大値を比べて結論を得ます。

定理 5.4(Peskun の順序)✓

P1,P2P_1, P_2 を、同じ正の確率分布 π\pi について可逆で既約な SS 上の遷移行列とし、すべての x≠yx \ne y で

P1(x,y)≥P2(x,y)P_1(x, y) \ge P_2(x, y)

とする。このとき次が成り立つ。

  1. すべての gg で ⟨g,(I−P1)g⟩π≥⟨g,(I−P2)g⟩π\langle g, (I - P_1)g\rangle_\pi \ge \langle g, (I - P_2)g\rangle_\pi。したがって γ(P1)≥γ(P2)\gamma(P_1) \ge \gamma(P_2)。
  2. すべての f:S→Rf : S \to \mathbb{R} で σf2(P1)≤σf2(P2)\sigma_f^2(P_1) \le \sigma_f^2(P_2)。
証明(定理 5.4)

1. Dirichlet 形式の表示(定義 6.1[Markov 連鎖と Poisson 過程])

⟨g,(I−Pi)g⟩π=12∑x≠yπ(x)Pi(x,y)(g(x)−g(y))2\langle g, (I - P_i)g\rangle_\pi = \frac12\sum_{x \ne y}\pi(x)P_i(x,y)\bigl(g(x) - g(y)\bigr)^2

には非対角成分しか現れず(x=yx = y の項は 00)、各項の係数は非負です。P1(x,y)≥P2(x,y)P_1(x,y) \ge P_2(x,y) から不等式が従います。スペクトルギャップはこの量と Varπ(g)\mathrm{Var}_\pi(g) の比の最小値なので(命題 6.2[Markov 連鎖と Poisson 過程] の 1)、γ(P1)≥γ(P2)\gamma(P_1) \ge \gamma(P_2) です。

2. H0={g:π(g)=0}H_0 = \{g : \pi(g) = 0\} を、内積 ⟨⋅,⋅⟩π\langle\cdot,\cdot\rangle_\pi をもつ実内積空間とみます。P=P1P = P_1 または P2P_2 について、定常性から π(Pg)=π(g)\pi(Pg) = \pi(g) なので I−PI - P は H0H_0 を H0H_0 に写し、可逆性から自己共役です。この制限を APA_P と書きます。補題 2.6 の基底では、H0H_0 は φ2,…,φd\varphi_2, \ldots, \varphi_d で張られ、APφj=(1−λj)φjA_P\varphi_j = (1 - \lambda_j)\varphi_j です。既約性から 1−λj≥γ>01 - \lambda_j \ge \gamma > 0 なので、g∈H0g \in H_0、g≠0g \ne 0 について ⟨g,APg⟩π=∑j≥2(1−λj)⟨g,φj⟩π2>0\langle g, A_Pg\rangle_\pi = \sum_{j\ge2}(1 - \lambda_j)\langle g, \varphi_j\rangle_\pi^2 > 0 で、AP−1φj=φj/(1−λj)A_P^{-1}\varphi_j = \varphi_j/(1 - \lambda_j) です。

f0=f−π(f)∈H0f_0 = f - \pi(f) \in H_0 と置くと、j≥2j \ge 2 で ⟨f0,φj⟩π=⟨f,φj⟩π=:aj\langle f_0, \varphi_j\rangle_\pi = \langle f, \varphi_j\rangle_\pi =: a_j です。定理 5.2 の式で 1+λj1−λj=21−λj−1\frac{1+\lambda_j}{1-\lambda_j} = \frac{2}{1-\lambda_j} - 1 と書き直すと

σf2(P)=2∑j≥2aj21−λj−∑j≥2aj2=2 ⟨f0,AP−1f0⟩π−⟨f0,f0⟩π\sigma_f^2(P) = 2\sum_{j \ge 2}\frac{a_j^2}{1 - \lambda_j} - \sum_{j \ge 2}a_j^2 = 2\,\langle f_0, A_P^{-1}f_0\rangle_\pi - \langle f_0, f_0\rangle_\pi

です。1 から、すべての g∈H0g \in H_0、g≠0g \ne 0 で ⟨g,AP1g⟩π≥⟨g,AP2g⟩π>0\langle g, A_{P_1}g\rangle_\pi \ge \langle g, A_{P_2}g\rangle_\pi > 0 なので、補題 5.3 から ⟨f0,AP1−1f0⟩π≤⟨f0,AP2−1f0⟩π\langle f_0, A_{P_1}^{-1}f_0\rangle_\pi \le \langle f_0, A_{P_2}^{-1}f_0\rangle_\pi です。第 2 項 ⟨f0,f0⟩π=Varπ(f)\langle f_0, f_0\rangle_\pi = \mathrm{Var}_\pi(f) は連鎖によらないので、σf2(P1)≤σf2(P2)\sigma_f^2(P_1) \le \sigma_f^2(P_2) です。

「現在の状態にとどまる確率が小さい連鎖ほど、どんな量を測っても精度がよい」という、強い主張です。仮定は成分ごとの不等式なので、検証は簡単です。ただし、比較できるのは同じ移動先への確率が一斉に大きい場合だけで、移動先の集合が違う連鎖(局所的な提案と大域的な提案)は、この順序では比べられません。

系 5.5(Metropolis の採択関数の最適性)✓

π\pi を正の確率分布、QQ を提案とし、aa を採択関数(定義 2.3)で PaP_a が既約になるものとする。

  1. PaMHP_{a_{\mathrm{MH}}} は既約で、すべての ff について σf2(PaMH)≤σf2(Pa)\sigma_f^2(P_{a_{\mathrm{MH}}}) \le \sigma_f^2(P_a)、また γ(PaMH)≥γ(Pa)\gamma(P_{a_{\mathrm{MH}}}) \ge \gamma(P_a)。
  2. Barker の採択関数による連鎖 PaBP_{a_{\mathrm{B}}} が既約ならば、すべての ff で σf2(PaMH)≤σf2(PaB)≤2 σf2(PaMH)+Varπ(f).\sigma_f^2(P_{a_{\mathrm{MH}}}) \le \sigma_f^2(P_{a_{\mathrm{B}}}) \le 2\,\sigma_f^2(P_{a_{\mathrm{MH}}}) + \mathrm{Var}_\pi(f).
証明(系 5.5)

1. 命題 2.4 の 3 から、x≠yx \ne y で PaMH(x,y)≥Pa(x,y)P_{a_{\mathrm{MH}}}(x,y) \ge P_a(x,y) です。PaP_a で正の確率をもつ道は PaMHP_{a_{\mathrm{MH}}} でも正の確率をもつので、PaMHP_{a_{\mathrm{MH}}} は既約です。どちらも π\pi について可逆なので(同じ命題の 1)、定理 5.4 が使えます。

2. 左の不等式は 1 を a=aBa = a_{\mathrm{B}} に使ったものです(aBa_{\mathrm{B}} が採択関数であることは 命題 2.4 の 2)。右の不等式を示します。r≥0r \ge 0 について、r≤1r \le 1 なら r1+r≥r2\frac{r}{1+r} \ge \frac r2、r≥1r \ge 1 なら r1+r≥12\frac{r}{1+r} \ge \frac12 なので、aB≥12aMHa_{\mathrm{B}} \ge \frac12a_{\mathrm{MH}}、したがって x≠yx \ne y で PaB(x,y)≥12PaMH(x,y)P_{a_{\mathrm{B}}}(x,y) \ge \frac12P_{a_{\mathrm{MH}}}(x,y) です。定理 5.4 の証明の記号で、Dirichlet 形式の表示から ⟨g,ABg⟩π≥⟨g,12AMHg⟩π>0\langle g, A_{\mathrm{B}}g\rangle_\pi \ge \langle g, \frac12A_{\mathrm{MH}}g\rangle_\pi > 0(g∈H0g \in H_0、g≠0g \ne 0)です。補題 5.3 を A=ABA = A_{\mathrm{B}}、B=12AMHB = \frac12A_{\mathrm{MH}} に使うと ⟨f0,AB−1f0⟩π≤2⟨f0,AMH−1f0⟩π\langle f_0, A_{\mathrm{B}}^{-1}f_0\rangle_\pi \le 2\langle f_0, A_{\mathrm{MH}}^{-1}f_0\rangle_\pi です。よって

σf2(PaB)=2⟨f0,AB−1f0⟩π−Varπ(f)≤4⟨f0,AMH−1f0⟩π−Varπ(f)=2 σf2(PaMH)+Varπ(f)\sigma_f^2(P_{a_{\mathrm{B}}}) = 2\langle f_0, A_{\mathrm{B}}^{-1}f_0\rangle_\pi - \mathrm{Var}_\pi(f) \le 4\langle f_0, A_{\mathrm{MH}}^{-1}f_0\rangle_\pi - \mathrm{Var}_\pi(f) = 2\,\sigma_f^2(P_{a_{\mathrm{MH}}}) + \mathrm{Var}_\pi(f)

です。

次のコードは、20 状態の 2 つ山の分布について、Metropolis と Barker の遷移行列を作り、固有値から漸近分散を厳密に計算して順序を確かめます。あわせて、定常分布から出発する独立な 400 本の連鎖(長さ N=2×104N = 2\times10^4)の時間平均の分散を、定理 5.2 の証明の有限 NN の式と比べます。

# Python 3.9.6, NumPy 2.0.2
import numpy as np
n = 20
x = np.arange(n)
V = 4.0 * ((x - 9.5) ** 2 / 36.0 - 1.0) ** 2 # 2 つ山(谷は x = 3.5, 15.5、障壁の高さは約 4)
beta = 0.5
pi = np.exp(-beta * V); pi /= pi.sum()
def chain(accept): # 提案は左右の隣に 1/2 ずつ(端の外への提案は棄却)
P = np.zeros((n, n))
for i in range(n):
for j in (i - 1, i + 1):
if 0 <= j < n:
P[i, j] = 0.5 * accept(pi[j] / pi[i])
P[i, i] = 1.0 - P[i].sum()
return P
def spectrum(P): # pi で対称化して固有分解
d = np.sqrt(pi)
lam, U = np.linalg.eigh(d[:, None] * P / d[None, :])
return lam[::-1], (U / d[:, None])[:, ::-1] # 固有値(降順)と l^2(pi) で正規直交な固有関数
def variances(P, f, N): # 漸近分散と、有限の N での N * Var(時間平均)
lam, phi = spectrum(P)
a2, l = (phi.T @ (pi * f))[1:] ** 2, lam[1:]
s_inf = np.sum(a2 * (1 + l) / (1 - l))
s_N = np.sum(a2 * ((1 + l) / (1 - l) - 2 * l * (1 - l**N) / (N * (1 - l) ** 2)))
return float(s_inf), float(s_N), 1 - lam[1]
f = (x >= 10).astype(float) # 右の山にいる割合
var_pi = float(pi @ f**2 - (pi @ f) ** 2)
chains = {"Metropolis": chain(lambda r: min(1.0, r)), "Barker": chain(lambda r: r / (1.0 + r))}
print(f"Var_pi(f) = {var_pi:.4f}")
rng = np.random.default_rng(20261008)
N, R = 20000, 400
for name, P in chains.items():
s_inf, s_N, gap = variances(P, f, N)
cum = np.cumsum(P, axis=1); cum[:, -1] = 1.0
X = rng.choice(n, size=R, p=pi) # 定常分布から出発する独立な R 本
tot = np.zeros(R)
for _ in range(N):
tot += f[X]
X = (rng.random(R)[:, None] > cum[X]).sum(axis=1)
v = N * (tot / N).var(ddof=1)
se = v * np.sqrt(2 / (R - 1))
print(f"{name:10s} gamma = {gap:.5f} sigma_f^2 = {s_inf:7.2f} (2/gamma-1)Var = {(2/gap-1)*var_pi:7.2f}"
f" N*Var: 厳密 = {s_N:7.2f}, 標本 = {v:7.2f} ± {se:.2f}")
D = chains["Metropolis"] - chains["Barker"]
print("非対角成分がすべて Metropolis >= Barker:", bool(np.all(D[~np.eye(n, dtype=bool)] >= 0)))
Var_pi(f) = 0.2500
Metropolis gamma = 0.00556 sigma_f^2 = 86.05 (2/gamma-1)Var = 89.66 N*Var: 厳密 = 85.28, 標本 = 82.38 ± 5.83
Barker gamma = 0.00316 sigma_f^2 = 152.09 (2/gamma-1)Var = 157.93 N*Var: 厳密 = 149.69, 標本 = 135.73 ± 9.61
非対角成分がすべて Metropolis >= Barker: True

漸近分散は Metropolis が 86.0586.05、Barker が 152.09152.09 で、系 5.5 の 86.05≤152.09≤2×86.05+0.2586.05 \le 152.09 \le 2\times86.05 + 0.25 が成り立っています。どちらも 定理 5.2 の上界 (2/γ−1)Varπ(f)(2/\gamma - 1)\mathrm{Var}_\pi(f) の 96%96\% で、「右の山にいるか」という量が最も遅いモードにほぼ一致することを示しています。σf2/Varπ(f)≈344\sigma_f^2/\mathrm{Var}_\pi(f) \approx 344 なので、この連鎖の 344 歩が独立な標本 1 個に相当します。シミュレーションの値は、有限の NN での厳密な値から標準誤差の 0.50.5 倍と 1.51.5 倍の位置にあります(標準誤差は、400 個の標本分散のばらつきの正規近似 2/(R−1)\sqrt{2/(R-1)} によります)。

例 5.6(提案の幅・採択率・漸近分散)

採択率が高いほどよい連鎖とは限りません。S={−30,…,30}S = \{-30, \ldots, 30\} の上の、標準偏差 55 の正規分布を離散化した π\pi に対して、提案を「現在地から ±w\pm w 以内の一様分布」とした Metropolis 法を考え、f(x)=xf(x) = x の漸近分散を固有値から厳密に計算します。

# Python 3.9.6, NumPy 2.0.2
import numpy as np
n = 61
x = np.arange(n) - 30
pi = np.exp(-0.5 * (x / 5.0) ** 2); pi /= pi.sum() # 標準偏差 5 の離散化した正規分布
f = x.astype(float)
var_pi = float(pi @ f**2 - (pi @ f) ** 2)
print(" 幅 w 採択率 gamma sigma_f^2 / Var_pi(f)")
for w in (1, 2, 4, 8, 12, 16, 24, 40):
P = np.zeros((n, n))
for i in range(n):
for k in range(-w, w + 1): # 提案は i-w, ..., i+w の一様分布(範囲の外は棄却)
j = i + k
if k != 0 and 0 <= j < n:
P[i, j] = min(1.0, pi[j] / pi[i]) / (2 * w + 1)
P[i, i] = 1.0 - P[i].sum()
acc = float(pi @ (1 - np.diag(P)))
d = np.sqrt(pi)
lam, U = np.linalg.eigh(d[:, None] * P / d[None, :])
a = (U / d[:, None]).T.dot(pi * f)
s2 = float(np.sum(a[:-1] ** 2 * (1 + lam[:-1]) / (1 - lam[:-1])))
print(f" {w:3d} {acc:.3f} {1 - lam[-2]:.5f} {s2 / var_pi:8.2f}")
幅 w 採択率 gamma sigma_f^2 / Var_pi(f)
1 0.613 0.01221 162.55
2 0.705 0.03377 57.88
4 0.715 0.09413 19.83
8 0.622 0.22515 7.31
12 0.518 0.31904 4.58
16 0.429 0.37455 3.71
24 0.304 0.25578 4.08
40 0.185 0.15473 7.05

幅が小さいと採択率は高い(w=4w = 4 で 0.720.72)のに、1 歩が小さすぎて漸近分散は大きくなります。幅が大きすぎると、提案が裾に飛んで棄却され、連鎖が動かなくなります。漸近分散が最小になるのは w=16w = 16(分布の標準偏差の約 3 倍)で、そのときの採択率は 0.430.43 です。幅の違う提案は移動先の集合が違うので 定理 5.4 では比べられず、このように固有値を計算する(あるいは実際に走らせて次章の方法で漸近分散を推定する)必要があります。

6. ボトルネック比と Cheeger の不等式

Section titled “6. ボトルネック比と Cheeger の不等式”

実際の MCMC では、状態数が大きすぎて固有値は計算できません。スペクトルギャップを、状態空間の「くびれ」という幾何学的な量で評価するのがこの節です。

たとえば山が 2 つある分布で、山の間の谷を通る確率が小さければ、連鎖は片方の山に長くとどまり、混合は遅くなります。ボトルネック比は、この「出にくさ」を、集合 AA から出る確率の最小値として数にしたものです。

定義 6.1(ボトルネック比)↗

PP を π\pi について可逆な遷移行列とする。Q(x,y)=π(x)P(x,y)Q(x,y) = \pi(x)P(x,y) を辺 (x,y)(x,y) の流量といい、A,B⊆SA, B \subseteq S に対して Q(A,B)=∑x∈A,y∈BQ(x,y)Q(A, B) = \sum_{x\in A, y\in B}Q(x,y) と書く。可逆性から Q(x,y)=Q(y,x)Q(x,y) = Q(y,x) である。π(A)>0\pi(A) > 0 のとき

Φ(A)=Q(A,Ac)π(A),Φ∗=min⁡{Φ(A):A⊆S, 0<π(A)≤12}\Phi(A) = \frac{Q(A, A^c)}{\pi(A)}, \qquad \Phi_* = \min\bigl\{\Phi(A) : A \subseteq S,\ 0 < \pi(A) \le \tfrac12\bigr\}

と置き、Φ∗\Phi_* をボトルネック比(conductance)という。

Φ(A)\Phi(A) は、定常な連鎖が AA の中にいるという条件のもとで、次の 1 歩で AA から出る確率です。Φ∗\Phi_* が小さいことは、出にくい集合があることを意味します。

定理 6.2(Cheeger の不等式)✓

∣S∣≥2|S| \ge 2 とし、PP を正の確率分布 π\pi について可逆で既約な SS 上の遷移行列とする。このとき

Φ∗22≤γ≤2Φ∗.\frac{\Phi_*^2}{2} \le \gamma \le 2\Phi_*.
証明(定理 6.2)

Dirichlet 形式を E(f,f)=⟨f,(I−P)f⟩π=12∑x,yQ(x,y)(f(x)−f(y))2\mathcal{E}(f,f) = \langle f, (I-P)f\rangle_\pi = \frac12\sum_{x,y}Q(x,y)(f(x) - f(y))^2 と書きます(定義 6.1[Markov 連鎖と Poisson 過程])。γ=min⁡E(f,f)/Varπ(f)\gamma = \min\mathcal{E}(f,f)/\mathrm{Var}_\pi(f) です(命題 6.2[Markov 連鎖と Poisson 過程] の 1)。

上界 γ≤2Φ∗\gamma \le 2\Phi_*。 0<π(A)≤120 < \pi(A) \le \frac12 なる AA を取り、f=1Af = \mathbf{1}_A とします。(f(x)−f(y))2(f(x) - f(y))^2 は、x,yx, y の一方だけが AA に属するとき 11、それ以外は 00 なので、E(f,f)=12(Q(A,Ac)+Q(Ac,A))=Q(A,Ac)\mathcal{E}(f,f) = \frac12(Q(A, A^c) + Q(A^c, A)) = Q(A, A^c) です。Varπ(f)=π(A)(1−π(A))≥12π(A)\mathrm{Var}_\pi(f) = \pi(A)(1 - \pi(A)) \ge \frac12\pi(A) なので、γ≤Q(A,Ac)/(12π(A))=2Φ(A)\gamma \le Q(A, A^c)/(\frac12\pi(A)) = 2\Phi(A) です。AA について最小を取ります。

下界 γ≥Φ∗2/2\gamma \ge \Phi_*^2/2。 2 段階に分けます。

第 1 段:台の小さい非負の関数への帰着。 補題 2.6 の φ2\varphi_2 を取ります。φ2\varphi_2 は 1\mathbf{1} と直交し零でないので、正の値と負の値の両方を取ります。{φ2>0}\{\varphi_2 > 0\} と {φ2<0}\{\varphi_2 < 0\} は交わらないので、どちらかは π\pi の測度が 12\frac12 以下です。必要なら φ2\varphi_2 を −φ2-\varphi_2 に替えて、π({φ2>0})≤12\pi(\{\varphi_2 > 0\}) \le \frac12 とします。f=max⁡(φ2,0)f = \max(\varphi_2, 0) と置きます。f≥0f \ge 0、f≠0f \ne 0 です。f≥φ2f \ge \varphi_2 から Pf≥Pφ2=λ2φ2Pf \ge P\varphi_2 = \lambda_2\varphi_2 なので、f(x)>0f(x) > 0 である点では (Pf)(x)≥λ2f(x)(Pf)(x) \ge \lambda_2f(x)、すなわち

((I−P)f)(x)≤(1−λ2)f(x)=γf(x)(f(x)>0)\bigl((I - P)f\bigr)(x) \le (1 - \lambda_2)f(x) = \gamma f(x) \qquad (f(x) > 0)

です。f(x)=0f(x) = 0 の点は内積に寄与しないので、E(f,f)=∑x:f(x)>0π(x)f(x)((I−P)f)(x)≤γ⟨f,f⟩π\mathcal{E}(f,f) = \sum_{x : f(x) > 0}\pi(x)f(x)\bigl((I-P)f\bigr)(x) \le \gamma\langle f, f\rangle_\pi です。したがって γ≥E(f,f)/⟨f,f⟩π\gamma \ge \mathcal{E}(f,f)/\langle f, f\rangle_\pi で、次を示せば十分です。

第 2 段:f≥0f \ge 0、f≠0f \ne 0、π({f>0})≤12\pi(\{f > 0\}) \le \frac12 ならば E(f,f)≥12Φ∗2⟨f,f⟩π\mathcal{E}(f,f) \ge \frac12\Phi_*^2\langle f, f\rangle_\pi。 g=f2g = f^2 と置き、t≥0t \ge 0 に対して At={x:g(x)>t}A_t = \{x : g(x) > t\} とします。At⊆{f>0}A_t \subseteq \{f > 0\} なので π(At)≤12\pi(A_t) \le \frac12 で、AtA_t が空でなければ Q(At,Atc)≥Φ∗π(At)Q(A_t, A_t^c) \ge \Phi_*\pi(A_t) です(空なら両辺 00)。g(x)>g(y)g(x) > g(y) のとき g(x)−g(y)=∫0∞1{g(y)≤t<g(x)} dtg(x) - g(y) = \int_0^\infty\mathbf{1}\{g(y) \le t < g(x)\}\,dt なので、

∑(x,y) : g(x)>g(y)Q(x,y)(g(x)−g(y))=∫0∞Q(At,Atc) dt≥Φ∗∫0∞π(At) dt=Φ∗∑xπ(x)g(x)=Φ∗⟨f,f⟩π\sum_{(x,y)\,:\,g(x) > g(y)}Q(x,y)\bigl(g(x) - g(y)\bigr) = \int_0^\infty Q(A_t, A_t^c)\,dt \ge \Phi_*\int_0^\infty\pi(A_t)\,dt = \Phi_*\sum_x\pi(x)g(x) = \Phi_*\langle f, f\rangle_\pi

です(x∈Atx \in A_t かつ y∉Aty \notin A_t は g(y)≤t<g(x)g(y) \le t < g(x) と同値。最後から 2 番目の等号は ∫0∞1{t<g(x)}dt=g(x)\int_0^\infty\mathbf{1}\{t < g(x)\}dt = g(x))。一方、g(x)−g(y)=(f(x)−f(y))(f(x)+f(y))g(x) - g(y) = (f(x) - f(y))(f(x) + f(y)) と Cauchy–Schwarz の不等式から、左辺は

(∑f(x)>f(y)Q(x,y)(f(x)−f(y))2)1/2(∑f(x)>f(y)Q(x,y)(f(x)+f(y))2)1/2\Bigl(\sum_{f(x) > f(y)}Q(x,y)(f(x) - f(y))^2\Bigr)^{1/2}\Bigl(\sum_{f(x) > f(y)}Q(x,y)(f(x) + f(y))^2\Bigr)^{1/2}

以下です。QQ が対称なので、第 1 の和は 12∑x,yQ(x,y)(f(x)−f(y))2=E(f,f)\frac12\sum_{x,y}Q(x,y)(f(x)-f(y))^2 = \mathcal{E}(f,f) に等しく、第 2 の和は 12∑x,yQ(x,y)(f(x)+f(y))2\frac12\sum_{x,y}Q(x,y)(f(x)+f(y))^2 以下です。(f(x)+f(y))2≤2f(x)2+2f(y)2(f(x) + f(y))^2 \le 2f(x)^2 + 2f(y)^2 と ∑yQ(x,y)=π(x)\sum_yQ(x,y) = \pi(x)、∑xQ(x,y)=π(y)\sum_xQ(x,y) = \pi(y) から、

12∑x,yQ(x,y)(f(x)+f(y))2≤∑x,yQ(x,y)(f(x)2+f(y)2)=2⟨f,f⟩π\frac12\sum_{x,y}Q(x,y)(f(x) + f(y))^2 \le \sum_{x,y}Q(x,y)\bigl(f(x)^2 + f(y)^2\bigr) = 2\langle f, f\rangle_\pi

です。まとめると Φ∗⟨f,f⟩π≤E(f,f)2⟨f,f⟩π\Phi_*\langle f, f\rangle_\pi \le \sqrt{\mathcal{E}(f,f)}\sqrt{2\langle f, f\rangle_\pi} で、両辺を二乗して ⟨f,f⟩π>0\langle f,f\rangle_\pi > 0 で割れば主張を得ます。

(下界の証明の方針は、固有関数の正の部分を取り出し、f2f^2 の水準集合 AtA_t ごとに流量の評価 Q(At,Atc)≥Φ∗π(At)Q(A_t, A_t^c) \ge \Phi_*\pi(A_t) を使って足し合わせる、というものです。)上界は、くびれが 1 つでもあればギャップが小さいことを示す否定的な結果に使います。下界は、すべての集合について流量を下から評価できれば混合が速いことを示す肯定的な結果に使います(下界は 2 乗で効くので、一般には粗い評価です)。

命題 6.3(2 つの山と局所的な更新)✓

S={0,1,…,L}S = \{0, 1, \ldots, L\} とし、PP を正の確率分布 π\pi について可逆で既約な遷移行列で、∣x−y∣≥2|x - y| \ge 2 ならば P(x,y)=0P(x,y) = 0(局所的)であるものとする。1≤m≤L1 \le m \le L が A={0,…,m−1}A = \{0, \ldots, m-1\} について π(A)≤12\pi(A) \le \frac12 を満たすならば

γ≤2Φ∗≤2π(m)π(A)\gamma \le 2\Phi_* \le \frac{2\pi(m)}{\pi(A)}

である。特に π(x)∝e−βV(x)\pi(x) \propto e^{-\beta V(x)} で、Δ=V(m)−min⁡x<mV(x)\Delta = V(m) - \min_{x < m}V(x) と置くと、γ≤2e−βΔ\gamma \le 2e^{-\beta\Delta} であり、γ∗>0\gamma^* > 0 かつ 0<ε<120 < \varepsilon < \frac12 のとき tmix(ε)≥(12eβΔ−1)ln⁡12εt_{\mathrm{mix}}(\varepsilon) \ge \bigl(\frac12e^{\beta\Delta} - 1\bigr)\ln\frac{1}{2\varepsilon} である。

証明(命題 6.3)

局所性から、AA と Ac={m,…,L}A^c = \{m, \ldots, L\} をつなぐ辺は (m−1,m)(m-1, m) だけなので、Q(A,Ac)=Q(m−1,m)=Q(m,m−1)=π(m)P(m,m−1)≤π(m)Q(A, A^c) = Q(m-1, m) = Q(m, m-1) = \pi(m)P(m, m-1) \le \pi(m) です。よって Φ∗≤Φ(A)≤π(m)/π(A)\Phi_* \le \Phi(A) \le \pi(m)/\pi(A) で、定理 6.2 の上界から最初の主張を得ます。

VV の AA の上での最小点を xAx_A とすると、π(A)≥π(xA)\pi(A) \ge \pi(x_A) から π(m)/π(A)≤π(m)/π(xA)=e−β(V(m)−V(xA))=e−βΔ\pi(m)/\pi(A) \le \pi(m)/\pi(x_A) = e^{-\beta(V(m) - V(x_A))} = e^{-\beta\Delta} です。γ∗≤γ≤2e−βΔ\gamma^* \le \gamma \le 2e^{-\beta\Delta} なので、γ∗<1\gamma^* < 1 なら 定理 4.3 の 3 から tmix(ε)≥(1γ∗−1)ln⁡12ε≥(12eβΔ−1)ln⁡12εt_{\mathrm{mix}}(\varepsilon) \ge (\frac{1}{\gamma^*} - 1)\ln\frac{1}{2\varepsilon} \ge (\frac12e^{\beta\Delta} - 1)\ln\frac{1}{2\varepsilon} です(γ∗=1\gamma^* = 1 は 2e−βΔ≥12e^{-\beta\Delta} \ge 1 のときにしか起きず、そのとき右辺は 00 以下です)。

Δ\Delta は、左の山の底から見た障壁の高さです。隣にしか動けない連鎖は、採択関数をどう工夫しても、障壁の上の状態 mm を通らなければ山を移れません。その状態の確率が e−βΔe^{-\beta\Delta} の程度しかないので、混合に eβΔe^{\beta\Delta} の程度の時間がかかります。低温(大きい β\beta)の統計力学の模型や、多峰の事後分布で MCMC が「片方の山に留まったまま収束したように見える」のはこのためです。次のコードは、14 状態の 2 つ山の分布で、β\beta を増やしたときのギャップとボトルネック比(全部分集合についての最小値)を計算します。

# Python 3.9.6, NumPy 2.0.2
import numpy as np
n = 14
x = np.arange(n)
V = ((x - 6.5) ** 2 / 16.0 - 1.0) ** 2 # 谷は x = 2.5, 10.5 付近、障壁の高さ 1(x = 6, 7 で V = 0.969)
def metropolis(pi):
P = np.zeros((n, n))
for i in range(n):
for j in (i - 1, i + 1):
if 0 <= j < n:
P[i, j] = 0.5 * min(1.0, pi[j] / pi[i])
P[i, i] = 1.0 - P[i].sum()
return P
masks = ((np.arange(1, 2**n - 1)[:, None] >> np.arange(n)) & 1).astype(float) # 空でも全体でもない部分集合
print(" beta Phi*^2/2 gamma 2 Phi* 2 pi(m)/pi(A)")
for beta in (1, 2, 4, 6, 8):
pi = np.exp(-beta * V); pi /= pi.sum()
P = metropolis(pi)
d = np.sqrt(pi)
lam = np.linalg.eigvalsh(d[:, None] * P / d[None, :])
gamma = 1 - lam[-2]
F = pi[:, None] * P # 辺の流量 Q(x, y) = pi(x) P(x, y)
piA = masks.dot(pi)
flow = np.einsum("ai,ij,aj->a", masks, F, 1 - masks)
ok = piA <= 0.5 + 1e-12
phi = (flow[ok] / piA[ok]).min()
m = 7 # 切り口 A = {0,...,6}
print(f"{beta:5.1f} {phi**2/2:.3e} {gamma:.3e} {2*phi:.3e} {2*pi[m]/pi[:m].sum():.3e}")
beta Phi*^2/2 gamma 2 Phi* 2 pi(m)/pi(A)
1.0 1.156e-03 2.110e-02 9.617e-02 1.923e-01
2.0 3.255e-04 1.191e-02 5.103e-02 1.021e-01
4.0 1.492e-05 2.829e-03 1.092e-02 2.185e-02
6.0 4.917e-07 5.608e-04 1.983e-03 3.967e-03
8.0 1.434e-08 1.017e-04 3.387e-04 6.774e-04

すべての β\beta で Φ∗2/2≤γ≤2Φ∗≤2π(m)/π(A)\Phi_*^2/2 \le \gamma \le 2\Phi_* \le 2\pi(m)/\pi(A) が成り立っています。γ\gamma は上界 2Φ∗2\Phi_* の 0.20.2〜0.30.3 倍で、下界よりずっと上界に近く、β\beta を 22 増やすごとにおよそ 1/51/5 になります(この例では Δ=0.969−0.055=0.914\Delta = 0.969 - 0.055 = 0.914 で、e−2Δ≈0.16e^{-2\Delta} \approx 0.16)。最小を与える集合は左半分 {0,…,6}\{0, \ldots, 6\} で、最後の列が 2Φ∗2\Phi_* のちょうど 2 倍なのは、Q(A,Ac)=π(7)P(7,6)=12π(7)Q(A, A^c) = \pi(7)P(7,6) = \frac12\pi(7) だからです。

混合時間の上界を、固有値を使わずに得る方法です。同じ遷移行列に従う 2 つの連鎖を、同じ乱数を使って同時に動かし、出会うまでの時間を評価します。

定義 7.1(Markov 連鎖のカップリング)↗

遷移行列 PP のカップリングとは、S×SS \times S 上の遷移行列 KK で、すべての x,y,x′,y′∈Sx, y, x', y' \in S について

∑y′K((x,y),(x′,y′))=P(x,x′),∑x′K((x,y),(x′,y′))=P(y,y′)\sum_{y'}K\bigl((x,y), (x',y')\bigr) = P(x, x'), \qquad \sum_{x'}K\bigl((x,y), (x',y')\bigr) = P(y, y')

を満たし、かつ x′≠y′x' \ne y' ならば K((x,x),(x′,y′))=0K((x,x), (x',y')) = 0(一度出会ったら離れない)となるものをいう。KK に従う連鎖 (Xt,Yt)(X_t, Y_t) について、τ=min⁡{t≥0:Xt=Yt}\tau = \min\{t \ge 0 : X_t = Y_t\} を合流時刻という。

定理 7.2(カップリングの不等式)✓

KK を PP のカップリング、(Xt,Yt)(X_t, Y_t) を (x,y)(x, y) から出発する KK の連鎖とする。

  1. (Xt)(X_t) は xx から出発する遷移行列 PP の Markov 連鎖、(Yt)(Y_t) は yy から出発する遷移行列 PP の Markov 連鎖である。
  2. すべての t≥0t \ge 0 で ∥Pt(x,⋅)−Pt(y,⋅)∥TV≤P(x,y)(τ>t)\|P^t(x, \cdot) - P^t(y, \cdot)\|_{\mathrm{TV}} \le \mathbb{P}_{(x,y)}(\tau > t)。
  3. PP が定常分布 π\pi をもつとき、d(t)≤max⁡x,yP(x,y)(τ>t)d(t) \le \max_{x,y}\mathbb{P}_{(x,y)}(\tau > t)。
証明(定理 7.2)

1. KK の連鎖の道の確率の公式から

P(X0=x0,…,Xt=xt)=∑y1,…,yt∏s=1tK((xs−1,ys−1),(xs,ys))(x0=x, y0=y)\mathbb{P}(X_0 = x_0, \ldots, X_t = x_t) = \sum_{y_1, \ldots, y_t}\prod_{s=1}^tK\bigl((x_{s-1}, y_{s-1}), (x_s, y_s)\bigr) \qquad (x_0 = x,\ y_0 = y)

です。yty_t は最後の因子にしか現れないので、先に yty_t について和を取ると、周辺の条件から最後の因子は P(xt−1,xt)P(x_{t-1}, x_t) になります。これは yt−1y_{t-1} によらないので、次に yt−1y_{t-1} について和を取ることができ、順に繰り返して ∏s=1tP(xs−1,xs)\prod_{s=1}^tP(x_{s-1}, x_s) を得ます。これは xx から出発する PP の連鎖の道の確率で、条件付き確率を計算すると Markov 連鎖の定義(定義 2.1[Markov 連鎖と Poisson 過程])の式が成り立ちます。(Yt)(Y_t) も同様です。

2. カップリングの第 3 の条件から、Xs=YsX_s = Y_s なら確率 11 で Xs+1=Ys+1X_{s+1} = Y_{s+1} なので、帰納的に、t≥τt \ge \tau では Xt=YtX_t = Y_t です。したがって {Xt≠Yt}⊆{τ>t}\{X_t \ne Y_t\} \subseteq \{\tau > t\} です(確率 00 の事象を除いて)。1 から P(Xt∈A)=Pt(x,A)\mathbb{P}(X_t \in A) = P^t(x, A)、P(Yt∈A)=Pt(y,A)\mathbb{P}(Y_t \in A) = P^t(y, A) なので、任意の A⊆SA \subseteq S について

Pt(x,A)−Pt(y,A)=P(Xt∈A)−P(Yt∈A)≤P(Xt∈A, Yt∉A)≤P(Xt≠Yt)≤P(τ>t)P^t(x, A) - P^t(y, A) = \mathbb{P}(X_t \in A) - \mathbb{P}(Y_t \in A) \le \mathbb{P}(X_t \in A,\ Y_t \notin A) \le \mathbb{P}(X_t \ne Y_t) \le \mathbb{P}(\tau > t)

です。AA について最大を取ると、補題 4.2 の 1 から左辺は全変動距離になります。

3. 補題 4.2 の 3 と 2 から従います。

命題 7.3(超立方体上の怠惰なランダムウォークの混合時間)✓

例 4.5 の超立方体 {0,1}n\{0,1\}^n 上の連鎖について、すべての t≥0t \ge 0 で d(t)≤n(1−1n)t≤ne−t/nd(t) \le n(1 - \frac1n)^t \le ne^{-t/n} である。したがって 0<ε<10 < \varepsilon < 1 について

tmix(ε)≤⌈nln⁡n+nln⁡(1/ε)⌉.t_{\mathrm{mix}}(\varepsilon) \le \bigl\lceil n\ln n + n\ln(1/\varepsilon)\bigr\rceil.
証明(命題 7.3)

(It,Bt)(I_t, B_t)(t=1,2,…t = 1, 2, \ldots)を、{1,…,n}×{0,1}\{1, \ldots, n\} \times \{0, 1\} 上の一様分布に従う独立な確率変数の列とします。(X0,Y0)=(x,y)(X_0, Y_0) = (x, y) から、時刻 tt に Xt−1X_{t-1} と Yt−1Y_{t-1} の両方の第 ItI_t 成分を BtB_t で置き換えて (Xt,Yt)(X_t, Y_t) を作ります。(Xt,Yt)(X_t, Y_t) は、現在の状態と独立な乱数で次の状態が決まるので S×SS \times S 上の Markov 連鎖で、その遷移行列 KK は、片方だけを見れば元の連鎖の 1 歩なので周辺の条件を満たし、Xt−1=Yt−1X_{t-1} = Y_{t-1} なら Xt=YtX_t = Y_t です。よって KK はカップリングです。

座標 ii が時刻 ss に選ばれる(Is=iI_s = i)と、XsX_s と YsY_s の第 ii 成分はともに BsB_s になり、以後は同じ値で置き換えられ続けるので、ずっと一致します。したがって、すべての座標が少なくとも 1 回選ばれた時点で X=YX = Y となり、{τ>t}⊆⋃i=1n{I1≠i,…,It≠i}\{\tau > t\} \subseteq \bigcup_{i=1}^n\{I_1 \ne i, \ldots, I_t \ne i\} です。各事象の確率は (1−1n)t(1 - \frac1n)^t なので、

P(x,y)(τ>t)≤n(1−1n)t≤ne−t/n\mathbb{P}_{(x,y)}(\tau > t) \le n\Bigl(1 - \frac1n\Bigr)^t \le ne^{-t/n}

です。定理 7.2 の 3 から d(t)≤ne−t/nd(t) \le ne^{-t/n} で、t≥nln⁡n+nln⁡(1/ε)t \ge n\ln n + n\ln(1/\varepsilon) なら右辺は ε\varepsilon 以下です。

証明に出てくる「すべての座標が選ばれるまでの時間」は、クーポン収集問題の待ち時間です。スペクトルによる上界(例 4.5)が n2n^2 の程度だったのに対して、カップリングは nln⁡nn\ln n の程度を与えます。差は、定理 4.3 の ln⁡(1/πmin⁡)=nln⁡2\ln(1/\pi_{\min}) = n\ln2 の因子から来ています。次のコードは、n=8,10n = 8, 10 で全変動距離を行列の冪から厳密に計算し、2 つの上界と比べます。

# Python 3.9.6, NumPy 2.0.2
import numpy as np
def hypercube(n): # 座標を 1 つ選び、一様なビットで置き換える
N = 2**n
P = np.zeros((N, N))
for s in range(N):
P[s, s] += 0.5
for i in range(n):
P[s, s ^ (1 << i)] += 0.5 / n
return P
def first(bound, eps=0.25):
t = 0
while bound(t) > eps:
t += 1
return t
for n in (8, 10):
N, P = 2**n, hypercube(n)
Pt, d = np.eye(N), []
for t in range(81):
d.append(0.5 * np.abs(Pt - 1.0 / N).sum(axis=1).max())
Pt = Pt.dot(P)
spec = lambda t: 0.5 * np.sqrt(N - 1) * (1 - 1 / n) ** t
coup = lambda t: n * (1 - 1 / n) ** t
print(f"n = {n}")
print(" t d(t) 厳密 スペクトルの上界 カップリングの上界")
for t in (10, 20, 30, 40, 60, 80):
print(f" {t:3d} {d[t]:.5f} {min(spec(t), 1):.5f} {min(coup(t), 1):.5f}")
print(f" t_mix(1/4): 厳密 = {next(t for t in range(81) if d[t] <= 0.25)}, スペクトル <= {first(spec)},"
f" カップリング <= {first(coup)}, 下界 (1/gamma* - 1) ln 2 = {(n - 1) * np.log(2):.2f}")
n = 8
t d(t) 厳密 スペクトルの上界 カップリングの上界
10 0.30782 1.00000 1.00000
20 0.07734 0.55259 0.55367
30 0.02001 0.14537 0.14566
40 0.00524 0.03824 0.03832
60 0.00036 0.00265 0.00265
80 0.00003 0.00018 0.00018
t_mix(1/4): 厳密 = 12, スペクトル <= 26, カップリング <= 26, 下界 (1/gamma* - 1) ln 2 = 4.85
n = 10
t d(t) 厳密 スペクトルの上界 カップリングの上界
10 0.44288 1.00000 1.00000
20 0.15534 1.00000 1.00000
30 0.05289 0.67793 0.42391
40 0.01827 0.23638 0.14781
60 0.00221 0.02874 0.01797
80 0.00027 0.00349 0.00218
t_mix(1/4): 厳密 = 16, スペクトル <= 40, カップリング <= 36, 下界 (1/gamma* - 1) ln 2 = 6.24

どの tt でも厳密な d(t)d(t) は 2 つの上界の下にあり、混合時間は 定理 4.3 の 3 の下界より上にあります。2 つの上界はどちらも (1−1n)t(1 - \frac1n)^t に比例し、係数がスペクトルでは 122n−1\frac12\sqrt{2^n - 1}、カップリングでは nn です。n=8n = 8 では係数が 7.987.98 と 88 でたまたまほぼ一致し、n=10n = 10 では 16.016.0 と 1010 で、nn が大きいほどカップリングの優位が広がります。

多成分の系では、どの成分をどの順に更新するかを決める必要があります。熱浴法(定義 2.5)で 2 つの流儀を比べます。

命題 8.1(無作為走査と系統走査)✓

定義 2.5 の設定で次が成り立つ。

  1. 各 PiP_i は π\pi について可逆で、Pi2=PiP_i^2 = P_i である。したがってすべての ff で ⟨f,Pif⟩π=⟨Pif,Pif⟩π≥0\langle f, P_if\rangle_\pi = \langle P_if, P_if\rangle_\pi \ge 0。
  2. 無作為走査 PRSP_{\mathrm{RS}} は π\pi について可逆で、すべての ff で ⟨f,PRSf⟩π≥0\langle f, P_{\mathrm{RS}}f\rangle_\pi \ge 0 である。したがって固有値はすべて [0,1][0, 1] に属し、γ∗=γ\gamma^* = \gamma である。
  3. 系統走査 PSSP_{\mathrm{SS}} は π\pi を定常分布にもつ。n=2n = 2 のとき、PSS=P1P2P_{\mathrm{SS}} = P_1P_2 が π\pi について可逆であることは P1P2=P2P1P_1P_2 = P_2P_1 と同値であり、一般には可逆でない。
証明(命題 8.1)

πi(x)=∑s∈Siπ(xi→s)\pi_i(x) = \sum_{s \in S_i}\pi(x^{i\to s}) と置きます。πi(x)\pi_i(x) は xx の第 ii 成分によりません。xx と yy が第 ii 成分以外で一致することを x∼iyx \sim_i y と書くと、Pi(x,y)=π(y)/πi(x)P_i(x,y) = \pi(y)/\pi_i(x)(x∼iyx \sim_i y)で、このとき πi(x)=πi(y)\pi_i(x) = \pi_i(y) です。

1. x∼iyx \sim_i y なら π(x)Pi(x,y)=π(x)π(y)/πi(x)\pi(x)P_i(x,y) = \pi(x)\pi(y)/\pi_i(x) で、x,yx, y について対称です。x̸∼iyx \not\sim_i y なら両辺 00 です。よって可逆です。x∼izx \sim_i z について

(PiPi)(x,z)=∑y∼ixπ(y)πi(x)⋅π(z)πi(y)=π(z)πi(x)⋅∑y∼ixπ(y)πi(x)=π(z)πi(x)=Pi(x,z)(P_iP_i)(x,z) = \sum_{y \sim_i x}\frac{\pi(y)}{\pi_i(x)}\cdot\frac{\pi(z)}{\pi_i(y)} = \frac{\pi(z)}{\pi_i(x)}\cdot\frac{\sum_{y\sim_ix}\pi(y)}{\pi_i(x)} = \frac{\pi(z)}{\pi_i(x)} = P_i(x,z)

です(x̸∼izx \not\sim_i z なら両辺 00)。PiP_i は自己共役なので、⟨f,Pif⟩π=⟨f,PiPif⟩π=⟨Pif,Pif⟩π\langle f, P_if\rangle_\pi = \langle f, P_iP_if\rangle_\pi = \langle P_if, P_if\rangle_\pi です。

2. 可逆な遷移行列の平均は可逆で、⟨f,PRSf⟩π=1n∑i⟨Pif,Pif⟩π≥0\langle f, P_{\mathrm{RS}}f\rangle_\pi = \frac1n\sum_i\langle P_if, P_if\rangle_\pi \ge 0 です。補題 2.6 の固有関数について λj=⟨φj,PRSφj⟩π≥0\lambda_j = \langle\varphi_j, P_{\mathrm{RS}}\varphi_j\rangle_\pi \ge 0 なので、λ∗=λ2\lambda_* = \lambda_2 です。

3. 1 と 命題 2.5[Markov 連鎖と Poisson 過程] から各 ii で πPi=π\pi P_i = \pi なので、πP1⋯Pn=π\pi P_1\cdots P_n = \pi です。n=2n = 2 とします。可逆性は ℓ2(π)\ell^2(\pi) での自己共役性と同値で、P1,P2P_1, P_2 は自己共役なので、⟨f,P1P2g⟩π=⟨P2P1f,g⟩π\langle f, P_1P_2g\rangle_\pi = \langle P_2P_1f, g\rangle_\pi、すなわち P1P2P_1P_2 の共役は P2P1P_2P_1 です。よって P1P2P_1P_2 が可逆であることは P1P2=P2P1P_1P_2 = P_2P_1 と同値です。

可逆でない例を挙げます。S={0,1}2S = \{0,1\}^2、π(00)=π(11)=0.4\pi(00) = \pi(11) = 0.4、π(01)=π(10)=0.1\pi(01) = \pi(10) = 0.1 とします(x1x2x_1x_2 と並べて書きます)。P1P_1 は x1x_1 を、P2P_2 は x2x_2 を引き直します。

P1(00,00)=0.40.4+0.1=0.8,P2(00,01)=0.10.4+0.1=0.2,P1(01,01)=0.10.1+0.4=0.2,P2(01,00)=0.8P_1(00, 00) = \frac{0.4}{0.4 + 0.1} = 0.8, \qquad P_2(00, 01) = \frac{0.1}{0.4 + 0.1} = 0.2, \qquad P_1(01, 01) = \frac{0.1}{0.1 + 0.4} = 0.2, \qquad P_2(01, 00) = 0.8

です。0000 から 0101 へは「P1P_1 で動かず、P2P_2 で x2x_2 を変える」道しかなく(P1P_1 で 1010 に移ると、P2P_2 では x1=1x_1 = 1 のままです)、(P1P2)(00,01)=0.8×0.2=0.16(P_1P_2)(00, 01) = 0.8 \times 0.2 = 0.16 です。同様に (P1P2)(01,00)=P1(01,01)P2(01,00)=0.2×0.8=0.16(P_1P_2)(01, 00) = P_1(01,01)P_2(01,00) = 0.2 \times 0.8 = 0.16 です。π(00)×0.16=0.064\pi(00) \times 0.16 = 0.064 と π(01)×0.16=0.016\pi(01) \times 0.16 = 0.016 は等しくないので、詳細つり合いは成り立ちません。

系統走査は可逆でないので、この章の §4〜§6 の定理(固有値が実数であることに依存しています)はそのままでは使えません。それでも π\pi が定常分布であることは変わらず、既約であれば 定理 3.2 から時間平均は正しい値に収束します。実用の格子計算では、乱数の消費が少なくメモリの参照が規則的な系統走査がよく使われます。可逆な連鎖がほしいときは、P1⋯PnPn⋯P1P_1\cdots P_nP_n\cdots P_1 のように往復で走査します(共役が自分自身になります)。

例 8.2(1 次元 Ising 模型の熱浴法と Metropolis 法)

周期境界の 1 次元 Ising 模型は、S={−1,+1}nS = \{-1, +1\}^n、π(s)∝exp⁡(β∑i=1nsisi+1)\pi(s) \propto \exp\bigl(\beta\sum_{i=1}^ns_is_{i+1}\bigr)(sn+1=s1s_{n+1} = s_1)です。スピン ii を含む項は βsihi\beta s_ih_i(hi=si−1+si+1∈{−2,0,2}h_i = s_{i-1} + s_{i+1} \in \{-2, 0, 2\})だけなので、熱浴更新は

P(si=+1∣他のスピン)=eβhieβhi+e−βhi=11+e−2βhi\mathbb{P}(s_i = +1 \mid \text{他のスピン}) = \frac{e^{\beta h_i}}{e^{\beta h_i} + e^{-\beta h_i}} = \frac{1}{1 + e^{-2\beta h_i}}

で sis_i を引き直します。現在の値と逆の値になる確率は、r=π(s(i))/π(s)=e−2βsihir = \pi(s^{(i)})/\pi(s) = e^{-2\beta s_ih_i}(s(i)s^{(i)} はスピン ii を反転した配位)として r/(1+r)r/(1 + r) です。これは「スピン ii の反転」を提案とした Barker の採択関数にほかなりません。したがって、無作為走査の熱浴法は、提案 Q(s,s(i))=1/nQ(s, s^{(i)}) = 1/n と採択関数 aBa_{\mathrm{B}} による連鎖で、同じ提案に Metropolis の採択関数 min⁡(1,r)\min(1, r) を使った連鎖と 系 5.5 で比べられます。2 値のスピンでは、どの量についても Metropolis 法の漸近分散は熱浴法以下で、熱浴法は高々 2 倍(と Varπ(f)\mathrm{Var}_\pi(f))しか悪くなりません。成分が 3 つ以上の値を取る模型では、熱浴法は反転より多くの移動先をもつので、この比較は当てはまりません。

注意 8.3(一般の状態空間と、この章で扱わない結果)

連続な状態空間では、遷移行列が遷移核に、固有値の有限和がスペクトル分解に替わります。定理の形は似ていますが、スペクトルギャップが 00 になりうる、1 点の確率が 00 なので 定理 4.3 の πmin⁡\pi_{\min} が使えない、といった違いが生じます。

  • 収束の理論。 既約性にあたる条件(Harris 再帰性)と、ドリフト条件・小集合の条件による幾何エルゴード性の理論は、Meyn–Tweedie の本にまとめられています。定理 5.4 の一般の状態空間への拡張は Tierney によります。
  • 中心極限定理。 可逆な連鎖で σf2<∞\sigma_f^2 < \infty なら、N(1N∑f(Xk)−π(f))\sqrt N(\frac1N\sum f(X_k) - \pi(f)) は N(0,σf2)N(0, \sigma_f^2) に分布収束します(Kipnis–Varadhan)。証明はマルチンゲール近似によるもので、ここでは定理として扱いません。時間平均に誤差を付ける実際の方法は次章で扱います。
  • 最適な採択率。 dd 次元の積の形の目標に対する無作為歩行 Metropolis 法では、d→∞d \to \infty で提案の幅を d−1/2d^{-1/2} に比例させるのが最適で、そのときの採択率は約 0.2340.234 になります(Roberts–Gelman–Gilks)。例 5.6 の 1 次元の例で最適な採択率が 0.430.43 だったことと矛盾しません(低次元では最適値はもっと高くなります)。
  • ボトルネックへの対策。 命題 6.3 の遅さは局所的な更新に共通です。温度の違う複数の連鎖を走らせて配位を交換する方法(レプリカ交換法)や、模型の構造を使った大域的な更新(クラスター更新)は、移動先の集合そのものを変えて障壁を迂回します。

演習 9.1易

PP を可逆で既約な遷移行列、PL=12(I+P)P_L = \frac12(I + P) を怠惰な連鎖とする。すべての ff について σf2(PL)=2σf2(P)+Varπ(f)\sigma_f^2(P_L) = 2\sigma_f^2(P) + \mathrm{Var}_\pi(f) を示せ。これは 定理 5.4 と整合するか。

解答

PLP_L は PP と同じ固有関数 φj\varphi_j をもち、固有値は μj=12(1+λj)\mu_j = \frac12(1 + \lambda_j) です。定理 5.2 の係数は

1+μj1−μj=3+λj1−λj=2(1+λj)1−λj+1\frac{1 + \mu_j}{1 - \mu_j} = \frac{3 + \lambda_j}{1 - \lambda_j} = \frac{2(1 + \lambda_j)}{1 - \lambda_j} + 1

なので、aj2a_j^2 を掛けて j≥2j \ge 2 について足すと σf2(PL)=2σf2(P)+Varπ(f)\sigma_f^2(P_L) = 2\sigma_f^2(P) + \mathrm{Var}_\pi(f) です。x≠yx \ne y で P(x,y)≥12P(x,y)=PL(x,y)P(x,y) \ge \frac12P(x,y) = P_L(x,y) なので、定理 5.4 は σf2(P)≤σf2(PL)\sigma_f^2(P) \le \sigma_f^2(P_L) を予言し、上の等式はそれを定量的にしたものです。怠惰な連鎖は半分の時間を止まって過ごすので、同じ精度に約 2 倍の歩数が要ります。理論の都合(負の固有値を消す)のための道具で、実際の計算でわざわざ怠惰にする理由はありません。

演習 9.2標準

S={0,1}S = \{0, 1\}、π=(1−p,p)\pi = (1 - p, p)(0<p≤120 < p \le \frac12)とする。(1) 提案を「反転」(Q(0,1)=Q(1,0)=1Q(0,1) = Q(1,0) = 1)とした Metropolis 法の遷移行列 PMP_{\mathrm{M}} と、熱浴法(毎回 π\pi から引き直す)の遷移行列 PHP_{\mathrm{H}} を書け。(2) それぞれの λ2\lambda_2 と、σf2/Varπ(f)\sigma_f^2/\mathrm{Var}_\pi(f) を求めよ。(3) 独立な標本より精度がよくなる理由を説明せよ。

解答

(1) r(0,1)=p/(1−p)≤1r(0,1) = p/(1-p) \le 1、r(1,0)=(1−p)/p≥1r(1,0) = (1-p)/p \ge 1 なので

PM=(1−p1−pp1−p10),PH=(1−pp1−pp)P_{\mathrm{M}} = \begin{pmatrix} 1 - \frac{p}{1-p} & \frac{p}{1-p} \\ 1 & 0\end{pmatrix}, \qquad P_{\mathrm{H}} = \begin{pmatrix} 1 - p & p \\ 1 - p & p\end{pmatrix}

です。PHP_{\mathrm{H}} は Barker の採択関数(r/(1+r)r/(1+r) は 0→10 \to 1 で pp、1→01 \to 0 で 1−p1 - p)による連鎖でもあります。

(2) 例 4.4 から λ2=1−a−b\lambda_2 = 1 - a - b です。PHP_{\mathrm{H}} では a+b=1a + b = 1 で λ2=0\lambda_2 = 0、σf2/Varπ(f)=1\sigma_f^2/\mathrm{Var}_\pi(f) = 1(独立な標本そのものです)。PMP_{\mathrm{M}} では λ2=1−p1−p−1=−p1−p\lambda_2 = 1 - \frac{p}{1-p} - 1 = -\frac{p}{1-p} で、

σf2Varπ(f)=1+λ21−λ2=(1−2p)/(1−p)1/(1−p)=1−2p\frac{\sigma_f^2}{\mathrm{Var}_\pi(f)} = \frac{1 + \lambda_2}{1 - \lambda_2} = \frac{(1 - 2p)/(1-p)}{1/(1-p)} = 1 - 2p

です。

(3) Metropolis 法では、状態 11 にいると必ず 00 に戻るので、隣り合う標本が負に相関します。定理 5.2 の式で λ2<0\lambda_2 < 0 の係数が 11 より小さくなる場合です。p=12p = \frac12 では λ2=−1\lambda_2 = -1、連鎖は 0,1,0,1,…0, 1, 0, 1, \ldots と決定的に交代し、時間平均は(偶数歩で)正確に 12\frac12 になって分散は 00 です。このとき連鎖は周期的で分布は収束しませんが(γ∗=0\gamma^* = 0)、時間平均の精度は最良です。分布の収束と時間平均の精度が別の問題であることを示す例です。

演習 9.3標準

S={0,1,2}S = \{0, 1, 2\}、

P=(1212014121401212)P = \begin{pmatrix} \frac12 & \frac12 & 0 \\ \frac14 & \frac12 & \frac14 \\ 0 & \frac12 & \frac12\end{pmatrix}

について、定常分布、固有値、Φ∗\Phi_* を求め、定理 6.2 の両側の不等式を確かめよ。

解答

π=(14,12,14)\pi = (\frac14, \frac12, \frac14) が詳細つり合い π(0)P(0,1)=18=π(1)P(1,0)\pi(0)P(0,1) = \frac18 = \pi(1)P(1,0)、π(1)P(1,2)=18=π(2)P(2,1)\pi(1)P(1,2) = \frac18 = \pi(2)P(2,1) を満たします。固有関数は 1\mathbf{1}(固有値 11)、(1,0,−1)(1, 0, -1)(P(1,0,−1)T=(12,0,−12)TP(1,0,-1)^{\mathsf{T}} = (\frac12, 0, -\frac12)^{\mathsf{T}} で固有値 12\frac12)、(1,−1,1)(1, -1, 1)(P(1,−1,1)T=(0,0,0)TP(1,-1,1)^{\mathsf{T}} = (0, 0, 0)^{\mathsf{T}} で固有値 00)です。よって γ=12\gamma = \frac12 です。

π(A)≤12\pi(A) \le \frac12 となる空でない AA は {0},{1},{2},{0,2}\{0\}, \{1\}, \{2\}, \{0, 2\} です。Φ({0})=1/81/4=12\Phi(\{0\}) = \frac{1/8}{1/4} = \frac12、Φ({2})=12\Phi(\{2\}) = \frac12、Φ({1})=π(1)(P(1,0)+P(1,2))π(1)=12\Phi(\{1\}) = \frac{\pi(1)(P(1,0) + P(1,2))}{\pi(1)} = \frac12、Φ({0,2})=1/8+1/81/2=12\Phi(\{0,2\}) = \frac{1/8 + 1/8}{1/2} = \frac12 なので Φ∗=12\Phi_* = \frac12 です。不等式は Φ∗2/2=18≤γ=12≤2Φ∗=1\Phi_*^2/2 = \frac18 \le \gamma = \frac12 \le 2\Phi_* = 1 で、成り立っています。

演習 9.4標準

S={1,…,q}nS = \{1, \ldots, q\}^n(q≥2q \ge 2)、π=ν⊗n\pi = \nu^{\otimes n}(ν\nu は {1,…,q}\{1, \ldots, q\} 上の正の確率分布)に対する無作為走査の熱浴法の混合時間が、qq と ν\nu によらず tmix(ε)≤⌈nln⁡n+nln⁡(1/ε)⌉t_{\mathrm{mix}}(\varepsilon) \le \lceil n\ln n + n\ln(1/\varepsilon)\rceil を満たすことを示せ。

解答

積測度では、成分 ii の条件付き分布は他の成分によらず ν\nu なので、連鎖の 1 歩は「座標 II を一様に選び、その成分を ν\nu に従う BB で置き換える」です。命題 7.3 の証明と同じく、2 つの連鎖に同じ (It,Bt)(I_t, B_t) を使うカップリングを作ると、座標 ii が一度選ばれた後は両者の第 ii 成分が一致し続けます。合流時刻はすべての座標が選ばれる時刻以下で、P(τ>t)≤n(1−1n)t≤ne−t/n\mathbb{P}(\tau > t) \le n(1 - \frac1n)^t \le ne^{-t/n} です。定理 7.2 の 3 から主張が従います。一方 定理 4.3 の 2 では πmin⁡=(min⁡ν)n\pi_{\min} = (\min\nu)^n が現れ、ν\nu が偏っているほど上界が悪くなります。カップリングの評価にはこの依存がありません。成分の間に相互作用がある(π\pi が積でない)と、同じ乱数を使っても条件付き分布が 2 つの連鎖で異なるので、この単純な議論は使えなくなります。

  1. D. A. Levin, Y. Peres, E. L. Wilmer, Markov Chains and Mixing Times, American Mathematical Society, 2009(第 2 版 2017)— 第 4〜5 章(全変動距離、カップリング)、第 7 章(下界とボトルネック比)、第 12〜13 章(固有値、Dirichlet 形式、Cheeger の不等式)。
  2. N. Metropolis, A. W. Rosenbluth, M. N. Rosenbluth, A. H. Teller, E. Teller, “Equation of state calculations by fast computing machines”, Journal of Chemical Physics 21 (1953), 1087–1092.
  3. W. K. Hastings, “Monte Carlo sampling methods using Markov chains and their applications”, Biometrika 57 (1970), 97–109.
  4. P. H. Peskun, “Optimum Monte-Carlo sampling using Markov chains”, Biometrika 60 (1973), 607–612.
  5. L. Tierney, “A note on Metropolis–Hastings kernels for general state spaces”, Annals of Applied Probability 8 (1998), 1–9.
  6. A. Sinclair, M. Jerrum, “Approximate counting, uniform generation and rapidly mixing Markov chains”, Information and Computation 82 (1989), 93–133.
  7. G. O. Roberts, A. Gelman, W. R. Gilks, “Weak convergence and optimal scaling of random walk Metropolis algorithms”, Annals of Applied Probability 7 (1997), 110–120.
  8. C. Kipnis, S. R. S. Varadhan, “Central limit theorem for additive functionals of reversible Markov processes and applications to simple exclusions”, Communications in Mathematical Physics 104 (1986), 1–19.
  9. S. P. Meyn, R. L. Tweedie, Markov Chains and Stochastic Stability, 2nd ed., Cambridge University Press, 2009.

このテーマの 100 本ノック(50 問)

執筆: Claude Code(Opus 5.5)、Claude Code(Sonnet 5.5)・監査 2 回(Claude Code)・最終 2026-10-12

この記事の誤りを報告する ・運営: 夢現技研合同会社 ・料金 ・利用条件 ・特定商取引法に基づく表記

© 2026 夢現技研合同会社 ・コード例は MIT ライセンスです。